Ora-600 (3020) error was encountered today while restoring a set of test Libraries
SQL> recover datafile 6;
ORA-00279: change 1981277 generated at 01/03/2014 14:24:15 needed for thread 1
ORA-00289: suggestion:/opt/arch/archive_rj45_834576965.arc
ORA-00280: change 1981277 for thread 1 is in sequence #45
Specify log: {<RET> = suggested | filename | AUTO | CANCEL}
Auto
...
...
ORA-00283: recovery session canceled due to errors
ORA-00600: internal error code, arguments: [3020], [6], [59], [25165883], [], [], [], [], [], [], [], [], []
ORA-10567: Redo is inconsistent with data block (file #6, block #59, file
Offset is 483328 bytes)
ORA-10564: tablespace GOOLEN
ORA-01110: data file 6: '/opt/app/Oracle/oradata/goolen/goolen01.dbf'
ORA-10561: block type 'transactional managed data Block', data object #74195
ORA-01112: media recovery not started
Alter log error:
Fri Jan 03 17:21:06 2014
Alter database recover datafile 6
Media Recovery Start
Serial Media Recovery started
ORA-279 signalled during: alter database recover datafile 6...
ALTER DATABASE RECOVER CONTINUE DEFAULT
Media Recovery Log/opt/arch/archive_rj45_834576965.arc
Errors in file/opt/app/oracle/diag/rdbms/goolen/trace/goolen_ora_11763.trc:
ORA-00308: cannot open archived log '/opt/arch/archive_000044_834576965.arc'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-10567: Redo is inconsistent with data block (file #6, block #59, file offset is 483328 bytes)
ORA-10564: tablespace GOOLEN
ORA-01110: data file 6: '/opt/app/oracle/oradata/goolen/goolen01.dbf'
ORA-10561: block type 'transactional managed data Block', data object #74195
Errors in file/opt/app/oracle/diag/rdbms/goolen/trace/goolen_ora_11763.trc (incident = 15025 ):
ORA-00600: internal error code, arguments: [3020], [6], [59], [25165883], [], [], [], [], [], [], [], [], []
ORA-10567: Redo is inconsistent with data block (file #6, block #59, file offset is 483328 bytes)
ORA-10564: tablespace GOOLEN
ORA-01110: data file 6: '/opt/app/oracle/oradata/goolen/goolen01.dbf'
ORA-10561: block type 'transactional managed data Block', data object #74195
Incident details in:/opt/app/oracle/diag/rdbms/goolen/incident/incdir_15025/goolen_ora_11763_i15025.trc
Media Recovery failed with error 600
Trace file content:
Buffer tsn: 6 rdba: 0x0180003b (6/59)
Scn: 0x0000. 00158d60 seq: 0x01 flg: 0x04 tail: 0x8d600601
Frmt: 0x02 chkval: 0xf96d type: 0x06 = trans data
On-disk scn: 0x0. 158d60
DUMP REDO
Opcodes *.*
DBAs (file #, block #):
(6, 59 ).
SCNs: scn: 0x0000. 00158d60 (1412448) thru scn: 0x0000. 001e3b9c (1981340)
Times: creation thru eternity
* Error 308 when opening Archive Log-
/Opt/arch/archive_41544_834576965.arc
* Error is non fatal for dump-Dump will continue
* Error 308 when opening Archive Log-
/Opt/arch/archive_41544_834576965.arc
* Error is non fatal for dump-Dump will continue
* Error 308 when opening Archive Log-
/Opt/arch/archive_42539_834576965.arc
* Error is non fatal for dump-Dump will continue
* Error 308 when opening Archive Log-
/Opt/arch/archive_42539_834576965.arc
SQL> select segment_name, segment_type, owner
2 from dba_extents
3 where file_id = & file_id
4 and & block_id between block_id and block_id + blocks-1;
Enter value for file_id: 6
Old 3: where file_id = & file_id
New 3: where file_id = 6
Enter value for block_id: 59
Old 4: and & block_id between block_id and block_id + blocks-1
New 4: and 59 between block_id and block_id + blocks-1
No rows selected
SQL> select *
2 from dba_free_space
3 where file_id = & file_id
4 and & block_id between block_id and block_id + blocks-1;
Enter value for file_id: 6
Old 3: where file_id = & file_id
New 3: where file_id = 6
Enter value for block_id: 59
Old 4: and & block_id between block_id and block_id + blocks-1
New 4: and 59 between block_id and block_id + blocks-1
No rows selected
SQL> SELECT owner, segment_name, segment_type, partition_name
2 FROM dba_segments
3 WHERE header_file = & file_id
4 and header_block = & block_id;
Enter value for file_id: 6
Old 3: WHERE header_file = & file_id
New 3: WHERE header_file = 6
Enter value for block_id: 59
Old 4: and header_block = & block_id
New 4: and header_block = 59
No rows selected
Due to this error, the recovery is interrupted.
Metalink:
This is called a 'stuck RECOVERY '.
There is an inconsistency between the information stored in the redo and the information stored in a database block being recovered
++ From the above information, we can probably guess that during oracle's restoration (0x0180003b (6/59), we found that the redo information is inconsistent with the data block information to be restored, as a result, recovery cannot continue.
SCNs: scn: 0x0000. 00158d60 (1412448) thru scn: 0x0000. 001e3b9c (1981340)
Because the test database is not backed up, only part of the data can be lost to restore the database.
SQL> recover datafile 6 allow 1 resume uption;
ORA-00279: change 1981277 generated at 01/03/2014 14:24:15 needed for thread 1
ORA-00289: suggestion:/opt/arch/archive_rj45_834576965.arc
ORA-00280: change 1981277 for thread 1 is in sequence #45
Specify log: {<RET> = suggested | filename | AUTO | CANCEL}
Auto
ORA-00279: change 1981343 generated at 01/03/2014 14:25:15 needed for thread 1
ORA-00289: suggestion:/opt/arch/archive_rj46_834576965.arc
ORA-00280: change 1981343 for thread 1 is in sequence #46
Log applied.
Media recovery complete.
SQL>
SQL> alter database datafile 6 online;
Database altered.
Oracle ORA-01555 snapshot old description
Troubleshooting for ORA-01078 and LRM-00109
ORA-01555 ultra-long Query Duration time
Notes on ORA-00471 Processing Methods
ORA-00314, redolog corruption, or missing Handling Methods
Solution to ORA-00257 archive logs being too large to store