全部博文(389)
分类: Oracle
2013-10-01 12:05:33
停电导致数据库undo表空间损坏一例
某日服务器反复停电两次,导致数据库无法启动
SMON: enabling cache recovery
Errors in file /usr/oracle/diag/rdbms/test/test/trace/test_ora_15058.trc (incident=1180152):
ORA-00600: 鍐呴儴閿欒?浠g爜, 鍙傛暟: [2662], [0], [21691999], [0], [21705090], [12582921], [], []
Incident details in: /usr/oracle/diag/rdbms/test/test/incident/incdir_1180152/test_ora_15058_i1180152.trc
Errors in file /usr/oracle/diag/rdbms/test/test/trace/test_ora_15058.trc:
ORA-00600: 鍐呴儴閿欒?浠g爜, 鍙傛暟: [2662], [0], [21691999], [0], [21705090], [12582921], [], []
Error 600 happened during db open, shutting down database
USER (ospid: 15058): terminating the instance due to error 600
Instance terminated by USER, pid = 15058
ORA-1092 signalled during: alter database open resetlogs...
Errors in file /usr/oracle/diag/rdbms/test/test/trace/test_ora_15058.trc (incident=1180153):
ORA-00600: 鍐呴儴閿欒?浠g爜, 鍙傛暟: [], [], [], [], [], [], [], []
ORA-01092: ORACLE 瀹炰緥缁堟?銆傚己鍒舵柇寮?杩炴[1m|%
ORA-00600: 鍐呴儴閿欒?浠g爜, 鍙傛暟: [2662], [0], [21691999], [0], [21705090], [12582921], [], []
Incident details in: /usr/oracle/diag/rdbms/test/test/incident/incdir_1180153/test_ora_15058_i1180153.trc
Errors in file /usr/oracle/diag/rdbms/test/test/trace/test_ora_15058.trc (incident=1180154):
ORA-00600: 鍐呴儴閿欒?浠g爜, 鍙傛暟: [], [], [], [], [], [], [], []
ORA-00600: 鍐呴儴閿欒?浠g爜, 鍙傛暟: [], [], [], [], [], [], [], []
ORA-01092: ORACLE 瀹炰緥缁堟?銆傚己鍒舵柇寮?杩炴[1m|%
数据库在启动时做实例恢复的时候,无法恢复了.这下比较麻烦了.设置参数跳过事务恢复.
报undo需要介质恢复.由于是这个测试库,没有备份.
SQL> recover database until cancel;
ORA-00279: 更改 21813125 (在 10/01/2013 03:07:33 生成) 对于线程 1 是必需的
ORA-00289: 建议: /u01/app/oracle/oradata/test/arch/1_1_827636849.dbf
ORA-00280: 更改 21813125 (用于线程 1) 在序列 #1 中
指定日志: {
auto
ORA-00308: 无法打开归档日志
'/u01/app/oracle/oradata/test/arch/1_1_827636849.dbf'
ORA-27037: 无法获得文件状态
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-00308: 无法打开归档日志
'/u01/app/oracle/oradata/test/arch/1_1_827636849.dbf'
ORA-27037: 无法获得文件状态
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01194: 文件 1 需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: '/u01/app/oracle/oradata/test/test/system01.dbf'
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-00603: ORACLE 服务器会话因致命错误而终止
进程 ID: 15905
会话 ID: 4955 序列号: 5
非常麻烦,还是打不开,试图使用until cancel来恢复,然后resetlogs来骗过数据库强制打开,
alert.log中狂报4194错误,看来是和undo中的seq和redo seq不一样导致.
改undo_management=manual和undo_tablespace=system,和100513事件.数据库成功打开.