ora-4193/4194故障处理一则(一)

2014-11-24 09:16:54 · 作者: · 浏览: 2
ora-4193/4194故障处理一则
在线日志丢失,强制打开 数据库后,导致undo redo 不一致
当前处于 curren t的 redolog 损坏,这里尝试设置隐含参数 "_allow_resetlogs_corruption" =true 来跳过open时的一致性检查,来强制打开数据库
SQL> alter database clear logfile group 4;
alter database clear logfile group 4
*
ERROR at line 1:
ORA-01624: log 4 needed for crash recovery of instance lixora (thread 1)
ORA-00312: online log 4 thread 1:
'/oracle/flash_recovery_area/LIXORA/onlinelog/o1_mf_4_92cyr3h3_.log'

SQL> alter system set "_allow_resetlogs_corruption" =true scope=spfile;
System altered.

----关闭数据库并重启至mount状态:
SQL> startup force 
ORACLE instance started.
Total System Global Area  583008256 bytes
Fixed Size                  2022504 bytes
Variable Size             180355992 bytes
Database Buffers          398458880 bytes
Redo Buffers                2170880 bytes
Database mounted.
ORA-00313: open failed for members of log group 4 of thread 1
ORA-00312: online log 4 thread 1:
'/oracle/flash_recovery_area/LIXORA/onlinelog/o1_mf_4_92cyr3h3_.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3

SQL> startup mount;
ORA-01081: cannot start already-running ORACLE - shut it down first

SQL> recover database until cancel;
ORA-00279: change 5630464 generated at 10/21/2013 09:17:01 needed for thread 1
ORA-00289: suggestion :
/oracle/flash_recovery_area/LIXORA/archivelog/2013_10_21/o1_mf_1_84_%u_.arc
ORA-00280: change 5630464 for thread 1 is in sequence #84

Specify log: {=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: '/oracle/oradata/lixora/system01.dbf'

ORA-01112: media recovery not started

SQL>
alter database open resetlogs; alter database open resetlogs * ERROR at line 1: ORA-03113: end-of-file on communication channel ----这里不知道什么原因断开了和数据库的通信 SQL> alter database open resetlogs; ERROR: ORA-03114: not connected to ORACLE ----再次连接尝试去open resetlogs SQL> startup mount; ORACLE instance started. Total System Global Area 583008256 bytes Fixed Size 2022504 bytes Variable Size 180355992 bytes Database Buffers 398458880 bytes Redo Buffers 2170880 bytes Database mounted. 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-00607: Internal error occurred while making a change to a data block ORA-00600: internal error code, arguments: [4194], [22], [39], [], [], [], [], []

-----开始报ora-600 错误:
ORA-600[4194]/[4193],第一感觉就是undo出现问题。
4193:表示undo和redo不一致(Arg [a] Undo record seq number,Arg [b] Redo record seq number );
4194:表示也是undo和redo不一致(Arg [a] Maximum Undo record number in Undo block,Arg [b] Undo record number from Redo block)
查看alert日志,如下:
Mon Oct 21 09:50:53 2013
Errors in file /oracle/admin/lixora/bdump/lixora_q001_8303.trc:
ORA-00607: Internal error occurred while making a change to a data block
ORA-00600: internal error code, arguments: [4193], [1442], [1446], [], [], [], [], []
Mon Oct 21 09:50:53 2013
Doing block recovery for file 2 block 630
Block recovery from logseq 2, block 73 to scn 5650681
Mon Oct 2