通过gdb推进修改oracle scn

19c和12c都支持gdb修改scn。

会话窗口1:

oracle@oracle \~\]$ export ORACLE_SID=jyc \[oracle@oracle \~\]$ sqlplus / as sysdba SQL\*Plus: Release 19.0.0.0.0 - Production on Wed Oct 29 16:13:11 2025 Version 19.18.0.0.0 Copyright (c) 1982, 2022, Oracle. All rights reserved. Connected to an idle instance. SQL\> startup ORACLE instance started. Total System Global Area 6878657656 bytes Fixed Size 9182328 bytes Variable Size 3103784960 bytes Database Buffers 3758096384 bytes Redo Buffers 7593984 bytes Database mounted. Database opened. SQL\> select current_scn from v$database;--当前scn值 CURRENT_SCN ----------- 12011095 SQL\> select to_char(12011095,'xxxxxxxxxxxx') from dual; TO_CHAR(12011 ------------- b74657 SQL\> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB5 MOUNTED 4 PDB2 READ WRITE NO 5 PDB3 MOUNTED 6 PDB1 MOUNTED 8 PDB6 READ WRITE NO SQL\> select to_char(22011095,'xxxxxxxxxxxx') from dual; --最高位增加1位的值 TO_CHAR(22011 ------------- 14fdcd7 SQL\> oradebug setmypid Statement processed. SQL\> oradebug dumpvar sga kcsgscn kscn8 kcsgscn_ \[060017E98, 060017EA0) = 00B77D4C 00000000 ## 新开会话窗口2:通过gdb修改scn Last login: Wed Oct 29 16:12:36 2025 from 192.168.88.46 \[root@oracle \~\]# su - oracle Last login: Wed Oct 29 16:12:40 CST 2025 on pts/0 \[oracle@oracle \~\]$ ps -ef\|grep LOCAL=YES oracle 25297 25157 2 16:13 ? 00:00:02 oraclejyc (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq))) oracle 25998 25972 0 16:14 pts/1 00:00:00 grep --color=auto LOCAL=YES \[oracle@oracle \~\]$ gdb $ORACLE_HOME/bin/oracle 25297 -bash: gdb: command not found \[oracle@oracle \~\]$ exit logout \[root@oracle \~\]# yum install gdb -y Loaded plugins: fastestmirror Determining fastest mirrors ...... Transaction test succeeded Running transaction Installing : gdb-7.6.1-120.el7.x86_64 1/1 Verifying : gdb-7.6.1-120.el7.x86_64 1/1 Installed: gdb.x86_64 0:7.6.1-120.el7 Complete! \[root@oracle \~\]# su - oracle Last login: Wed Oct 29 16:14:37 CST 2025 on pts/1 \[oracle@oracle \~\]$ ps -ef\|grep LOCAL=YES oracle 25297 25157 1 16:13 ? 00:00:02 oraclejyc (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq))) oracle 26142 26117 0 16:15 pts/1 00:00:00 grep --color=auto LOCAL=YES \[oracle@oracle \~\]$ gdb $ORACLE_HOME/bin/oracle 25297 GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-120.el7 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later \ 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: \... Reading symbols from /data/u01/app/oracle/product/19c/dbhome_1/bin/oracle...(no debugging symbols found)...done. Attaching to program: /data/u01/app/oracle/product/19c/dbhome_1/bin/oracle, process 25297 Reading symbols from /data/u01/app/oracle/product/19c/dbhome_1/lib/libodm19.so...(no debugging symbols found)...done. Loaded symbols for /data/u01/app/oracle/product/19c/dbhome_1/lib/libodm19.so Reading symbols from /data/u01/app/oracle/product/19c/dbhome_1/lib/libofs.so...(no debugging symbols found)...done. Loaded symbols for /data/u01/app/oracle/product/19c/dbhome_1/lib/libofs.so Reading symbols from /data/u01/app/oracle/product/19c/dbhome_1/lib/libcell19.so...done. Loaded symbols for /data/u01/app/oracle/product/19c/dbhome_1/lib/libcell19.so Reading symbols from /data/u01/app/oracle/product/19c/dbhome_1/lib/libskgxp19.so...(no debugging symbols found)...done. Loaded symbols for /data/u01/app/oracle/product/19c/dbhome_1/lib/libskgxp19.so Reading symbols from /data/u01/app/oracle/product/19c/dbhome_1/lib/libskjcx19.so...(no debugging symbols found)...done. Loaded symbols for /data/u01/app/oracle/product/19c/dbhome_1/lib/libskjcx19.so Reading symbols from /lib64/librt.so.1...(no debugging symbols found)...done. Loaded symbols for /lib64/librt.so.1 Reading symbols from /data/u01/app/oracle/product/19c/dbhome_1/lib/libclsra19.so...(no debugging symbols found)...done. Loaded symbols for /data/u01/app/oracle/product/19c/dbhome_1/lib/libclsra19.so Reading symbols from /data/u01/app/oracle/product/19c/dbhome_1/lib/libdbcfg19.so...(no debugging symbols found)...done. Loaded symbols for /data/u01/app/oracle/product/19c/dbhome_1/lib/libdbcfg19.so Reading symbols from /data/u01/app/oracle/product/19c/dbhome_1/lib/libhasgen19.so...(no debugging symbols found)...done. Loaded symbols for /data/u01/app/oracle/product/19c/dbhome_1/lib/libhasgen19.so Reading symbols from /data/u01/app/oracle/product/19c/dbhome_1/lib/libskgxn2.so...(no debugging symbols found)...done. Loaded symbols for /data/u01/app/oracle/product/19c/dbhome_1/lib/libskgxn2.so Reading symbols from /data/u01/app/oracle/product/19c/dbhome_1/lib/libocr19.so...done. Loaded symbols for /data/u01/app/oracle/product/19c/dbhome_1/lib/libocr19.so Reading symbols from /data/u01/app/oracle/product/19c/dbhome_1/lib/libocrb19.so...done. Loaded symbols for /data/u01/app/oracle/product/19c/dbhome_1/lib/libocrb19.so Reading symbols from /data/u01/app/oracle/product/19c/dbhome_1/lib/libocrutl19.so...done. Loaded symbols for /data/u01/app/oracle/product/19c/dbhome_1/lib/libocrutl19.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 /data/u01/app/oracle/product/19c/dbhome_1/lib/libons.so...(no debugging symbols found)...done. Loaded symbols for /data/u01/app/oracle/product/19c/dbhome_1/lib/libons.so Reading symbols from /data/u01/app/oracle/product/19c/dbhome_1/lib/libmql1.so...(no debugging symbols found)...done. Loaded symbols for /data/u01/app/oracle/product/19c/dbhome_1/lib/libmql1.so Reading symbols from /data/u01/app/oracle/product/19c/dbhome_1/lib/libipc1.so...(no debugging symbols found)...done. Loaded symbols for /data/u01/app/oracle/product/19c/dbhome_1/lib/libipc1.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/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/libgcc_s.so.1...(no debugging symbols found)...done.

Loaded symbols for /lib64/libgcc_s.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 /data/u01/app/oracle/product/19c/dbhome_1/lib/libnque19.so...(no debugging symbols found)...done.

Loaded symbols for /data/u01/app/oracle/product/19c/dbhome_1/lib/libnque19.so

Reading symbols from /data/u01/app/oracle/product/19c/dbhome_1/lib/libshpkavx19.so...(no debugging symbols found)...done.

Loaded symbols for /data/u01/app/oracle/product/19c/dbhome_1/lib/libshpkavx19.so

0x00007f51a9912740 in __read_nocancel () from /lib64/libpthread.so.0

Missing separate debuginfos, use: debuginfo-install glibc-2.17-326.el7_9.x86_64 libaio-0.3.109-13.el7.x86_64 libgcc-4.8.5-44.el7.x86_64 numactl-libs-2.0.12-5.el7.x86_64

(gdb) set *((int *) 0x060017E98) = 0x14fdcd7

(gdb) quit

A debugging session is active.

Inferior 1 [process 25297] will be detached.

Quit anyway? (y or n) y

Detaching from program: /data/u01/app/oracle/product/19c/dbhome_1/bin/oracle, process 25297

Inferior 1 (process 25297) detached

返回会话窗口1操作:

SQL> select current_scn from v$database;--scn已经变大,后续重启库检查正常

CURRENT_SCN


22011101

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area 6878657656 bytes

Fixed Size 9182328 bytes

Variable Size 3103784960 bytes

Database Buffers 3758096384 bytes

Redo Buffers 7593984 bytes

Database mounted.

Database opened.

SQL> select current_scn from v$database;

CURRENT_SCN


22015933

SQL> show pdbs;

CON_ID CON_NAME OPEN MODE RESTRICTED


2 PDB$SEED READ ONLY NO

3 PDB5 MOUNTED

4 PDB2 READ WRITE NO

5 PDB3 MOUNTED

6 PDB1 MOUNTED

8 PDB6 READ WRITE NO

SQL>

参考:

https://www.modb.pro/db/1983201983378563072

相关推荐
wjhx1 分钟前
QT中对蓝牙权限的申请,整理一下
java·数据库·qt
冰暮流星12 分钟前
javascript之二重循环练习
开发语言·javascript·数据库
万岳科技系统开发37 分钟前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法
冉冰学姐1 小时前
SSM智慧社区管理系统jby69(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·管理系统·智慧社区·ssm 框架
杨超越luckly1 小时前
HTML应用指南:利用GET请求获取中国500强企业名单,揭秘企业增长、分化与转型的新常态
前端·数据库·html·可视化·中国500强
Elastic 中国社区官方博客1 小时前
Elasticsearch:Workflows 介绍 - 9.3
大数据·数据库·人工智能·elasticsearch·ai·全文检索
仍然.1 小时前
MYSQL--- 聚合查询,分组查询和联合查询
数据库
一 乐1 小时前
校园二手交易|基于springboot + vue校园二手交易系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
啦啦啦_99991 小时前
Redis-0-业务逻辑
数据库·redis·缓存
自不量力的A同学2 小时前
Redisson 4.2.0 发布,官方推荐的 Redis 客户端
数据库·redis·缓存