Hurriyet

14 Mayıs 2013 Salı

Redo Log Yönetimi 2:




Yeni redo log dosyalarının üretimi için veritabanında “alter database” yetkisinin bulunması gerekmektedir. Bir oracle  veritabanında en fazla Maxlogfiles parametresi kadar grup bulunabilinir.

Maxlogfile kayıtlarını görmek için: Show parameters maxlogfiles;

Alter database add logfile ('/oracle/dbs/log1c.rdo', '/oracle/dbs/log2c.rdo') size 5M;

Ayrıca, aşağıdaki sorguda olduğu gibi grubumuza bir numara da atabiliriz. :

Alter database add logfile group 1 ('/oracle/dbs/log1c.rdo', '/oracle/dbs/log2c.rdo') size 5M;

Redo Log Member Yaratılması

Alter database add logfile  member '/oracle/dbs/log3c.rdo' to group 1;

Ya da aşağıdaki gibi grup belirtmeden sadece dosya adları belirtilerek de eklenebilinir.

Alter database add logfile  member '/oracle/dbs/log3c.rdo' to ('/oracle/dbs/log1c.rdo', '/oracle/dbs/log2c.rdo')

Redo Log Dosyalarının Yerinin Değiştirilmesi ve İsimlerinin değiştirilmesi:

1)      İlk olarak veritabanı kapatılır.

Shutdown;

2)      Redo log dosyaları yeni yerlerine taşınırlar. 

mv /diska/logs/log1a.rdo /diskc/logs/log1c.rdo
mv /diska/logs/log2a.rdo /diskc/logs/log2c.rdo

3)      Veritabanı başlatılır ancak açılmaz. Mount modunda açılır. Bu şekilde açılmasının nedeni ise control file’daki dosyaların mount modda yerlerinin belirlenmesi ama içlerinin okunmamasıdır.

Startup mount;

4)      Sonrasında ise “alter database” ifadesi ile log file’ların isimleri değiştirilir.
ALTER DATABASE
  RENAME FILE '/diska/logs/log1a.rdo', '/diska/logs/log2a.rdo'
           TO '/diskc/logs/log1c.rdo', '/diskc/logs/log2c.rdo';

5)      Veritabanı açılır.

Alter database open;

Redo Log Group ve Memberların Drop Edilmesi

Redo log dosyaları bazen disk değişimlerinde ya da kurtarma operasyonlarında silinmeleri gerekebilinir.Diskler bozulduğu zamanlarda da bütün redo log dosyalarını silmemiz gerekebilir.

-Redo log dosyaları silinmeden önce bazı şartlar göz önünde bulundurulmalıdırlar. Örneğin bir instance’ın çalışmayı sürdürebilmesi için en az 2 grup redo log dosyasının olması lazım.

-Redo log gruplarının silinebilmeleri için “inactive” durumda olmaları gerekir. Eğer şu an kullanılanın silinmesi isteniyorsa, önce log switch yaptırılırılmalıdır.

Alter system switch logfile;

-Bir redo log grubu silinmeden önce arşivlenip arşivlenmediği incelenmelidir. Bu da dictionary’den v$log tablosu sorgulanarak öğrenilebilinir.

Select Group#,archived,status from v$log;

Redo log grubunun drop edilmesi için aşağıdaki sorgu kullanılır.

Alter database drop logfile group 3;

Bir redo log grubu drop edildiğinde, ve sistem de OMF (oracle-managed files ) yoksa yani sistemdeki veritabanı dosyaları oracle tarafından kontrol edilmiyorsa o redo log dosyaları sadece veritabanı yapısından atılmış gibi gözükür. Tamamen silinmesi için bu yapılan işlem sonrası gerekli işletim sistemi komutlarını kullanarak dosyaların tamamen silinmesidir. OMF kullanılsaydı, dosyalar otomatik olarak silineceklerdi.
Tek bir member drop etmek içinse aşağıdaki komutlar kullanılır.

Alter database drop logfile member '/oracle/dbs/log3c.rdo';

Log Switch Zorlaması

Log switch zorlaması  LGWR process’inin zorla bir redo log grubuna yazmayı durdurmasını, ve başka bir redo log grubuna yazmaya başlamasını sağlar.

Alter system switch logfile;

Redo Log Dosyalarının Kontrolü

Redo log dosyalarının checksumları kontrol edilerek dosyaların içinde hiç corruption var mı, redo log dosyalarının blokları arasında bir sorun olup olmadığı incelenerek görülür. Bunun için de veritabanında bulunan bir parametre aktifleştirilebilinir. DB_BLOCK_CHECKSUM parametresi true yapılırsa, veritabanı kendiliğinden bu checksum değerlerini hesaplamaya başlar.

Redo Log Dosyasının Temizlenmesi

Redo log dosyalarının temizlenmesi gerekliliği, bazen redo log dosyalarının yukarıda belirttiğimiz üzere corrupt olması yani block okumada bir sorun yaşanması üzerine yaşanabilinir.  Aşağıdaki ifade  ise corrupt olmuş redo log dosyası eğer şu anda current modda çalışan redo log grubumuza dahil ise çalışabilir.

Alter database clear logfile group 3;

Eğer corrupt olmuş redo log dosyası arşivlenmediyse aşağıdaki sorgu uygulanır.

Alter database clear unarchived logfile group 3;

Hiç yorum yok:

Yorum Gönder