环境:RHEL 6.5(x86-64) + Oracle 11.2.0.4
声明:推进SCN属于非常规恢复范畴,不建议非专业人员操作,否则后果自负。
需求:我这里演示下推进SCN 10W数量级,实际需求推进多少可以根据ORA-600 [2662] [a] [b] [c] [d] [e]具体值来确认。

ARGUMENTS:
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.

更多详情可参考: ORA-600 [2662] "Block SCN is ahead of Current SCN" (文档 ID 28929.1)

  • 1.查看当前数据库的Current SCN
  • 2.重新启动数据库到mount阶段
  • 3.使用oradebug poke推进SCN
  • 4.补充实际计算推进SCN的方法

1.查看当前数据库的Current SCN

SYS@orcl> select current_scn||'' from v$database;CURRENT_SCN||''
--------------------------------------------------------------------------------
4563483988

可以看到当前SCN是4563483988,我现在想推进SCN,在10w级别,也就是4563483988标红数字修改为指定值。

2.重新启动数据库到mount阶段

重新启动数据库到mount阶段:

SYS@orcl> shutdown abort
ORACLE instance shut down.
SYS@orcl> startup mount
ORACLE instance started.Total System Global Area 1235959808 bytes
Fixed Size                  2252784 bytes
Variable Size             788529168 bytes
Database Buffers          436207616 bytes
Redo Buffers                8970240 bytes
Database mounted.

3.使用oradebug poke推进SCN

我这里直接把十万位的"4"改为"9"了,相当于推进了50w左右:
说明:实验发现oradebug poke 推进的SCN值,既可以指定十六进制的0x11008DE74,也可以直接指定十进制的4563983988。

