在某客户现场遇到一个看着很唬人的报错 ORA 600 ,遇到此报错很多人心里一慌,此次故障ORA-00600 [4194]根本原因是数据库断电down机后undo损坏了,导致数据库不能open。接下来看alert报错
Errors in file d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_6032.trc (incident=166522): ORA-00603: ORACLE server session terminated by fatal error ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [], [], [], [], [] ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [], [], [], [], [] ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [], [], [], [], [] ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [], [], [], [], [] ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [], [], [], [], [] ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [], [], [], [], [] Incident details in: d:\app\administrator\diag\rdbms\orcl\orcl\incident\incdir_166522\orcl_ora_6032_i166522.trc Errors in file d:\app\administrator\diag\rdbms\orcl\orcl\incident\incdir_166522\orcl_ora_6032_i166522.trc: ORA-00603: ORACLE server session terminated by fatal error ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [], [], [], [], [] ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [], [], [], [], [] ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [], [], [], [], [] ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [], [], [], [], [] ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [], [], [], [], [] ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [], [], [], [], []
复制
其实报错很多,但是很明显就是ORA-00600 [4194]
接下来做一些检查,登陆数据库检查SCN,发现是控制文件和数据文件头scn是一致的,那么重建undo就可以了
select distinct checkpoint_change# from v$datafile;
select distinct checkpoint_change# from v$datafile_header;
1.创建pfile参数文件
sqlplus / as sysdba
create pfile=‘d:\pfile.ora’ from spfile;
2.编辑pfile
*.undo_management=‘MANUAL’
*.undo_tablespace=‘SYSTEM’
3,重启数据库
shutdown immediate
startup pfile=‘d:\pfile.ora’
观察报错,此处顺利的话是无报错的,当然alert可能还有其他的报错,要继续处理其他报错
4.重建undo
select file_name,sum(bytes)/1024/1204/1204 from dba_data_files where tablespace_name=‘UNDOTBS2’ group by file_name;
CREATE UNDO TABLESPACE UNDOTBS1 datafile ‘D:\APP\ADMINISTRATOR\ORADATA\orcl\UNDBTBS01,DBF’ size 3G;
5.重新修改pfile使undo自动管理
*.undo_management=‘AUTO’
*.undo_tablespace=‘UNDOTBS3’
startup pfile=‘d:\pfile.ora’
create spfile from pfile=‘d:\pfile.ora’
startup force;
6.删除undo
补充:
ORA-600[4194]/[4193]
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)
所以出现4193错误,解决方法跟4194一样。
评论
