ORA-00354: corrupt redo log block header..urgent
Hi All,
i am running into an issue when trying to recover a datafile.
1). Logs are being applied to the datafile to recover but RMAN is throwing this error:
ORA-00283: recovery session canceled due to errors
RMAN-11003: failure during parse/execution of SQL statement: alter database reco
ver logfile 'H:\ORACLE_ARCHIVE_LOGS\RBS\ARCHIVELOG\2012_04_23\O1_MF_1_13174_7SC4
P56W_.ARC'
ORA-00283: recovery session canceled due to errors
ORA-00354: corrupt redo log block header
ORA-00353: log corruption near block 32768 change 6715041179 time 04/23/2012 13:
33:51
ORA-00334: archived log: 'H:\ORACLE_ARCHIVE_LOGS\RBS\ARCHIVELOG\2012_04_23\O1_MF
_1_13174_7SC4P56W_.ARC'
thanks in advance
bcm@bcm-laptop:~$ oerr ora 353
00353, 00000, "log corruption near block %s change %s time %s"
// *Cause: Some type of redo log corruption has been discovered. This error
// describes the location of the corruption. Accompanying errors
// describe the type of corruption.
// *Action: Do recovery with a good version of the log or do incomplete
// recovery up to the indicated change or time.
bcm@bcm-laptop:~$ oerr ora 354
00354, 00000, "corrupt redo log block header"
// *Cause: The block header on the redo block indicated by the accompanying
// error, is not reasonable.
// *Action: Do recovery with a good version of the log or do time based
// recovery up to the indicated time. If this happens when archiving,
// archiving of the problem log can be skipped by clearing the log
// with the UNARCHIVED option. This must be followed by a backup of
// every datafile to insure recoverability of the database.
Similar Messages
-
ORA-00354: corrupt redo log block header
Hi Guys,
Need your support to resolve one of the oracle issues,
Below are errors visible in alert.log in oracle,
ORA-16038: log 24 sequence# 660467 cannot be archived
ORA-00354: corrupt redo log block header
ORA-00312: online log 24 thread 1: '/oracle/PRD/origlogB/log_g24_m1.dbf'...
2010-10-03 07:26:12.835 20195 kcrr.c
ORA-16014: log 24 sequence# 660467 not archived, no available
destinations
Below is o/p of archive log list seems to be bit strange,
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /oracle/PRD/saparch/PRDarch
Oldest online log sequence 660467
Next log sequence to archive 660467
Current log sequence 660576
And some more info,
SQL> SELECT GROUP#, STATUS, MEMBER FROM V$LOGFILE;
GROUP# STATUS MEMBER
28 /oracle/PRD/origlogB/log_g28_m1.dbf
28 /oracle/PRD/mirrlogB/log_g28_m2.dbf
27 /oracle/PRD/origlogA/log_g27_m1.dbf
27 /oracle/PRD/mirrlogA/log_g27_m2.dbf
26 /oracle/PRD/origlogB/log_g26_m1.dbf
26 /oracle/PRD/mirrlogB/log_g26_m2.dbf
25 /oracle/PRD/origlogA/log_g25_m1.dbf
25 /oracle/PRD/mirrlogA/log_g25_m2.dbf
24 /oracle/PRD/origlogB/log_g24_m1.dbf
24 /oracle/PRD/mirrlogB/log_g24_m2.dbf
23 /oracle/PRD/origlogA/log_g23_m1.dbf
23 /oracle/PRD/mirrlogA/log_g23_m2.dbf
22 /oracle/PRD/origlogB/log_g22_m1.dbf
22 /oracle/PRD/mirrlogB/log_g22_m2.dbf
21 /oracle/PRD/origlogA/log_g21_m1.dbf
21 /oracle/PRD/mirrlogA/log_g21_m2.dbf
16 rows selected.
SQL> SELECT GROUP#, SEQUENCE#, MEMBERS, ARCHIVED, STATUS, FIRST_CHANGE# FROM V$LOG;
GROUP# SEQUENCE# MEMBERS ARC STATUS FIRST_CHANGE#
21 660571 2 NO INACTIVE 2.9116E+10
22 660572 2 NO INACTIVE 2.9116E+10
23 660570 2 NO INACTIVE 2.9116E+10
24 660467 2 NO INACTIVE 2.9114E+10
25 660573 2 NO ACTIVE 2.9116E+10
26 660574 2 NO CURRENT 2.9116E+10
27 660568 2 NO INACTIVE 2.9116E+10
28 660569 2 NO INACTIVE 2.9116E+10
8 rows selected.
All file exists but still facing issue, no backup is running
Regards,
YashHi,
Instead of the logfile name, try the command with the logfile integer as mentioned below.
alter database clear unarchived logfile group <integer>;
You can get the logfile integer using the view, v$log.
select GROUP#,MEMBERS,STATUS from v$log;
The value for the parameter GROUP# is the logfile integer.
Hope this helps.
Regards,
Varadharajan M -
How to overcome corrupt redo log block header
friends, can you tell me any utilities or packages using which i can clean my redo log . Iam encountering this error during recovery of my database
NandJafar,
SQL> recover database using backup controlfile;
ORA-00279: change 166327733 generated at 04/03/2008 12:06:36 needed for thread
1
ORA-00289: suggestion : C:\COLD\ARCHIVES\ARC17966_0616830416.001
ORA-00280: change 166327733 for thread 1 is in sequence #17966
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
C:\STREDO09.LOG
ORA-00283: recovery session canceled due to errors
ORA-00354: corrupt redo log block header
ORA-00353: log corruption near block 4044 change 166329643 time 04/03/2008
12:46:45
ORA-00334: archived log: 'C:\STREDO09.LOG'
ORA-01112: media recovery not started
The stredo09.log is the standby redo log. My production server crashed.....Unfortunately the physical standby was also down..before main crashed..(power failure). Iam not able to open the production server. -
Logmnr/capure error b'coz of corruption of redo log block
Hi,
We all know that capture process reads the REDO entries from redo log files or archived log files. Therefore we need to ahev db in ARCHIVELOG mode.
In alert log file, I found error saying :
Creating archive destination LOG_ARCHIVE_DEST_1: 'E:\ORACLE\ORADATA\REPF\ARCHIVE\LOCATION01\1_36.ARC'
ARC0: Log corruption near block 66922 change 0 time ?
ARC0: All Archive destinations made inactive due to error 354
Fri Apr 04 12:57:44 2003
Errors in file e:\oracle\admin\repf\bdump\trishul_arc0_1724.trc:
ORA-00354: corrupt redo log block header
ORA-00353: log corruption near block 66922 change 0 time 04/04/2003 11:05:40
ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\ARCHIVE\REDO02.LOG'
ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\REDO02.LOG'
As a normal practice, we do have multiplexing of redo log files at diff location, but even that second copy of redo log is of no use to recover the redo log. This explains redo log could not be archived, since it can't be read. Same is true even for Logmnr process, it could not read the redo log file and it failed. Now, we have wae to recover from this situation (as far as DB is concern, not Stream Replication), since the shutdown after this error was IMMEDIATE causing checkpoing, and rollback/rollforward is not required during system startup. (No instance recovery) We can make db NOARCHIVELOG mode, drop that particular group, and create new one, and turn db to ARCHIVELOG mode This will certainly serve the purpose as far as consistency of DB is concern.
Here is a catch for Stream Replication. The redo log that got corrupted must be having few transaction which are not being archived, and each will be having corresponding SCN. Now, Capture Process read the info sequentially in order of SCN. Few transaction are now missed, and Capture process can't jump to next SCN skipping few SCN in between. So, we have to re-instantiate the objects on the another system which has no erros, and start working on it. My botheration is what will happen to those missed transaction on the another database. It's absolete loss of the data. In development I can manage that. But in real time Production stage, this is a critical situation. How to recover from this situation to get back the corrupted info from redo log ?
I have not dropped any of the log group yet. B'coz I would like to recover from this situation without LOSS of data.
Thanx, & regards,
Kamlesh Chaudhary
Content of trace files :
Dump file e:\oracle\admin\repf\bdump\trishul_arc0_1724.trc
Fri Apr 04 12:57:31 2003
ORACLE V9.2.0.2.1 - Production vsnsta=0
vsnsql=12 vsnxtr=3
Windows 2000 Version 5.0 Service Pack 2, CPU type 586
Oracle9i Enterprise Edition Release 9.2.0.2.1 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.2.0 - Production
Windows 2000 Version 5.0 Service Pack 2, CPU type 586
Instance name: trishul
Redo thread mounted by this instance: 1
Oracle process number: 16
Windows thread id: 1724, image: ORACLE.EXE
*** SESSION ID:(13.1) 2003-04-04 12:57:31.000
- Created archivelog as 'E:\ORACLE\ORADATA\REPF\ARCHIVE\LOCATION02\1_36.ARC'
- Created archivelog as 'E:\ORACLE\ORADATA\REPF\ARCHIVE\LOCATION01\1_36.ARC'
*** 2003-04-04 12:57:44.000
ARC0: All Archive destinations made inactive due to error 354
*** 2003-04-04 12:57:44.000
kcrrfail: dest:2 err:354 force:0
*** 2003-04-04 12:57:44.000
kcrrfail: dest:1 err:354 force:0
ORA-00354: corrupt redo log block header
ORA-00353: log corruption near block 66922 change 0 time 04/04/2003 11:05:40
ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\ARCHIVE\REDO02.LOG'
ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\REDO02.LOG'
*** 2003-04-04 12:57:44.000
ARC0: Archiving not possible: error count exceeded
ORA-16038: log 2 sequence# 36 cannot be archived
ORA-00354: corrupt redo log block header
ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\REDO02.LOG'
ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\ARCHIVE\REDO02.LOG'
ORA-16014: log 2 sequence# 36 not archived, no available destinations
ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\REDO02.LOG'
ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\ARCHIVE\REDO02.LOG'
ORA-16014: log 2 sequence# 36 not archived, no available destinations
ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\REDO02.LOG'
ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\ARCHIVE\REDO02.LOG'
ORA-16014: log 2 sequence# 36 not archived, no available destinations
ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\REDO02.LOG'
ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\ARCHIVE\REDO02.LOG'
ORA-16014: log 2 sequence# 36 not archived, no available destinations
ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\REDO02.LOG'
ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\ARCHIVE\REDO02.LOG'
ORA-16014: log 2 sequence# 36 not archived, no available destinations
ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\REDO02.LOG'
ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\REPF\ARCHIVE\REDO02.LOG
Dump file e:\oracle\admin\repf\udump\trishul_cp01_2048.trc
Fri Apr 04 12:57:27 2003
ORACLE V9.2.0.2.1 - Production vsnsta=0
vsnsql=12 vsnxtr=3
Windows 2000 Version 5.0 Service Pack 2, CPU type 586
Oracle9i Enterprise Edition Release 9.2.0.2.1 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.2.0 - Production
Windows 2000 Version 5.0 Service Pack 2, CPU type 586
Instance name: trishul
Redo thread mounted by this instance: 1
Oracle process number: 30
Windows thread id: 2048, image: ORACLE.EXE (CP01)
*** 2003-04-04 12:57:28.000
*** SESSION ID:(27.42) 2003-04-04 12:57:27.000
TLCR process death detected. Shutting down TLCR
error 1280 in STREAMS process
ORA-01280: Fatal LogMiner Error.
OPIRIP: Uncaught error 447. Error stack:
ORA-00447: fatal error in background process
ORA-01280: Fatal LogMiner Error
**********************I have the similar problem - I am using Steams environment, and have got this
"ORA-00353: log corruption near block" errors in the alert.log file
during capture the changes on the primary database, and Capture
process became aborted after that.
Was that transactions lost, or after i've started the Capture process
again the were captured and send to the target database?
Have anyone solved that problem?
Can you help me with it? -
[DG Physical] ORA-00368: checksum error in redo log block
Hi all,
I'm building a DR solution with 1 primary & 2 DR site (Physical).
All DBs use Oracle 10.2.0.3.0 on Solaris 64bit.
The first one ran fine for some days (6), then I installed the 2nd. After restoring the DB (DUPLICATE TARGET DATABASE FOR STANDBY) & ready to apply redo. The DB fetched missing arc gaps & I got the following error:
==================
Media Recovery Log /global/u04/recovery/billhcm/archive/2_32544_653998293.dbf
Errors with log /global/u04/recovery/billhcm/archive/2_32544_653998293.dbf
MRP0: Detected read corruption! Retry recovery once log is re-fetched...
Wed Jan 27 21:46:25 2010
Errors in file /u01/oracle/admin/billhcm/bdump/billhcm1_mrp0_12606.trc:
ORA-00368: checksum error in redo log block
ORA-00353: log corruption near block 1175553 change 8236247256146 time 01/27/2010 18:33:51
ORA-00334: archived log: '/global/u04/recovery/billhcm/archive/1_47258_653998293.dbf'
Managed Standby Recovery not using Real Time Apply
Recovery interrupted!
Recovered data files to a consistent state at change 8236247255373
===================
I see that may be RFS get the file incorrectly so I ftp to get this file & continue the apply, it pass. Comparison the RFS file & ftp is difference. At that time, I think that something wrong with the RFS because the content of arc is not right. (I used BACKUP VALIDATE ARCHIVELOG SEQUENCE BETWEEN N1 AND N2 THREAD X to check all arcs the RFS fetched, there was corrupt in every file);
I restore the DR DB again & apply incremental backup from the primary, now it run well. I don't know what's happening as I did the same procedures for all DR DB.
Yesterday night, I have to stop & restart DR site 1. Today, I check and it got the same error as the 2nd site, with corrupted redo. I try to delete the arcs, & let RFS to reget it, but the files were corrupt too.
If this continue to happen with the 2nd site again, that'll be a big problem.
The DR site 1 & Primary is linked by a GB switch, site 2 by a 155Mbps connection (far enough for my db load at about 1.5MB/s avg apply rate).
I seach Oracle support (metalink) but no luck, there is a case but it mentions max_connection>1 (mine is default =1)
Can someone show me how to troubleshooting/debug/trace this problem.
That would be a great help!
Thank you very much.This (Replication) is the wrong forum for your posting.
Please post to the "Database - General" forum at
General Database Discussions
But, first, log an SR with Oracle Support.
Hemant K Chitale -
Ora-00368 checksum error in redo log block
We are running small database in oracle 9i in non archive mode .Database is not opening up with following error ora-00368 checksum error in redo log block.
How to do the incomplete database recovery and open the database.
Regards
ArunFor more details
Here is what I am Doing.
SQL> alter database open;
alter database open
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
SQL> alter database open resetlogs;
alter database open resetlogs
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: 'M:\ORACLE\ORADATA\mail\SYSTEM01.DBF'
SQL> alter database recover datafile
'M:\ORACLE\ORADATA\mail\SYSTEM01.DBF';
alter database recover datafile 'M:\ORACLE\ORADATA\mail\SYSTEM01.DBF'
ERROR at line 1:
ORA-00283: recovery session canceled due to errors
ORA-00368: checksum error in redo log block
ORA-00353: log corruption near block 103414 change 5082448355423 time
04/22/2003 04:30:11
ORA-00312: online log 3 thread 1: 'M:\ORACLE\ORADATA\mail\REDO03.LOG'
What can be done to start the database??
Regards
Arun -
Get ORA-00368: checksum error in redo log block
Hi all,
I get an error ORA-00368: checksum error in redo log block when connecting to database and here is the error:
ORA-00368: checksum error in redo log block
ORA-00353: log corruption near block 430757 change 1236507302 time 11/12/2009
09:55:35
ORA-00312: online log 4 thread 1: '/oradata02/tchad/redo4.log'
Note that we are in noarchive log mode.
Could you help on how to recover my database please or a doc if there is interesting somewhere.
Thank you
LucienotHi I don't have redo log duplex and here are the things i've done:
1. shutdown abort
2. ALTER DATABASE CLEAR UNARCHIVED LOGFILE '/oradata/.../redo3.log';
3. startup nomount;
4. alter database mount;
5. ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 4;
SQL> SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;
GROUP# ARC STATUS
3 NO ACTIVE
4 NO CURRENT
5 NO UNUSED
SQL> alter system switch logfile;
alter system switch logfile
ERROR at line 1:
ORA-01109: database not open
SQL> alter database open;
alter database open
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
SQL> alter database open resetlogs;
alter database open resetlogs
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/oradata00/tchad/system01.dbf'
Thanks -
How to recover from one corrupted redo log file in NOARCHIVE mode?
Oracle 10.2.1.
The redo log file was corrupted and Oracle can't work.
When I use STARTUP mount, I got no error msg.
SQL> startup mount
ORACLE instance started.
Total System Global Area 1652555776 bytes
Fixed Size 1251680 bytes
Variable Size 301991584 bytes
Database Buffers 1342177280 bytes
Redo Buffers 7135232 bytes
Database mounted.
But I have some applications which are depended on Oracle can't be started.
So, I tried STARTUP open. But I got error msg.
SQL> startup open
ORACLE instance started.
Total System Global Area 1652555776 bytes
Fixed Size 1251680 bytes
Variable Size 301991584 bytes
Database Buffers 1342177280 bytes
Redo Buffers 7135232 bytes
Database mounted.
ORA-00368: checksum error in redo log block
ORA-00353: log corruption near block 497019 change 42069302 time 11/07/2007
23:43:09
ORA-00312: online log 4 thread 1:
'G:\ORACLE\PRODUCT\10.2.0\ORADATA\NMDATA\REDO04.LOG'
So, how can I restore and recover my database?
If use RMAN, how to do that?
Any help will be appreciated.
Thanks.Hi, Yingkuan,
Thanks for the helps.
Actually, I have 10 redo log files exists. All of them are here.
I tried your suggestion:
alter database clear unarchived logfile group 4;
The error msg I got is the same as before:
SQL> alter database clear unarchived logfile group 4;
alter database clear unarchived logfile group 4
ERROR at line 1:
ORA-01624: log 4 needed for crash recovery of instance nmdata (thread 1)
ORA-00312: online log 4 thread 1:
'G:\ORACLE\PRODUCT\10.2.0\ORADATA\NMDATA\REDO04.LOG'
Compared to losing all the data, it is OK for me lose some of them.
I have more than 1 TB data stored and 99.9% of them are raster images.
The loading of these data were the headache. If I can save them, I can bear the lost.
I want to grasp the last straw.
But I don't know how set the parameter: allowresetlogs_corruption
I got the error msg:
SQL> set allowresetlogs_corruption=true;
SP2-0735: unknown SET option beginning "_allow_res..."
I have run the command:
Recover database until cancel
Alter database open resetlogs
The error msg I got is the following:
SQL> recover database until cancel
ORA-00279: change 41902930 generated at 11/05/2007 22:01:48 needed for thread 1
ORA-00289: suggestion :
D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\NMDATA\ARCHIVELOG\2007_11_09\O1_MF_
1_1274_%U_.ARC
ORA-00280: change 41902930 for thread 1 is in sequence #1274
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\NMDATA\SYSTEM01.DBF'
ORA-01112: media recovery not started
SQL>
From the log file, I got the following:
ALTER DATABASE RECOVER database until cancel
Fri Nov 09 00:12:48 2007
Media Recovery Start
parallel recovery started with 2 processes
ORA-279 signalled during: ALTER DATABASE RECOVER database until cancel ...
Fri Nov 09 00:13:20 2007
ALTER DATABASE RECOVER CANCEL
Fri Nov 09 00:13:21 2007
ORA-1547 signalled during: ALTER DATABASE RECOVER CANCEL ...
Fri Nov 09 00:13:21 2007
ALTER DATABASE RECOVER CANCEL
ORA-1112 signalled during: ALTER DATABASE RECOVER CANCEL ...
Thank you very much. and I am looking forward to your followup input. -
Checksum error in redo log block
I received ORA-00368 in my database and to resolve it I tried following steps:-
1) recover database until cancel;
2) alter database open resetlogs;
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/u01/oracle/data/system01.dbf'
3) recover database;
ORA-00283: recovery session canceled due to errors
ORA-00368: checksum error in redo log block
ORA-00353: log corruption near block 12018 change 5983381348672 time 05/18/2010
16:08:24
ORA-00312: online log 10 thread 1: '/u02/oracle/data/log10b.dbf'
ORA-00312: online log 10 thread 1: '/u01/oracle/data/log10a.dbf'
There are 4 log groups with 2 members each and the database is in archive mode. Log group# 10 is current and all others are inactive.
Could you please let me know how should I proceed further either with or without losing transaction in group# 10 redo log?
Thanks
RajkumHow can I drop the CURRENT log group# 10 and start the database with remaining 3 log groups? Database is in archive mode.Short answer: You cant. It is the CURRENT redo log... most probably your database wasnt shut down cleanly hence requiring a recovery. This recovery cannot be done because you have a corruption in your redo log needed to roll-forward the changes.
Without a valid backup and a restore/recovery until time there is no chance of opening the database without the help of Oracle. I strongly suggest you open a SR and prepare your management for some costs because you are running a unsupported database version on a unsupported (at least today) operating system. I also doubt you have a valid support contract for a 9i database...
Ronny Egner
My Blog: http://blog.ronnyegner-consulting.de -
How to recover from corrupt redo log file in non-archived 10g db
Hello Friends,
I don't know much about recovering databases. I have a 10.2.0.2 database with corrupt redo file and I am getting following error on startup. (db is non archived and no backup) Thanks very much for any help.
Database mounted.
ORA-00368: checksum error in redo log block
ORA-00353: log corruption near block 6464 change 9979452011066 time 06/27/2009
15:46:47
ORA-00312: online log 1 thread 1: '/dbfiles/data_files/log3.dbf'
====
SQL> select Group#,members,status from v$log;
GROUP# MEMBERS STATUS
1 1 CURRENT
3 1 UNUSED
2 1 INACTIVE
==
I have tried this so far but no luck
I have tried following commands but no help.
SQL> ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 3;
Database altered.
SQL> alter database open resetlogs;
alter database open resetlogs
ERROR at line 1:
ORA-01139: RESETLOGS option only valid after an incomplete database recovery
SQL> alter database open;
alter database open
ERROR at line 1:
ORA-00368: checksum error in redo log block
ORA-00353: log corruption near block 6464 change 9979452011066 time 06/27/2009
15:46:47
ORA-00312: online log 1 thread 1: '/dbfiles/data_files/log3.dbf'user652965 wrote:
Thanks very much for your help guys. I appreciate it. unfortunately none of these commands worked for me. I kept getting error on clearing logs that redo log is needed to perform recovery so it can't be cleared. So I ended up restoring from earlier snapshot of my db volume. Database is now open.
Thanks again for your input.And now, as a follow-up, at a minimum you should make sure that all redo log groups have at least 3 members. Then, if you lose a single redo log file, all you have to do is shutdown the db and copy one of the good members (of the same group as the lost member) over the lost member.
And as an additional follow-up, if you value your data you will run in archivelog mode and take regular backups of the database and archivelogs. If you fail to do this you are saying that your data is not worth saving. -
DB STARTUP 시 ORA-312, ORA-313(ONLINE REDO LOG CRASH)
제품 : ORACLE SERVER
작성날짜 : 2002-10-31
=====================================================
DB STARTUP 시 ORA-312, ORA-313(ONLINE REDO LOG CRASH)
=====================================================
PURPOSE
[ ONLINE REDO LOG가 손상되었을 때 DB에 OPERATION 이 없었던 경우는 다음과 같은 절차로 DB 을 OPEN 할 수 있다. - 확률 70% ]
Explanation & Example
1. CONTROLFILE 생성
-. 손상된 online log 는 포함시키지 않는다.
-. resetlogs option 으로 생성한다.
-. reuse option 은 생략하고 기존 controlfile 은 다른 이름으로 move 시킴.
<V7 에서 CONTROLFILE 생성하는 방법 >
sqldba> startup mount
sqldba> alter database backup controlfile to trace;
위와 같이 명령을 입력하면 ORACLE_HOME/rdbms/log 디렉토리에 trace 화일이
생긴다. 그 trace 화일에서 create controlfile 명령 부분을 남기고 삭제
한다.
(7.3 이상에서는 cd $ORACLE_HOME
cd ../../admin/SID dir/udump 에 있습니다.)
콘트롤 화일 생성 문장 예 - <cnt.sql> : GROUP 1 이 ONLINE LOG 라고 가정
CREATE CONTROLFILE DATABASE "RC722" RESETLOGS NOARCHIVELOG
MAXLOGFILES 32 ********
MAXLOGMEMBERS 2
MAXDATAFILES 30
MAXINSTANCES 8
MAXLOGHISTORY 800
LOGFILE
GROUP 2 '/oracle/oracle/dbs/log2RC722.dbf' SIZE 5M,
GROUP 3 '/oracle/oracle/dbs/log3RC722.dbf' SIZE 5M
DATAFILE
'/oracle/oracle/dbs/systRC722.dbf',
'/oracle/oracle/dbs/rbsRC722.dbf',
'/oracle/oracle/dbs/toolRC722.dbf',
'/oracle/oracle/dbs/usrRC722.dbf',
'/oracle/oracle/dbs/tempRC722.dbf',
'/oracle/oracle/rcdata.dbf'
2.절차
$ sqldba lmode=y
SQLDBA> connect internal
SQLDBA> shutdown abort
SQLDBA> startup nomount
statement processed
SQLDBA> @cnt
SQLDBA> recover database using backup controlfile until cancel;
CANCEL (Return)
Recovery canceled
SQLDBA> alter database open resetlogs;
: 만일 정상적으로 open 되면 log file 추가
SQLDBA> alter database add logfile '?/dbs/log1ORA722.dbf' size 1M;
Reference Documents
noneYou could check if the recovery was complete by (re)creating the controlfile with the resetlogs option.
<CREATE CONTROLFILE REUSE DATABASE define_db_name RESETLOGS NOARCHIVELOG
...>Thanks for the hint. If possible, could you only check if the steps I'm going to perform are ok.
I did an "alter database backup controlfile to trace;" and then extracted the create controlfile definition part. So in essence I should run the following statements:
CREATE CONTROLFILE REUSE DATABASE "TESTDB" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 'C:\ORADATA\TESTDB\REDO01.LOG' SIZE 20M,
GROUP 2 'C:\ORADATA\TESTDB\REDO02.LOG' SIZE 20M,
GROUP 3 'C:\ORADATA\TESTDB\REDO03.LOG' SIZE 20M
-- STANDBY LOGFILE
DATAFILE
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\SYSTEM01.DBF',
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\UNDOTBS01.DBF',
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\SYSAUX01.DBF',
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\USERS01.DBF'
CHARACTER SET EE8MSWIN1250
ALTER DATABASE OPEN RESETLOGS;
ALTER TABLESPACE TEMP ADD TEMPFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\TEMP01.DBF' REUSE;Is that correct?
About the RMAN backups: Wouldn't a 'CATALOG RECOVERY AREA' populate the controlfile with backup information again (I'm not using a recovery catalog in this case)?
Thanks for the help!
Regards,
Jure -
ORA-00354, ORA-00353 on RAC 11gR2
Hello All,
I have a database Oracle RAC 11gR2 on OEL linux 5.5 32bit.
When i am trying startup my database I am facing the below errors: this error is occuring on the startup of any node
ERROR at line 1:
ORA-00354: corrupt redo log block header
ORA-00353: log corruption near block 2651 change 1172351 time 10/12/2011
13:22:43
ORA-00312: online log 1 thread 1: '+DATA/orcl/onlinelog/group_1.261.761845161'It seems that my online redo log is corrupted. how can i solve that ?
knowing that my database is running in NOARCHIVELOG mode and i do not have any backup.
and why i am not able to start up any of the nodes? redo logs is not related to each node seperately ?
I tried: srvctl start instance -d orcl -i orcl1 or srvctl start instance -d orcl -i orcl2
but the same error, where is the High Availibilty in that case, the redo log file group_1 is for thread 1 only. SHould not be able to start Instance 2?
Regards,
Edited by: NB on Oct 13, 2011 5:12 PMsince my database is runing in NOARCHIVELOG mode and i have no backups and the current is logfile was the corrupted one and my database was not starting.
I solved that by ceating a pfile and adding the : allowresetlogs_corruption=TRUE
regards, -
Redo log files lost in Disk Corruption/failure
DB version:10gR2
In one of our test databases, I have lost all members of a group due to disk corruption(it was a bad practise to store both members on the same filesystem)
Database is still up. We don't have a backup of the lost redo log group. Altogether we had 3 redo log groups. this is what i am going to do to fix this issue.
Step 1. Add a redo log group
ALTER DATABASE
ADD LOGFILE ('/u04/oradata/ora67tst/log4a.rdo',
'/u05/oradata/ora67tst/log4b.rdo') SIZE 15m;Step 2. Drop the corrupted redo log group
ALTER DATABASE DROP LOGFILE GROUP 2;Is this the right way to go about fixing this issue?
The documentation says that you need to make sure a redo log group is archived before you DROP it.
When i use the query
SQL>SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;
GROUP# ARC STATUS
1 YES ACTIVE
2 NO CURRENT
3 NO INACTIVE
How can i force the archiving of a redo log group 2?
Edited by: Citizen_2 on May 28, 2009 10:10 AM
Edited by: Citizen_2 on May 28, 2009 10:11 AMCitizen_2 wrote:
How can i force the archiving of a redo log group 2?How could you archive a log group when you have lost all members of that group?
Have you checked out this documentation: [Recovering After the Loss of Online Redo Log Files|file://///castle/1862/Home%20Directories/Vaillancourt/Oracle%2010gR2%20Doc/backup.102/b14191/recoscen008.htm#sthref1872]
More specifically:
If the group is . . . Current
Then . . .
It is the log that the database is currently writing to.
And you should . . .
Attempt to clear the log; if impossible, then you must restore a backup and perform incomplete recovery up to the most recent available redo log.
>
HTH! -
ORACLE 11.2.0.2
I have a corrupted redo log on a Physical Standby db. The corrupted file is the current log. I cant do an "alter system switch logfile" because the database is not writeable.
SQL> alter database open;
Database altered.
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
Database altered.
SQL> SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;
GROUP# ARC STATUS
1 YES UNUSED
2 YES UNUSED
3 NO CURRENT
SQL>
SQL> alter system switch logfile;
alter system switch logfile
ERROR at line 1:
ORA-16000: database open for read-only access
How can I drop log file #3? The database is currently a physical, if I convert ti to a logical, then the dp would be writeable. Would this work? Any other ideas??http://download.oracle.com/docs/cd/B19306_01/server.102/b14239/manage_ps.htm
8.3.5 Adding or Dropping Online Redo Log Files
Changing the size and number of the online redo log files is sometimes done to tune the database. You can add or drop online redo log file groups or members to the primary database without affecting the standby database. Similarly, you can drop log file groups or members from the primary database without affecting your standby database. However, these changes do affect the performance of the standby database after switchover.
Caution:
Whenever you add an online redo log file to the primary database, you should add corresponding online and standby redo log files to the standby database.
For example, if the primary database has 10 online redo log files and the standby database has 2, and then you switch over to the standby database so that it functions as the new primary database, the new primary database is forced to archive more frequently than the original primary database.
Consequently, when you add or drop an online redo log file at the primary site, it is important that you synchronize the changes in the standby database by following these steps:
If Redo Apply is running, you must cancel Redo Apply before you can change the log files.
If the STANDBY_FILE_MANAGEMENT initialization parameter is set to AUTO, change the value to MANUAL.
Add or drop an online redo log file:
To add an online redo log file, use a SQL statement such as this:
SQL> ALTER DATABASE ADD LOGFILE '/disk1/oracle/oradata/payroll/prmy3.log' SIZE 100M;
To drop an online redo log file, use a SQL statement such as this:
SQL> ALTER DATABASE DROP LOGFILE '/disk1/oracle/oradata/payroll/prmy3.log';
Repeat the statement you used in Step 3 on each standby database.
Restore the STANDBY_FILE_MANAGEMENT initialization parameter and the Redo Apply options to their original states. -
Sizing the redo log files using optimal_logfile_size view.
Regards
I have a specific question regarding logfile size. I have deployed a test database and i was exploring certain aspects with regards to selecting optimal size of redo logs for performance tuning using optimal_logfile_size view from v$instance_recovery. My main goal is to reduce the redo bytes required for instance recovery. Currently i have not been able to optimize the redo log file size. Here are the steps i followed:-
In order to use the advisory from v$instance_recovery i had to set fast_start_mttr_target parameter which is by default not set so i did these steps:-
1)SQL> sho parameter fast_start_mttr_target;
NAME TYPE VALUE
fast_start_mttr_target integer 0
2) Setting the fast_start_mttr_target requires nullifying following deferred parameters :-
SQL> show parameter log_checkpoint;
NAME TYPE VALUE
log_checkpoint_interval integer 0
log_checkpoint_timeout integer 1800
log_checkpoints_to_alert boolean FALSE
SQL> select ISSES_MODIFIABLE,ISSYS_MODIFIABLE,ISINSTANCE_MODIFIABLE,ISMODIFIED from v$parameter where name like'log_checkpoint_timeout';
ISSES_MODIFIABL ISSYS_MODIFIABLE ISINSTANCE_MODI ISMODIFIED
FALSE IMMEDIATE TRUE FALSE
SQL> alter system set log_checkpoint_timeout=0 scope=both;
System altered.
SQL> show parameter log_checkpoint_timeout;
NAME TYPE VALUE
log_checkpoint_timeout integer 0
3) Now setting fast_start_mttr_target
SQL> select ISSES_MODIFIABLE,ISSYS_MODIFIABLE,ISINSTANCE_MODIFIABLE,ISMODIFIED from v$parameter where name like'fast_start_mttr_target';
ISSES_MODIFIABL ISSYS_MODIFIABLE ISINSTANCE_MODI ISMODIFIED
FALSE IMMEDIATE TRUE FALSE
Setting the fast_mttr_target to 1200 = 20 minutes of checkpoint switching according to Oracle recommendation
Querying the v$instance_recovery view
4) SQL> select ACTUAL_REDO_BLKS,TARGET_REDO_BLKS,TARGET_MTTR,ESTIMATED_MTTR, OPTIMAL_LOGFILE_SIZE,CKPT_BLOCK_WRITES from v$instance_recovery;
ACTUAL_REDO_BLKS TARGET_REDO_BLKS TARGET_MTTR ESTIMATED_MTTR OPTIMAL_LOGFILE_SIZE CKPT_BLOCK_WRITES
276 165888 *93* 59 361 16040
Here Target Mttr was 93 so i set the fast_mttr_target to 120
SQL> alter system set fast_start_mttr_target=120 scope=both;
System altered.
Now the logfile size suggested by v$instance_recovery is 290 Mb
SQL> select ACTUAL_REDO_BLKS,TARGET_REDO_BLKS,TARGET_MTTR,ESTIMATED_MTTR, OPTIMAL_LOGFILE_SIZE,CKPT_BLOCK_WRITES from v$instance_recovery;
ACTUAL_REDO_BLKS TARGET_REDO_BLKS TARGET_MTTR ESTIMATED_MTTR OPTIMAL_LOGFILE_SIZE CKPT_BLOCK_WRITES
59 165888 93 59 290 16080
After altering the logfile size to 290 as show below by v$log view :-
SQL> select GROUP#,THREAD#,SEQUENCE#,BYTES from v$log;
GROUP# THREAD# SEQUENCE# BYTES
1 1 24 304087040
2 1 0 304087040
3 1 0 304087040
4 1 0 304087040
5 ) After altering the size i have observed the anomaly as redo log blocks to be applied for recovery has increased from *59 to 696* also now v$instance_recovery view is now suggesting the logfile size of *276 mb*. Have i misunderstood something
SQL> select ACTUAL_REDO_BLKS,TARGET_REDO_BLKS,TARGET_MTTR,ESTIMATED_MTTR, OPTIMAL_LOGFILE_SIZE,CKPT_BLOCK_WRITES from v$instance_recovery;
ACTUAL_REDO_BLKS TARGET_REDO_BLKS TARGET_MTTR ESTIMATED_MTTR OPTIMAL_LOGFILE_SIZE CKPT_BLOCK_WRITES
*696* 646947 120 59 *276* 18474
Please clarify the above output i am unable to optimize the logfile size and have not been able to achieve the goal of reducing the redo log blocks to be applied for recovery, any help is appreciated in this regard.sunny_123 wrote:
Sir oracle says that fast_start_mttr target can be set to 3600 = 1hour. As suggested by following oracle document
http://docs.oracle.com/cd/B10500_01/server.920/a96533/instreco.htm
I set mine value to 1200 = 20 minutes. Later i adjusted it to 120=2 minutes as Target_mttr suggested it to be around 100 (if fast_mttr_target value is too high or too low effective value is contained in target_mttr of v$instance_recovery)Just to add, you are reading the documentation of 9.2 and a lot has changed since then. For example, in 9.2 the parameter FSMTTR was introduced and explicitly required to be set and monitored by the DBA for teh additional checkpoint writes which might get caused by it. Since 10g onwards this parameter has been made automatically maintained by Oracle. Also it's been long that 9i has been desupported followed by 10g so it's better that you start reading the latest documentation of 11g and if not that, at least of 10.2.
Aman....
Maybe you are looking for
-
I'd love to get an imac but is there a way to upgrade the sound card?
I love the new imac's.. but I would need to upgrade the sound card if I got one. I have a recording studio and i'm using a delta 1010 pci card that is compatible with macs.. I can't see how it would work with an imac.. I'm also a graphic artist and u
-
Failure to start + Kernel Panic iMac 6,1 10.6.8
I am repairing a friends iMac 6,1 24" (Late 2006?). It fails to boot, displaying a white screen after finishing with the apple logo/spinning logo page. I cannot boot into the recovery tools on the original OS X Tiger disks because it freezes at the a
-
Identity Services Engine (ISE) support for the WLC 2500
Is the ISE going to support the 2500 series Wireless LAN Controller WLC? If yes in what release and appriximately when is that due to be released?
-
Hiyall - Following problems with a previous HD, I realize belatedly I'm supposed to format these things optimally when they come out of the box. When I go to Disk Utility I get cold feet! I am running 10.5.7 with a 2.2G intel on a MacBook I have a WD
-
Why does it say movie being modified try again later
why does it say movie being modified try again later