Oracle数据库ORA-00600: internal error code, arguments: [2662]报错的几种处理方法
在一次数据库恢复过程中,使用_ALLOW_RESETLOGS_CORRUPTION = TRUE这个隐含参数来强行打开数据库,这行遇到ORA-00600: internal error code, arguments: [2662]的报错,日志如下:
Errors in file /app/oracle/admin/rac/udump/rac1_ora_3997860.trc: ORA-00600: internal error code, arguments: [2662], [3186], [3707069194], [3186], [3707142625], [29580553], [], []
关于ORA-00600: internal error code, arguments: [2662]这个报错的解释如下:
ORA-600 [2662] “Block SCN is ahead of Current SCN”,说明当前数据库的数据块的SCN早于当前的SCN,主要是和存储在UGA变量中的dependent SCN进行比较,如果当前的SCN小于它,数据库就会产生这个ORA-600 [2662]的错误了。这个错误一共有五个参数,分别代表不同的含义
ORA-600 [2662] [a] {c} [d] [e]
Arg [a] Current SCN WRAP
Arg Current SCN BASE
Arg {c} dependent SCN WRAP
Arg [d] dependent SCN BASE
Arg [e] Where present this is the DBA where the dependent SCN came from.
我们分析错误中的提示,它的参数b=3707069194,d=3707142625,表明当前的SCN确实是小于dependent SCN,所以产生了这个600的错误。
通过查阅oracle metalink文档得知,出现这个报错主要有以下原因:
1.使用隐含参数_ALLOW_RESETLOGS_CORRUPTION后resetlogs打开数据库 2.恢复了控制文件但是没有使用recover database using backup controlfile进行恢复
3.数据库crash后设置了_DISABLE_LOGGING隐含参数
4.在并行服务器环境中DLM存在问题
5.硬件错误引起数据库没法写控制文件和重做日志文件
6.错误的部分恢复数据库
解决ORA-00600: internal error code, arguments: [2662]这个报错的方法如下:
1、 这个方法将数据库强行打开。
|