联系:手机/微信(+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故障解决,软件还处于测试阶段,后续稳定后将对外提供软件形式服务.