史上最全,呕心沥血总结oracle推进SCN方法(七)

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG数据库运维(如安装迁移,性能优化、故障应急处理等)
公众号:老苏畅谈运维
欢迎关注本人公众号,更多精彩与您分享。

前面介绍了6种推进SCN方法
(1)event 10015 来增加 scn 的值
(2)隐含参数_minimum_giga_scn 来增加 scn 的值
(3)gdb/dbx 来直接修改内存中的值
(4)使用oradebug poke 直接修改内存中的值
(5)通过修改控制文件来修改 scn 的值
(6)通过修改数据文件头来修改 scn 的值
现在来说一下oracle推进SCN方法7:通过adjust_scn方式来增加SCN

当数据库在open状态时,可通过adjust_scn方式来增加SCN,语法如下:
alter session set events ‘IMMEDIATE trace name ADJUST_SCN level x’;
注:level 1为增进SCN 10亿 (1 billion) (102410241024=1073741824)

一般情况下,open resetlogs后容易出现错误ora-600 [2662], ora-600 [2256],通过 alter session set event ‘<事件名称><动作><跟踪项目><范围限定>’ 10015事件adjust scn号即可

如下报错:
ORA-00600: internal error code, arguments: [2256], [0], [3221225472], [5], [3880116460], [], [], []

level计算方法:

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. (就是Arg [d] 的值是从哪个block中找到的,通常是一个data block address)
d< 1024*1024*1024=1073741824 时,需要的LEVEL为:c*4+1
d< 1024*1024*1024*2= 2147483648 时,需要的LEVEL为:c*4+2
d< 1024*1024*1024*3= 3221225472 时,需要的LEVEL为:c*4+3
以此类推

根据上面的计算方法可计算出来的所需的level为(5+1)*4 =24,即level 24

sqlplus “/ as sysdba”
alter session set event ‘10015 trace name adjust_scn level 24’;

然后可以通过select file#,CHECKPOINT_CHANGE# from v$datafile; 看到scn号就是 25769803776

链接:
史上最全,呕心沥血总结oracle推进SCN方法(一)
史上最全,呕心沥血总结oracle推进SCN方法(二)
史上最全,呕心沥血总结oracle推进SCN方法(三)
史上最全,呕心沥血总结oracle推进SCN方法(四)
史上最全,呕心沥血总结oracle推进SCN方法(五)
史上最全,呕心沥血总结oracle推进SCN方法(六)

请添加图片描述

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老苏畅谈运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值