ORA-16038,ORA-00354,ORA-00312 corrupt redo log block header
Hello everyone,
I am Ann. I am not an Oracle DBA. So please bear with me. However, I have to step up to become a DBA during the time that the dedicated DBA is on maternity leave.
As usual, we have the live site and the test site.
She gave me some notes for how to look after the live database and application (Oracle 10g).
But so far, I don't have to do a lot of command calling for the live site because we have plenty of space for the server, also most of the task has been scripted. So it can run automatically.
However, the test database is not like that. There is no automatically restart scripts like in the live system.
Recently, I canont access to the test database. So I log in to the test server, find that the folder that contains Archive Log files is nearly 98%.
So I remove some of the old dbf files (I did that based on the advise of the main dba that last time it happened long time ago)
After clear some old files, do a df -h the rate down to 58%.
However,the database still not available (cannot open I think)
I connect to the database, trying to do a shutdown immediate, but the server hung.
So I ask one network engineer to reboot the database server.
Of course, the machine is shutdown so the database has to be terminated.
After the machine is rebooted, I log in as sysdba but still cannot open the database.
The error is as below
Database mounted
ORA-16038: log 1 sequence# 1013 cannot be archived
ORA-00354: corrupt redo log block header
ORA-00312: online log 1 thread 1:
*'/data/oradata/BARN/onlinelog/o1_mf_1_2658nhd4_.log'*
ORA-00312: online log 1 thread 1:
*'/arclogs/oradata/BARNTEST/onlinelog/o1_mf_1_2658nhd4_.log'*
I do a research And I get these
ORA-16038,ORA-00354,ORA-00312 corrupt redo log block header
+(http://arjudba.blogspot.co.nz/2008/05/ora-16038ora-00354ora-00312-corrupt.html )+
Error Description:
------------------------
Normal users could not connect to database. It messaged ORA-00257 :Connect Internal Only until freed. Whenever you try to archive the redo log it returns the message.
ORA-16038: log %s sequence# %s cannot be archived
ORA-00354: corrupt redo log block header
ORA-00312: "online log %s thread %s: '%s'"
Explanation of the Problem:
-------------------------------
Whenever normal user tried to connect the database the error returns as it is descriped in
ORA-00257. But you have noticed that there is enough space in V$RECOVERY_FILE_DEST. Whenever you look at alert log you will see the ORA-16038,ORA-00354,ORA-00312 error serial. The error produced as because it failed to archive online redolog due to a corruption in the online redo file.
Solution of The problem:
--------------------------------
Step1)While making your database running clear the unarchived redo log.
SQL>alter database clear unarchived logfile 'logilename';
This makes the corruption disappear which causes the contents of the cleared online redo file.
Step2)Make a complete backup of the database
My question here is it safe to apply these steps:
we have 2 online logs that cause error, so do I have to clear 2 files.
For step 2, how to do a backup using RMAN.
Can nay of you suggest a safe command line for me to use. (The EM console surrently don't run on the test database server)
I really need the test database run as my APEX apps run on it need to be exported to the live system.
Really appreciate any helps here, again this is an Oracle 10g release 1.
Regards,
Edited by: Ann586341 on Apr 30, 2012 3:40 PM
Edited by: Ann586341 on Apr 30, 2012 3:40 PM