ORA-00600 [2662]

联系:手机/微信(+86 17813235971) QQ(107644445)QQ咨询惜分飞

标题:ORA-00600 [2662]

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

一、错误现象(alert日志中)
Errors in file /opt/oracle/admin/conner/udump/conner_ora_31607.trc:
ORA-00600: internal error code, arguments: [2662], [0], [897694446], [0], [897695488], [8388697], [], []

二、错误解释
ORA-600 [2662] “Block SCN is ahead of Current SCN”,说明当前数据库的数据块的SCN早于当前的SCN,主要是和存储在UGA变量中的dependent SCN进行比较,如果当前的SCN小于它,数据库就会产生这个ORA-600 [2662]的错误了。这个错误一共有五个参数,分别代表不同的含义
ORA-600 [2662] [a] [b] {c} [d] [e]
Arg [a] Current SCN WRAP
Arg [b] 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.
注:897694446<897695488
三、错误原因
1.使用隐含参数_ALLOW_RESETLOGS_CORRUPTION后resetlogs打开数据库
2.硬件错误引起数据库没法写控制文件和重做日志文件
3.错误的部分恢复数据库
4.恢复了控制文件但是没有使用recover database using backup controlfile进行恢复
5.数据库crash后设置了_DISABLE_LOGGING隐含参数
6.在并行服务器环境中DLM存在问题

四、解决办法
1、如果SCN相差不多,可以通过多次重起数据库解决(每次加1)

2、通过10015 ADJUST_SCN事件来增进current SCN
1)计算level
1.1) Arg {c}* 4得出一个数值,假设为V_Wrap
1.2) 如果Arg [d]=0,则V_Wrap值为需要的level
Arg [d] < 1073741824,V_Wrap+1为需要的level Arg [d] < 2147483648,V_Wrap+2为需要的level Arg [d] < 3221225472,V_Wrap+3为需要的level 1.3)SCN被增进了1024*1024*1024*level(level*10 billion)
2)执行内部事件
alter session set events ’10015 trace name adjust_scn level N’;
注:mount状态下执行(open下无效)
alert日志中会出现:
Sat Aug 20 15:41:07 2011
Debugging event used to advance scn to 107374182400

此条目发表在 ORA-xxxxx 分类目录,贴了 标签。将固定链接加入收藏夹。

ORA-00600 [2662]》有 4 条评论

  1. 惜分飞 说:

    KSTDUMP: End of in-memory trace dump
    ORA-00600: internal error code, arguments: [2662], [0], [22851727], [0], [24096052], [8388617], [], []

    你好,我按照上述方法还是不管用。
    SQL> shutdown abort
    ORACLE instance shut down.
    SQL> startup mount
    ORACLE instance started.

    Total System Global Area185323920 bytes
    Fixed Size 455056 bytes
    Variable Size 117440512 bytes
    Database Buffers 67108864 bytes
    Redo Buffers 319488 bytes
    Database mounted.
    SQL> alter session set events ‘ 0015 trace name adjust_scn level 1′;

    Session altered.

    SQL> alter database open;
    ERROR:
    ORA-03113: end-of-file on communication channel

    SQL> exit

    alter session set events ‘ 0015 trace name adjust_scn level 1′;
    书写错误

  2. 杨仲斌 说:

    KSTDUMP: End of in-memory trace dump
    ORA-00600: internal error code, arguments: [2662], [0], [22851727], [0], [24096052], [8388617], [], []

    你好,我按照上述方法还是不管用。
    SQL> shutdown abort
    ORACLE instance shut down.
    SQL> startup mount
    ORACLE instance started.

    Total System Global Area 185323920 bytes
    Fixed Size 455056 bytes
    Variable Size 117440512 bytes
    Database Buffers 67108864 bytes
    Redo Buffers 319488 bytes
    Database mounted.
    SQL> alter session set events ‘ 0015 trace name adjust_scn level 1′;

    Session altered.

    SQL> alter database open;
    ERROR:
    ORA-03113: end-of-file on communication channel

    SQL> exit

  3. 惜 分飞 说:

    如果相差的太多,可以使用_minimum_giga_scn来设置当前scn

  4. 惜 分飞 说:

    (database open)
    alter session set events ‘IMMEDIATE trace name ADJUST_SCN level x’;
    (database mount)
    alter session set events ’10015 trace name adjust_scn level x’;