【IT168 服务器学院】很多时候,我们需要调整数据库系统的SCN值,有的是为了恢复的需要,如为了解决ORA-600 2662错误.
而以下修改纯属无聊:
1.通过oradebug修改SCN
[oracle@jumper oracle]$ sqlplus "/ as sysdba" SQL*Plus: Release 9.2.0.4.0 - Production on Wed Dec 21 10:33:35 2005 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to: Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production With the Partitioning option JServer Release 9.2.0.4.0 - Production
SQL> col a for 999999999999999 SQL> select CHECKPOINT_CHANGE# a from v$datafile; A --------------- 107374358304 107374358304 107374358304 SQL> oradebug setmypid Statement processed. SQL> oradebug DUMPvar SGA kcsgscn_ kcslf kcsgscn_ [5000BC68, 5000BC88) = 00000019 0002F97F 00004979 00000000 00000000 00000000 00000000 5000B948 SQL> oradebug poke 0x5000BC69 4 8 BEFORE: [5000BC68, 5000BC70) = 00000019 AFTER: [5000BC68, 5000BC70) = 00000819 |
2.确认更改
SQL> select dbms_flashback.get_system_change_number a from dual; A ---------------- 8903467399681 SQL> oradebug DUMPvar SGA kcsgscn_ kcslf kcsgscn_ [5000BC68, 5000BC88) = 00000819 0002FA0C 00004A75 00000000 00000000 00000000 00000000 5000B948 SQL> SQL> alter system checkpoint; System altered. SQL> select CHECKPOINT_CHANGE# a from v$datafile; A ---------------- 8903467399867 8903467399867 8903467399867 |
3.此时无法正常关闭数据库
Oracle会检测到异常:
SQL> shutdown immediate; ORA-00600: internal error code, arguments: [kfhsls_02], [20], [1], [], [], [], [], [] |