接到一个oralce 8.1.6的数据库恢复请求,由于断电之后,系统无法正常恢复,通过尝试recover datafile报错如下
SQL>
select
*
from
v$version;
BANNER
----------------------------------------------------------------
Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
PL/SQL Release 8.1.6.0.0 - Production
CORE 8.1.6.0.0 Production
TNS
for
32-
bit
Windows: Version 8.1.6.0.0 - Production
NLSRTL Version 3.4.1.0.0 - Production
|
Tue Oct 16 14:17:01 2018
Media Recovery Datafile: 1
Media Recovery Start
Media Recovery Log
Recovery of Online Redo Log: Thread 1 Group 1 Seq 146597 Reading mem 0
Mem
# 0 errs 0: D:\ORACLE\ORADATA\ORCL\REDO01.LOG
Tue Oct 16 14:17:02 2018
Errors
in
file
D:\Oracle\admin\orcl\udump\ORA03040.TRC:
ORA-00600: internal error code, arguments: [kcoapl_blkchk], [1], [30547], [6101], [], [], [], []
Tue Oct 16 14:17:03 2018
Errors
in
file
D:\Oracle\admin\orcl\udump\ORA03040.TRC:
ORA-01578: ORACLE data block corrupted (
file
# 1, block # 30547)
ORA-01110: data
file
1:
'D:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF'
ORA-00607: Internal error occurred
while
making a change to a data block
ORA-00600: internal error code, arguments: [kcoapl_blkchk], [1], [30547], [6101], [], [], [], []
Tue Oct 16 14:17:03 2018
Errors
in
file
D:\Oracle\admin\orcl\udump\ORA03040.TRC:
ORA-00314: log 2 of thread 1, expected sequence
# 146598 doesn't match 146415
ORA-00312: online log 2 thread 1:
'D:\ORACLE\ORADATA\ORCL\REDO02.LOG'
|
这里可以获取到两个信息:1)system文件可能有坏块,导致数据库recover的时候报ORA-600 kcoapl_blkchk错误,2)数据库的redo可能异常了,由于8i数据库默认redo 10m,在业务繁忙时候切换较为频繁,而文件系统的cache导致redo信息比较老,而数据文件需要redo比较新,从而无法正常恢复成功。比较明显对于当前这样的情况只能是屏蔽数据一致性,强制拉库
ARC0: media recovery disabled
Tue Oct 16 14:17:39 2018
SMON: enabling cache recovery
Tue Oct 16 14:17:39 2018
Errors
in
file
D:\Oracle\admin\orcl\udump\ORA02256.TRC:
ORA-00600: internal error code, arguments: [2662], [1], [1712082681], [1], [1712107587], [8388610], [], []
Tue Oct 16 14:17:41 2018
Errors
in
file
D:\Oracle\admin\orcl\udump\ORA02256.TRC:
ORA-00600: internal error code, arguments: [2662], [1], [1712082682], [1], [1712107587], [8388610], [], []
ORA-00600: internal error code, arguments: [2662], [1], [1712082681], [1], [1712107587], [8388610], [], []
Tue Oct 16 14:17:43 2018
Errors
in
file
D:\Oracle\admin\orcl\udump\ORA02256.TRC:
ORA-00600: internal error code, arguments: [2662], [1], [1712082682], [1], [1712107587], [8388610], [], []
ORA-00600: internal error code, arguments: [2662], [1], [1712082681], [1], [1712107587], [8388610], [], []
Tue Oct 16 14:17:45 2018
Errors
in
file
D:\Oracle\admin\orcl\udump\ORA02256.TRC:
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [2662], [1], [1712082682], [1], [1712107587], [8388610], [], []
ORA-00600: internal error code, arguments: [2662], [1], [1712082681], [1], [1712107587], [8388610], [], []
|
ORA-600 2662这个错误比较常见,直接推数据库scn,启动库
Tue Oct 16 16:09:11 2018
Errors
in
file
D:\Oracle\admin\orcl\bdump\orclSMON.TRC:
ORA-00600: internal error code, arguments: [4193], [29469], [29477], [], [], [], [], []
Recovery of Online Redo Log: Thread 1 Group 3 Seq 1 Reading mem 0
Mem
# 0 errs 0: D:\ORACLE\ORADATA\ORCL\REDO03.LOG
Tue Oct 16 16:09:12 2018
Errors
in
file
D:\Oracle\admin\orcl\bdump\orclSMON.TRC:
ORA-01595: error freeing extent (3) of rollback segment (2))
ORA-00600: internal error code, arguments: [4193], [29469], [29477], [], [], [], [], []
Tue Oct 16 16:09:13 2018
Completed: ALTER DATABASE OPEN
Tue Oct 16 16:12:06 2018
CREATE ROLLBACK SEGMENT nrbs1 TABLESPACE rbs
Tue Oct 16 16:12:06 2018
Errors
in
file
D:\Oracle\admin\orcl\udump\ORA02252.TRC:
ORA-00600: internal error code, arguments: [4194], [79], [38], [], [], [], [], []
|
错误比较明显ORA-600 4194,而且已经告知是由于rollback segment 2异常,通过屏蔽回滚段,open数据库,删除老回滚段,创建新回滚段(8i无undo自动管理)
SQL> startup
ORACLE instance started.
Total System
Global
Area 1549432076 bytes
Fixed
Size
70924 bytes
Variable
Size
500707328 bytes
Database
Buffers 1048576000 bytes
Redo Buffers 77824 bytes
Database
mounted.
Database
opened.
SQL>
drop
rollback
segment
"RBS1"
;
Rollback
segment dropped.
SQL>
drop
rollback
segment
"RBS2"
;
Rollback
segment dropped.
SQL>
drop
rollback
segment
"RBS3"
;
Rollback
segment dropped.
SQL>
drop
rollback
segment
"RBS4"
;
Rollback
segment dropped.
SQL>
drop
rollback
segment
"RBS5"
;
Rollback
segment dropped.
SQL>
drop
rollback
segment
"RBS6"
;
Rollback
segment dropped.
SQL>
CREATE
ROLLBACK
SEGMENT nrbs1 TABLESPACE rbs;
Rollback
segment created.
SQL>
CREATE
ROLLBACK
SEGMENT nrbs2 TABLESPACE rbs;
Rollback
segment created.
SQL>
CREATE
ROLLBACK
SEGMENT nrbs3 TABLESPACE rbs;
Rollback
segment created.
SQL>
CREATE
ROLLBACK
SEGMENT nrbs4 TABLESPACE rbs;
Rollback
segment created.
SQL>
CREATE
ROLLBACK
SEGMENT nrbs5 TABLESPACE rbs;
Rollback
segment created.
SQL>
CREATE
ROLLBACK
SEGMENT nrbs6 TABLESPACE rbs;
Rollback
segment created.
SQL>
CREATE
ROLLBACK
SEGMENT nrbs7 TABLESPACE rbs;
Rollback
segment created.
|
客户安排导出导入,至此该库恢复完成