联系:手机/微信(+86 17813235971) QQ(107644445)
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
前几年开发了图形化的win平台的patch scn工具:一键修改Oracle SCN工具升级(patch scn)

最近基于linux平台开发了命令行方式的Patch scn工具,大概使用如下:
1. 数据库必须处于mount状态才能修改scn
[oracle@iZbp11c0qyuuo1gr7j98upZ tmp]$ ./Patch_SCN 328 247884300 ERROR:Oracle Database must be in Mount state in order to modify SCN
2. Patch_SCN参数提示
[oracle@iZbp11c0qyuuo1gr7j98upZ tmp]$ ./Patch_SCN Use Parameters: PID SCN(10) [ADDR(16,don't 0x)]
3.修改SCN 具体操作
1)启动数据库到mount状态
SQL> startup mount;
ORACLE instance started.
Total System Global Area 551165952 bytes
Fixed Size 2255112 bytes
Variable Size 369100536 bytes
Database Buffers 171966464 bytes
Redo Buffers 7843840 bytes
Database mounted.
2)查询数据库当前scn
SQL> select CHECKPOINT_CHANGE# from v$database;
CHECKPOINT_CHANGE#
------------------
2478843
3)新会话中修改数据库scn
[oracle@iZbp11c0qyuuo1gr7j98upZ tmp]$ ./Patch_SCN 328 247884300
Please press ENTER to continue...
Modify the Oracle SCN value to:EC66A0C:247884300
4)启动数据库并查询scn
SQL> ALTER DATABASE OPEN;
Database altered.
SQL> select CHECKPOINT_CHANGE# from v$database;
CHECKPOINT_CHANGE#
------------------
247884301 (比修改scn稍微大由于数据库已经启动会自动增加scn值)
这个小工具直接通过内存地址修改scn,绕过Oracle在一些版本中的oradebug的限制:oradebug poke ORA-32521/ORA-32519故障解决,软件还处于测试阶段,后续稳定后将对外提供软件形式服务.
