7 x 24 在线支持!
Oracle コントロールファイルをすることでSCNを変更する
ORACLEデータベース によくあるエラ の解決策
プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:[email protected]
このテストは前回のoradebug修正の後でSCNを修正する。ここで使っているのはコントロールファイルSCNと関連するフラグを修正するという方法である:
SQL> startup mount
ORACLE instance started.
Total System Global Area 626327552 bytes
Fixed Size 2255832 bytes
Variable Size 184550440 bytes
Database Buffers 432013312 bytes
Redo Buffers 7507968 bytes
Database mounted.
SQL> select checkpoint_change#,to_char(checkpoint_change#,'XXXXXXXXXXXXXXXXX') from v$database;
CHECKPOINT_CHANGE# TO_CHAR(CHECKPOINT
------------------ ------------------
2726293 299995
このテストにSCNを百万増やす。つまり、SCNを 2726293から 3726293に変更する。
SQL> select '3726293',to_char(3726293,'XXXXXXXXXXXXXXXXX') from v$database; '372629 TO_CHAR(3726293,'X ------- ------------------ 3726293 38DBD5 SQL>
今のコントロールファイルの位置を確認する:
SQL> show parameter control
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
control_files string +DATA/lunars/control01.ctl, +D
ATA/lunars/control02.ctl
control_management_pack_access string DIAGNOSTIC+TUNING
SQL>
コントロールファイルをローカルに取り戻して修正する。プロセスは以下の通り:
まずはデータベースSCNを探し出す:
________________________________________
SCNと関連するフラグを修正する:
データベースshutdownして、修正できたコントロールファイルをASMにコピして、このコントロールファイルでデータベースを起動する:
ASMCMD> ls CONTROLFILE/ DATAFILE/ ONLINELOG/ TEMPFILE/ control01.ctl control02.ctl lunar01.dbf redo01.log redo02.log redo03.log soe01.dbf sysaux01.dbf system01.dbf temp01.dbf undotbs01.dbf users01.dbf ASMCMD> rm control01.ctl ASMCMD> rm control02.ctl ASMCMD> cp /tmp/control01.dbf +DATA/lunars/control01.ctl copying /tmp/control01.dbf -> +DATA/lunars/control01.ctl ASMCMD> cp /tmp/control01.dbf +DATA/lunars/control02.ctl copying /tmp/control01.dbf -> +DATA/lunars/control02.ctl ASMCMD>
データベースをMountして、データベースSCNを確認する:
SQL> startup mount
ORACLE instance started.
Total System Global Area 626327552 bytes
Fixed Size 2255832 bytes
Variable Size 184550440 bytes
Database Buffers 432013312 bytes
Redo Buffers 7507968 bytes
Database mounted.
SQL> select checkpoint_change#,to_char(checkpoint_change#,'XXXXXXXXXXXXXXXXX') from v$database;
CHECKPOINT_CHANGE# TO_CHAR(CHECKPOINT
------------------ ------------------
3726293 38DBD5
SQL> alter database open;
Database altered.
SQL> select checkpoint_change#,to_char(checkpoint_change#,'XXXXXXXXXXXXXXXXX') from v$database;
CHECKPOINT_CHANGE# TO_CHAR(CHECKPOINT
------------------ ------------------
3726296 38DBD8
SQL>
SQL>



沪公网安备 31010802001377号