
说明:
本文整理自我的ITPUB博客,链接如下:
https://blog.itpub.net/29785807/viewspace-2118457/
环境说明:
数据库版本: Oracle 11.2.0.1.0
数据库服务器操作系统: Windows server 2008
问题现象:
alter database open resetlogs; 时报错如下
ORA-1092 signalled during: ALTER DATABASE OPEN...
Doing block recovery for file 3 block 261754
No block recovery was needed
Errors in file e:\app\administrator\diag\rdbms\klnew\klnew\trace\ klnew_ora_2072.trc (incident=92624):
ORA-00600: 内部错误代码, 参数: [4194] , [], [], [], [], [], [], [], [], [], [], []
ORA-01092: ORACLE 实例终止。强制断开连接
ORA-00600: 内部错误代码, 参数: [4194] , [], [], [], [], [], [], [], [], [], [], []
Incident details in: e:\app\administrator\diag\rdbms\klnew\klnew\incident\incdir_92624\ klnew_ora_2072_i92624.trc
Doing block recovery for file 3 block 261754
No block recovery was needed
No Resource Manager plan active
Errors in file e:\app\administrator\diag\rdbms\klnew\klnew\trace\klnew_smon_3776.trc (incident=87732):
ORA-00600: internal error code, arguments: [4193] , [], [], [], [], [], [], [], [], [], [], []
Incident details in: e:\app\administrator\diag\rdbms\klnew\klnew\incident\incdir_87732\klnew_smon_3776_i87732.trc
Exception [type: ACCESS_VIOLATION, UNABLE_TO_READ] [ADDR:0x66288933] [PC:0x9237D88, kgegpa()+38]
Dump file e:\app\administrator\diag\rdbms\klnew\klnew\trace\alert_klnew.log
解决方案:
解决问题时间充足时,可以通过 trace 日志找到损坏的回滚段,通过隐含参数屏蔽损坏的回滚段;
需要尽快解决问题时,可以直接通过隐含参数屏蔽所有的回滚段,之后启动数据库,创建新的 UNDO 表空间;
设置 undo_management由原来的 auto 改成 manual(undo_tablespace= SYSTEM) ,后可以启动数据库,但是执行 Expdp 或应用进行前台操作时,会报错: ORA-01552: cannot use system rollback segment for non-system tablespace ‘TEMP’;
ORA-01552: cannot use system rollback segment for non-system tablespace 'NNC_DATA01';
1: 查看正在使用的回滚段
select segment_name, tablespace_name, status from dba_rollback_segs;
2: 使用 _corrupted_rollback_segments 参数可以使数据库在启动的时候 , 忽略损坏的回滚段 , 使数据库正常启动 .
*._corrupted_rollback_segments=( _SYSSMU1_3086899707$,_SYSSMU2_1531987058$,_SYSSMU3_478608968$,_SYSSMU4_1451910634$,_SYSSMU5_2520346804$,_SYSSMU6_1439239625$,_SYSSMU7_1101470402$,_SYSSMU8_1682283174$,_SYSSMU9_3186340089$,_SYSSMU10_378818850$ )
另外 : _offline_rollback_segments 参数可以让指定的回滚段处于 OFFLINE 状态
3: undo_management改回 audo ;
此时启动数据库会自动创建另一个回滚段,其他的 10 个回滚段会自动 offline;
4:创建新的 UNDO 表空间
create tablespace undotbs2 datafile 'D:\APP_10.2.0.4\CJC_DATAFILE\UNDOTBS02.DBF' size 10M autoextend on;
alter system set undo_tablespace=UNDOTBS2 scope=spfile;
5: Drop tablespace including contents and datafiles
</undo tablespace
1.数据库开启的情况下,重建undotbs,然后重新指定到新undotbs上。
2.未打开情况下,修改undo_management 参数为 manual或者(也有说并且的)提供新的回滚段。
其中 :
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)
欢迎关注我的微信公众号"IT小Chen"
30

被折叠的 条评论
为什么被折叠?



