19 Kasım 2009 Perşembe

SHUTDOWN: waiting for active calls to complete.

Merhaba,

Veritabanınızda "wait event"lerin fazlalığı gözünüze çarptı ve veritabanınızı kontrol ettiniz. Yaptığınız kontroller sonucunda bu durumun neden kaynaklandığı bulamadınız.

v$lock tablosunu incelemenizi tavsiye ederim. Bu tabloda göreceğini kilitlerin wait event'lere yol açma olasılığı yüksek. Wait event'ler arasında göreceğiniz bir diğer bilgi ise "library cache lock" olacaktır. Görebileceğiniz bir başka hata ise çok kayıtlı bir tabloya erişiminizin sıfırlanmış olması. Erişmek istediğiniz her session asılı kalacak ancak bu arada veritabanınızdaki her işlem akıcı bir şekilde devam edecek.

Yukarıda özetlemeye çalıştığım durumun kaynağı DBWR'ın (Database Writer - Arkaplan işlemi) MR, yani Media Recovery'de bir şekilde takılmış olması. Herşeyi denersiniz, örneğin alter system checkpoint, alter system switch logfile, gibi ama hiçbir sonuç alamazsınız. Kısacası veritabanınızın shared pool'u ve hit ratio'ları fakr-u zaruret içinde harap ve bitap düşmüş olabilir :)

Önerilen çıkıl yolunun veritabanını shutdown immediate ile kapatmak olduğunu görebilirsiniz. Shutdown immediate komutunu verirsiniz ve aşağıdaki hatayı alırsınız ve ardından shutdown komutunuzun asılı kaldığını anlarsınız;

Active call for process 10061 user 'oracle' program 'oracle@optprod (J001)'
SHUTDOWN: waiting for active calls to complete.

Yukarıdaki hataları aldıysanız veritabanınızı sağlıklı bir biçimde kapatamazsınız. Yapmanız gereken aşamaları aşağıda listeliyorum;

Öncelikle asılı kalan işlemi sonlandıralım;

# kill -9 10061

Şimdi de veritabanını yeniden ayağa kaldıralım;

# sqlplus / as sysdba
Connected.
SQL> shutdown abort
Oracle instance shutdown.
SQL> startup restrict
Oracle instance started
Database mounted
Database opened
SQL> shutdown normal
Database unmounted
Database closed
Oracle instance shutdown
SQL> startup
Oracle instance started
Database mounted
Database opened

Yukarıdaki işlemleri tamamladığınız zaman bir süre tekrar wait event'leri gözlemleyin. Erişemediğiniz tablo varsa tekrar erişmeye çalışın. Probleminiz büyük ihtimal düzelmiş olacaktır.

Aslında hiçbir zaman "veritabanını kapatın düzelir" gibi bir yorum yapmak istemiyorum ancak bu işin acil olarak çözülmesi ve sistemin devamlılığını sağlam bir şekilde sağlamak için gerekli olacaktır. Benim bilgidiğim en sağlam düzeltme yolu da budur.

İyi çalışmalar,

Ogan

Hiç yorum yok:

Takip et: @oganozdogan