Oracle出现ORA-00600 [2662] 后, 如何计算 adjust SCN level
Oracle出现ORA-00600 [2662] 后, 如何计算 adjust SCN level
举个例子:
ORA-00600: internal error code, arguments: [2662], [0], [2179133], [8656], [70114056], [33855201], [], []
Arg [c] *4 = 8656 * 4 = 34624
Arg [d] = 70114056 < 1073741824
所以level = 34624 + 1 = 34625
因此在这个例子中我们应该执行
[list=1]
[*][color=green]alter [color=green]session [color=green]set events [color=#8b00]‘IMMEDIATE trace name ADJUST_SCN level 34625[color=#8b00]‘[color=gray];
[color=gray]ORA-00600: internal error code, arguments: [2662], [0], [547743994], [0], [898092653], [8388617], [], []这个报错参数的含义在metalink中如此描述的:
Arg [a] Current SCN WRAP
Arg Current SCN BASEITPUB个人空间JjMt'R4A;q%o
Arg [c] dependent SCN WRAP
为了存储更大的SCN值,当SCN BASE到足够大并开始重置的时候,SCN WRAP将加1。
Arg [d] dependent SCN BASE
Arg [e] Where present this is the DBA where the dependent SCN came from.
也就是Arg [d] 的值是从哪个block中找到的,通常是一个..:;][color=#5b5b5b]data block address。
通过这几个参数根据一定的规则可以计算出我们需要的level。计算规则如下:
1.Arg [c] *4得出一个数值,假设为V_Wrap
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
自己记录下,供以后遇到同样问题时使用。