如何更改數據庫的SCN?
2024-07-21 02:38:10
供稿:網友
很多時候,我們需要調整數據庫系統的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 2005Copyright (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 - ProductionSQL> col a for 999999999999999
SQL> select CHECKPOINT_CHANGE# a from v$datafile; A
---------------
107374358304
107374358304
107374358304SQL> 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) = 000008192.確認更改SQL> select dbms_Flashback.get_system_change_number a from dual; A
----------------
8903467399681SQL> 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
89034673998673.此時無法正常關閉數據庫Oracle會檢測到異常:SQL> shutdown immediate;
ORA-00600: internal error code, arguments: [kfhsls_02], [20], [1], [], [], [], [], [] 4.shutdown abort強制關閉數據庫重新啟動會出現錯誤SQL> shutdown abort;
ORACLE instance shut down.
SQL> startup
ORACLE instance started.Total System Global Area 114365800 bytes
Fixed Size 451944 bytes
Variable Size 50331648 bytes
Database Buffers 62914560 bytes
Redo Buffers 667648 bytes
Database mounted.
ORA-00600: internal error code, arguments: [3756], [1], [25], [195904], [2073], [195259], [], []
5.通過不完全恢復啟動數據庫SQL> recover database using backup controlfile until cancel;
ORA-00279: change 8903467399867 generated at 12/21/2005 10:57:34 needed for thread 1
ORA-00289: suggestion : /opt/oracle/oradata/conner/archive/1_18.dbf
ORA-00280: change 8903467399867 for thread 1 is in sequence #18
Specify log: {<RET>=suggested filename AUTO CANCEL}
cancel
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/opt/oracle/oradata/conner/system01.dbf'
ORA-01112: media recovery not started
SQL> alter database open resetlogs;Database altered.此時數據庫可以正常打開