Skip to Main Content

Oracle Database Discussions

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

ORA-16038,ORA-00354,ORA-00312 corrupt redo log block header

Ann586341Apr 29 2012 — edited Oct 5 2012
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
This post has been answered by Think_dba on Apr 30 2012
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Nov 2 2012
Added on Apr 29 2012
5 comments
5,863 views