转摘_如何计算adjust scn_from paulyibinyi

举个例子:

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
因此在这个例子中我们应该执行

  1. alter session set   events IMMEDIATE trace name ADJUST_SCN level 34625;

 

ORA-00600: internal error code, arguments: [2662], [0], [547743994], [0], [898092653], [8388617], [], []

这个报错参数的含义在metalink中如此描述的:
Arg [a] Current SCN WRAP
Arg [b] Current SCN BASE
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中找到的,通常是一个datablock 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

自己记录下,供以后遇到同样问题时使用。

请使用浏览器的分享功能分享到微信等