欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

记ORA-00600 [25012]的一次解决过程

程序员文章站 2022-05-30 21:29:53
...

OS:aix5 DB:9.2.0.8 客户需要把生产库通过RMAN的方式还原到开发测试环境中,通过RMAN还原数据文件、控制文件以及相关的归档文件后,开始对数据库进行recover操作,在还原完所有归档后报以下错误: ORA-01547、ORA-01194、ORA-01110 通过alter database open

OS:aix5
DB:9.2.0.8
客户需要把生产库通过RMAN的方式还原到开发测试环境中,通过RMAN还原数据文件、控制文件以及相关的归档文件后,开始对数据库进行recover操作,在还原完所有归档后报以下错误:
ORA-01547、ORA-01194、ORA-01110

通过alter database open resetlogs;



报:
SQL>alterdatabaseopenresetlogs;
alterdatabaseopenresetlogs
*
ERRORatline 1:
ORA-01194: file 1 needs more recoverytobe consistent
ORA-01110:

通过设置隐藏参数
_allow_resetlogs_corruption= TRUE
打开数据库。

打开后数据库开始报ORA-00600错误
ORA-00600: internal error code, arguments: [25012], [1], [0], [], [], [], [], []
ORA-00600: internal error code, arguments: [25012], [1], [63], [], [], [], [], []

查看资料发知道:
ORA-600 [25012] [a] [b]
*c0`!]1m x s0|0Arg [a] Tablespace Number
Fg9N9~4\1f D0Arg [b] Relative file numberITPUB个人空间*]2qX.NC1vg)R*@

查询ts#为1的表空间发觉为undotbs1表空间。
参考网上几位大师写的文档,发觉都不太适合解决该问题,最后只能尝试重建undotbs1,在切换到undotbs2后,删除undotbs1的时候始终报ORA-30013错误,根据查看发现undotbs1里面_SYSSMU6$回滚段始终在线,尝试设置_smu_debug_mode=4的方式来使_SYSSMU6$回滚段离线,但始终无法成功,最后只能再次使用隐藏参数:
_offline_rollback_segments=(_SYSSMU6$)ITPUB个人空间ldtx(X
_corrupted_rollback_segments=(_SYSSMU6$)

重新启动数据库后,成功删除undotbs1,重建undotbs1.
本以为已经顺利结束,结果发现数据库继续报:
ORA-02019: connection description for remote database not foundITPUB个人空间!~C@J-iU

该错误是由于分布式错误引起,处理完该错误后,此次恢复总算完成。

记录下,有点粗略,O(∩_∩)O哈!