>Redo log Dosyalarında Bozulma (ORA-00312)

>O an kullanılmayan (statusu current olmayan) Redo log dosyalarında bozulma olursa, Archiver redo log dosyasını kullanmaya çalıştığında durur ve veritabanı DML işlemini tamamlayamaz. Örnek bir redo log bozulması durumunda alert log’da göreceğimiz mesajlara bakalım:

Errors in file /oracle/diag/rdbms/oratest/oratest/trace/oratest_arc3_10426.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: ‘/oracle/oradata/oratest/redo01.log’
ORA-27046: file size is not a multiple of logical block size
Additional information: 1
Bu durumda yapılması gereken hatalı olan redo logları sıfırlamaktır. Hata mesajlarında görüldüğü üzere 1. gruptaki redo log dosyasında (redo1.log) problem var. Bozulmuş olan redo log dosyasını aşağıdaki komutlar ile temizleyebilirsiniz:

ALTER DATABASE CLEAR UNARCHIVED LOGFILE ‘/oracle/oradata/oratest/redo1.log’;

veya

ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 1;
Alternatif olarak bu log dosyasını DROP edip yeniden oluşturabilirsiniz. Log file’ı temizlerken kullanılan UNARCHIVED parametresi, log file’ın henüz archivelenmediğini, yeniden kullanıldıktan sonra arşivleme yapılmasının istendiğini gösterir. Bu işlemden sonra archiever prosesi çalışmaya devam edecektir:

Completed: ALTER DATABASE CLEAR UNARCHIVED LOGFILE group 1
Wed May 26 22:50:43 2009
Archiver process freed from errors. No longer stopped
Wed May 26 22:50:50 2009
Starting background process SMCO
Wed May 26 22:50:50 2009
SMCO started with pid=15, OS id=16754
Wed May 26 22:52:41 2009
Thread 1 cannot allocate new log, sequence 14
Private strand flush not complete
Current log# 1 seq# 13 mem# 0: /oracle/oradata/oratest/redo01.log
Thread 1 advanced to log sequence 14 (LGWR switch)
Current log# 2 seq# 14 mem# 0: /oracle/oradata/oratest/redo02.log
Thread 1 cannot allocate new log, sequence 15
Checkpoint not complete
Archiver prosesi çalışmasına devam etmesine rağmen eğer “checkpoint not complete” uyarısı veriyorsa manuel olarak checkpoint yaptırmamız gerekir:

ALTER SYSTEM CHECKPOINT;
Eğer sorunlu olan redo log dosyası “o an kullanımda olan” (statusu current) redolog dosyası ise hata archiver yerine logwiter (LGWR) prosesi tarafından tespit edilecek ve veritabanı kapanacaktır. Yeniden açtığınız zaman veritabanı, redo log’un silinmesine izin vermez. Bu durumda recovery işlemi yapmanız gerekir:

RMAN> RESTORE DATABASE;
SQL> RECOVER DATABASE UNTIL CANCEL;
SQL> ALTER DATABASE OPEN RESETLOGS;
—————————————
http://www.gokhanatil.com/2009/07/redo-log-dosyalarinda-bozulma-ora-00312/

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s