相关文章推荐
犯傻的单车  ·  C++ socket进行本地通信代码示例 ...·  8 月前    · 
怕老婆的针织衫  ·  python之 Nested ...·  1 年前    · 
威武的苦咖啡  ·  使用 WER - Win32 apps | ...·  1 年前    · 
高大的香蕉  ·  使用sed如何做到向指定行尾插入字符·  1 年前    · 
一直单身的鸵鸟  ·  Linux kill命令 | 菜鸟教程·  2 年前    · 
Code  ›  Oracle 12c SCN推进方法汇总(一)之GDB - 墨天轮
oracle gdb 方法汇总 scn
https://www.modb.pro/db/44582
果断的毛豆
1 年前
  • 学习
    • 课程中心
      推荐优质内容、热门课程
    • 学习路径
      预设学习计划、达成学习目标
    • 知识图谱
      综合了解技术体系知识点
    • 课程库
      快速筛选、搜索相关课程
    • 视频学习
      专业视频分享技术知识
    • 电子文档
      快速搜索阅览技术文档
  • 文档
  • 工具
    • SQLRUN
      在线数据库即时SQL运行平台
    • 数据库在线实训平台
      实操环境、开箱即用、一键连接
    • Oracle巡检
      简单两步,查看报告分析
    • AWR分析
      上传AWR报告,查看分析结果
    • SQL格式化
      快速格式化绝大多数SQL语句
    • SQL审核
      审核编写规范,提升执行效率
    • PLSQL解密
      解密超4000字符的PL/SQL语句
    • OraC函数
      查询Oracle C 函数的详细描述
    • Bethune X
      数据库智能监控巡检平台,90天试用
  • 暂无图片
    • 数据库
    • 云计算
    • 数据产品
    • 中间件
    • 操作系统
    • 芯片
  • 我的订单
  • 登录后可立即获得以下权益
    免费培训课程
    收藏优质文章
    疑难问题解答
    下载专业文档
    签到免费抽奖
    提升成长等级
    立即登录
    登录 注册
      • 登录 注册
    • 首页
    • 资讯
    • 数说
    • 活动
    • 大会
    • 课程
    • 文档
    • 排行
    • 问答
    • 云市场
    • 我的订单
    暂无图片
    2
    觉得内容不错?
    一键收藏 方便随时查看
    暂无图片
    暂无图片
    微信扫码
    复制链接
    新浪微博
    暂无图片
    采集到收藏夹
    首页 / Oracle 12c SCN推进方法汇总(一)之GDB

    Oracle 12c SCN推进方法汇总(一)之GDB

    肖杰 2021-02-01
    2409

    在数据库异常恢复中,经常需要修改数据库的 SCN 值,在 12C 之前,我们常用的方法有如下几个:

    1. oradebug poke 直接修改内存中的值;
    2. event 10015 来增加 scn 的值;
    3. _minimum_giga_scn 来增加 scn 的值;
    4. gdb/dbx 来直接修改内存中的值;
    5. 修改控制文件来修改 scn 的值;
    6. 修改数据文件头来修改 scn 的值;
    7. adjust_scn 来增加scn。
    

    在这几种方法中,2、3、7方法在2012年中,Oracle 已经通过补丁更新,导致方法失效,就只有1,4,5,6方法。在这几种方法中,我们常常使用方法1来修改 scn 的值,但是此方法在 12C 中,Oracle 也已经屏蔽,还可以继续使用4,5,6 的方法来实现修改 SCN。在12.2 中,Oracle 多了一个新的 EVENT 21307096 也可以实现增加 SCN 的值。
    接下来将介绍4,5,6以及event各种方式推进数据库SCN。

    查看当前SCN:

    SQL> alter system checkpoint;         
    System altered.
    SQL> select current_scn from v$database;
    CURRENT_SCN
    -----------
        3102150
    SQL> oradebug setmypid
    Statement processed.
    SQL> oradebug dumpvar sga kcsgscn_
    kcslf kcsgscn_ [0600113B8, 0600113E8) = 002F561D 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 60049740 00000000
    

    查看进程号

    [oracle@devin1 ~]$ ps -ef | grep -i local=yes
    oracle  4223  4133  0 09:33 ?        00:00:00 oraclehkora (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
    oracle  5124  5094  0 09:42 pts/2    00:00:00 grep --color=auto -i local=yes
    

    GDB推进SCN

    [oracle@devin1 ~]$ gdb $ORACLE_HOME/bin/oracle 4223
    GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-120.el7
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
    and "show warranty" for details.
    This GDB was configured as "x86_64-redhat-linux-gnu".
    For bug reporting instructions, please see:
    <http://www.gnu.org/software/gdb/bugs/>...
    Reading symbols from /u01/app/oracle/product/12.2/dbhome_1/bin/oracle...(no debugging symbols found)...done.
    Attaching to program: /u01/app/oracle/product/12.2/dbhome_1/bin/oracle, process 4223
    Reading symbols from /u01/app/oracle/product/12.2/dbhome_1/lib/libodm12.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/12.2/dbhome_1/lib/libodm12.so
    Reading symbols from /u01/app/oracle/product/12.2/dbhome_1/lib/libofs.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/12.2/dbhome_1/lib/libofs.so
    Reading symbols from /u01/app/oracle/product/12.2/dbhome_1/lib/libcell12.so...done.
    Loaded symbols for /u01/app/oracle/product/12.2/dbhome_1/lib/libcell12.so
    Reading symbols from /u01/app/oracle/product/12.2/dbhome_1/lib/libskgxp12.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/12.2/dbhome_1/lib/libskgxp12.so
    Reading symbols from /u01/app/oracle/product/12.2/dbhome_1/lib/libskjcx12.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/12.2/dbhome_1/lib/libskjcx12.so
    Reading symbols from /lib64/librt.so.1...(no debugging symbols found)...done.
    Loaded symbols for /lib64/librt.so.1
    Reading symbols from /u01/app/oracle/product/12.2/dbhome_1/lib/libmql1.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/12.2/dbhome_1/lib/libmql1.so
    Reading symbols from /u01/app/oracle/product/12.2/dbhome_1/lib/libipc1.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/12.2/dbhome_1/lib/libipc1.so
    Reading symbols from /u01/app/oracle/product/12.2/dbhome_1/lib/libclsra12.so...done.
    Loaded symbols for /u01/app/oracle/product/12.2/dbhome_1/lib/libclsra12.so
    Reading symbols from /u01/app/oracle/product/12.2/dbhome_1/lib/libdbcfg12.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/12.2/dbhome_1/lib/libdbcfg12.so
    Reading symbols from /u01/app/oracle/product/12.2/dbhome_1/lib/libhasgen12.so...done.
    Loaded symbols for /u01/app/oracle/product/12.2/dbhome_1/lib/libhasgen12.so
    Reading symbols from /u01/app/oracle/product/12.2/dbhome_1/lib/libskgxn2.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/12.2/dbhome_1/lib/libskgxn2.so
    Reading symbols from /u01/app/oracle/product/12.2/dbhome_1/lib/libocr12.so...done.
    Loaded symbols for /u01/app/oracle/product/12.2/dbhome_1/lib/libocr12.so
    Reading symbols from /u01/app/oracle/product/12.2/dbhome_1/lib/libocrb12.so...done.
    Loaded symbols for /u01/app/oracle/product/12.2/dbhome_1/lib/libocrb12.so
    Reading symbols from /u01/app/oracle/product/12.2/dbhome_1/lib/libocrutl12.so...done.
    Loaded symbols for /u01/app/oracle/product/12.2/dbhome_1/lib/libocrutl12.so
    Reading symbols from /lib64/libaio.so.1...Reading symbols from /lib64/libaio.so.1...(no debugging symbols found)...done.
    (no debugging symbols found)...done.
    Loaded symbols for /lib64/libaio.so.1
    Reading symbols from /u01/app/oracle/product/12.2/dbhome_1/lib/libons.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/12.2/dbhome_1/lib/libons.so
    Reading symbols from /lib64/libdl.so.2...(no debugging symbols found)...done.
    Loaded symbols for /lib64/libdl.so.2
    Reading symbols from /lib64/libm.so.6...(no debugging symbols found)...done.
    Loaded symbols for /lib64/libm.so.6
    Reading symbols from /lib64/libpthread.so.0...(no debugging symbols found)...done.
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/lib64/libthread_db.so.1".
    Loaded symbols for /lib64/libpthread.so.0
    Reading symbols from /lib64/libnsl.so.1...(no debugging symbols found)...done.
    Loaded symbols for /lib64/libnsl.so.1
    Reading symbols from /lib64/libresolv.so.2...(no debugging symbols found)...done.
    Loaded symbols for /lib64/libresolv.so.2
    Reading symbols from /lib64/libc.so.6...(no debugging symbols found)...done.
    Loaded symbols for /lib64/libc.so.6
    Reading symbols from /lib64/libgcc_s.so.1...(no debugging symbols found)...done.
    Loaded symbols for /lib64/libgcc_s.so.1
    Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done.
    Loaded symbols for /lib64/ld-linux-x86-64.so.2
    Reading symbols from /usr/lib64/libnuma.so.1...Reading symbols from /usr/lib64/libnuma.so.1...(no debugging symbols found)...done.
    (no debugging symbols found)...done.
    Loaded symbols for /usr/lib64/libnuma.so.1
    Reading symbols from /lib64/libnss_files.so.2...(no debugging symbols found)...done.
    Loaded symbols for /lib64/libnss_files.so.2
    Reading symbols from /u01/app/oracle/product/12.2/dbhome_1/lib/libnque12.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/12.2/dbhome_1/lib/libnque12.so
    Reading symbols from /u01/app/oracle/product/12.2/dbhome_1/lib/libshpkavx212.so...(no debugging symbols found)...done.
    Loaded symbols for /u01/app/oracle/product/12.2/dbhome_1/lib/libshpkavx212.so
    0x00007f9bbcff3740 in __read_nocancel () from /lib64/libpthread.so.0
    Missing separate debuginfos, use: debuginfo-install glibc-2.17-317.0.1.el7.x86_64 libaio-0.3.109-13.el7.x86_64 libgcc-4.8.5-36.0.1.el7.x86_64 numactl-libs-2.0.9-7.el7.x86_64
    (gdb) set *((int *) 0x0600113B8) = 0x102F561D    --scn base    
    (gdb) set *((int *) 0x0600113BC) = 0x0001        --scn wrp
    (gdb) quit
    A debugging session is active.
            Inferior 1 [process 4223] will be detached.
    Quit anyway? (y or n) y
    Detaching from program: /u01/app/oracle/product/12.2/dbhome_1/bin/oracle, process 4223
    [Inferior 1 (process 4223) detached]
    
    SQL> select current_scn from v$database;
    CURRENT_SCN
    -----------
     4566505132
    SQL> select to_char(4566505132,'xxxxxxxxxxxxx') from dual;
    TO_CHAR(456650
    
     
    推荐文章
    犯傻的单车  ·  C++ socket进行本地通信代码示例 - CSDN文库
    8 月前
    怕老婆的针织衫  ·  python之 Nested Function_nested函数-CSDN博客
    1 年前
    威武的苦咖啡  ·  使用 WER - Win32 apps | Microsoft Learn
    1 年前
    高大的香蕉  ·  使用sed如何做到向指定行尾插入字符
    1 年前
    一直单身的鸵鸟  ·  Linux kill命令 | 菜鸟教程
    2 年前
    今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
    删除内容请联系邮箱 2879853325@qq.com
    Code - 代码工具平台
    © 2024 ~ 沪ICP备11025650号