oradebug增加scn

数据库日志报错:

ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [2662], [3543], [5685940], [3543], [5685970], [4194432], [], [], [], [], [], []
Process ID: 3157
Session ID: 1 Serial number: 3

ora-600 [2662]参数说明:
ORA-00600: internal error code, arguments: [2662], [a], [b], [c], [d], [e], [], []
a–CRUUENT SCN WRAP
b–CURRENT SCN BASE
c–DEPENDENT SCN WRAP
d–DEPENDENT SCN BASE
e–where present this is the dba where the dependent scn came from.

SCN组成:
SCN占6字节,由SCN_WRAP和SCN_BASE组成
SCN =(SCN_WRAP << 32)+ SCN_BASE
SCN是一个6字节(6*8=48bit)的数字,其值最大为281,474,976,710,656(2^48),SCN分为2个部分:
SCN_BASE是一个4字节(4 * 8=32bit)的数字
SCN_WRAP是一个2字节(2 * 8=16bit)的数字
每当SCN_BASE达到其最大值(2^32 = 4294967296)时,SCN_WRAP增加1,SCN_BASE将被重置为0,一直持续到SCN_WRAP达到其最大值,即2^16 = 65536

增进SCN有以下常用方法:

方法一:

数据库在mount状态下执行
alter session set events ‘10015 trace name adjust_scn level n’;(不适用11g版本数据库,本次错误发生在11.2.0.1数据库,将level n修改成1万多,scn也增加不了多少)

方法二:

设置隐含参数_minimum_giga_scn=n,提升SCN(不适用11g版本数据库,本次错误发生在11.2.0.1数据库,将n修改成1万多,scn也增加不了多少)

方法三:

oradebug工具,提升SCN
本次出现问题的数据库是11.2.0.1(该方法适用于所有版本),由于异常断电导致数据库不能启动的案例(无归档,无备份),错误日志如上,处理方法:
首先启动数据库至mount状态
oradebug增加scn
SQL> oradebug setmypid
Statement processed.
SQL> oradebug dumpvar sga kcsgscn_
kcslf kcsgscn_ [060019360, 060019390) = 00000000 00000000 00000000 00000000 00089F7B 00000000 00000000 00000000 00000000 00000000 60019040 00000000
注意:Little Endian平台SCN BASE在前,SCN WRAP在后

1、SCN BASE修改为 0x0056C2D2,该值是错误日志中的参数d(5685970)的十六进制
SQL> oradebug poke 0x060019360 4 0x0056C2D2
BEFORE: [060019360, 060019364) = 00000000
AFTER: [060019360, 060019364) = 0056C2D2
SQL> oradebug dumpvar sga kcsgscn_
kcslf kcsgscn_ [060019360, 060019390) = 0056C2D2 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 60019040 00000000
2、SCN WRAP修改为0x00000DD7,该值是错误日志中的参数c(3543)的十六进制
SQL> oradebug poke 0x060019364 4 0x00000DD7
BEFORE: [060019360, 060019364) = 00000000
AFTER: [060019360, 060019364) = 00000DD7
SQL> oradebug dumpvar sga kcsgscn_
kcslf kcsgscn_ [060019360, 060019390) = 0056C2D2 00000DD7 00000000 00000000 00089F7B 00000000 00000000 00000000 00000000 00000000 60019040 00000000
3、SQL>alter database open;
4、重建undo表空间、临时表空间等

另外:通过bbed修改对应的数据文件头也可以增加scn。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值