SYS@orcl> oradebug setmypid
Statement processed.
SYS@orcl> oradebug dumpvar sga kcsgscn_
kcslf kcsgscn_ [06001AE70, 06001AEA0) = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 6001AB50 00000000
SYS@orcl> select to_char(checkpoint_change#, 'XXXXXXXXXXXXXXXX') from v$database;

TO_CHAR(CHECKPOINT_CHANGE#,'XXXXXX
----------------------------------110013C41

SYS@orcl> oradebug poke 0x06001AE70 8 4563983988
BEFORE: [06001AE70, 06001AE78) = 00000000 00000000
AFTER:  [06001AE70, 06001AE78) = 1008DE74 00000001

SYS@orcl> oradebug dumpvar sga kcsgscn_
kcslf kcsgscn_ [06001AE70, 06001AEA0) = 1008DE74 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 6001AB50 00000000

SYS@orcl> alter database open;Database altered.

SYS@orcl> select current_scn||'' from v$database;CURRENT_SCN||''
--------------------------------------------------------------------------------
4563984271

可以看到已经成功将SCN推进到4563983988,SCN不断增长,所以这里查到的值略大一些。

4.补充实际计算推进SCN的方法

本文在 2018-12-16 进一步补充说明:
在实际这类工作中,我们实际应该是要认真计算好需要推进SCN的值,而不应图省事直接给一个很大的值。后者不但是技术水平不成熟的表现,而且是不负责任的行为。

--ORA-00600: internal error code, arguments: [2662], [2], [1424107441], [2], [1424142235], [8388617], [], []
select 2*power(2,32)+1424142235 from dual;
10014076827--ORA-00600: internal error code, arguments: [2662], [2], [1424142249], [2], [1424142302], [8388649], [], []
select 2*power(2,32)+1424143000 from dual;
10014077592

总结公式:c * power(2,32) + d {+ 可适当加一点,但不要太大!}
c代表:Arg [c] dependent SCN WRAP
d代表:Arg [d] dependent SCN BASE

oradebug setmypid
oradebug dumpvar sga kcsgscn_
oradebug poke 0x060012658 8 10014077592
oradebug dumpvar sga kcsgscn_
alter database open;

最后要说的是,做事情还是多考虑些,在非常规恢复中也能温柔的去推进SCN,高级DBA的价值从细节上体现。

参考:https://blog.csdn.net/u013820054/article/details/39899111

Oracle推进SCN系列:使用oradebug在mount状态下推进SCN相关推荐

  1. Oracle Golden Gate 系列十四 -- 监控 GG 状态 说明

    一.使用命令查看 主要有如下命令: 这里注意STATS 指静态的信息,而STATUS 是运行时的信息. 1.1 Monitoring an Extract recovery If Extractabe ...

  2. Linux 硬盘mount状态下热插拔盘符发生变更

    Linux 下当硬盘mount到一个文件夹下后对硬盘进行热插拔操作,盘符会发生变更 比如 mount /dev/nvme0n1 /mnt/ 然后对盘进行热插拔操作 当 硬盘重启完成后盘符会变成nvme ...

  3. 手动修改oracle scn号,使用Oradebug修改Oracle SCN

    Oracle SCN对于数据库运行.维护而言是至关重要的因素.在启动从mount到open过程中,主要是各种文件的SCN进行比较的行为.通常情况下,我们是不需要介入到Oracle SCN的取值和设置, ...

  4. Oracle Golden Gate 系列 小结

    花了大半个月的时间小研究了一下Oracle Golden Gate. 先简单的说说自己学习GG的一个过程. 参考资料都是官方文档,官网的链接如下: http://download.oracle.com ...

  5. Oracle Golden Gate 系列十五 -- GG Trails 说明

    一.Trails 说明 理论知识在系列一里有说明,这里在拿出来看一下: Oracle Golden Gate 系列一 -- GG 架构 说明 http://blog.csdn.net/tianleso ...

  6. 修改oracle的表空间文件scn,分享:bbed修改数据文件头推进scn与其他数据文件相同...

    场景简介: 物理copy表空间数据文件,数据库发生完全检查点,删除该表空间下的数据文件,使该表空间数据文件头的scn与其他数据文件不一致. 场景构造: 1.创建测试表空间 SYS@orser> ...

  7. Oracle Golden Gate 系列十二 -- GG 数据初始化装载二 基于SCN 的初始化 说明 与 示例...

    一.初始化说明 GG实施过程中,初始化是一个重要的工作,尤其是要初始化的数据较多,并且系统又是7*24的时. 对于静态初始化,把业务停掉,DB 上的数据就不会有变化,这时候,我们可以用expdp/im ...

  8. 【OCP|OCM】Oracle培训考证系列

    [OCP|OCM]Oracle培训考证系列  我的个人信息 网名:小麦苗 QQ:646634621 QQ群:618766405 我的博客:http://blog.itpub.net/26736162/ ...

  9. Oracle Golden Gate 系列十七 -- GG 一对多 real-time data distribution 说明 与 示例

    一.官网说明 A datadistribution configuration is a one-to-many configuration. Oracle GoldenGatesupports sy ...

最新文章

  1. 2(3).选择排序_快排(线性表)
  2. 生成树(光棍 牛客, 思维)
  3. python中集合set,字典dict和列表list的区别以及用法
  4. 关于vue的语法规则检测报错问题
  5. macos sierra怎么升级到catalina_Mac os 下 Pyhon 库老是安装失败?
  6. FastReport问题整理
  7. 【CF551D】GukiZ and Binary Operations
  8. centos 7安装搭建confluence-wiki
  9. Skyline软件二次开发初级——7如何在WEB页面中的三维地图上设置颜色
  10. 全国所有火车站站点信息
  11. 支付网关 | 京东618、双11用户支付的核心承载系统上篇
  12. 综合分析:市面上的nmn哪个牌子比较好?美国产nmn哪个牌子好?
  13. 小朋友适合读增广贤文么,增广贤文适合多大的孩子看?
  14. c语言专业认知实践报告怎么写,c语言实践报告心得范文
  15. ffmpeg命令下载MP4视频)
  16. 『深度应用』NLP机器翻译深度学习实战课程·零(基础概念)
  17. 提升项目经理的有效路径之一:学习PMP项目管理
  18. 【代码笔记】持续更新:知识图谱——gensim.corpora
  19. android动态获取地理位置权限,Android6.0获取GPS定位和获取位置权限和位置信息的方法...
  20. 解决新建springboot项目时包导不进来的问题sun.security.provider.certpath.SunCertPathBuilderException: unable to f,已解决

热门文章

  1. 油田钻头行业调研报告 - 市场现状分析与发展前景预测
  2. OpenCV-安装教程
  3. mac(Linux)安装配置kafka环境
  4. 2023爱分析・云原生 IDE 市场厂商评估报告-行云创新(CloudToGo)
  5. vue声明式导航和编程式导航
  6. UI自动化中的分层设计
  7. docker启动zookeeper服务器
  8. 【go.js 常用api管理】
  9. 请求方法+super+枚举+包装类+正则表达式+学习资料
  10. oracle字段名自己翻译是吗,英语翻译Oracle还可以翻译成什么名称..除了甲骨文