資料庫當前scn
| 代碼如下 |
複製代碼 |
idle> select checkpoint_change# from v$database; CHECKPOINT_CHANGE# ------------------ 271743118 idle> shutdown abort |
ORACLE 常式已經關閉。
分析控制檔案中scn
這裡我們可以看到加粗部分為資料庫scn
| 代碼如下 |
複製代碼 |
SQL>select to_number('10327a59','xxxxxxxxx') from dual; TO_NUMBER('10327A59','XXXXXXXXX') --------------------------------- 271743577 |
這裡的scn值和在資料庫中查詢的值有小差別,因為查詢時間點和我完全關閉資料庫有個時間差,而這個時間差有scn變化.細紅框部分為控制檔案對塊的驗證資訊
修改控制檔案scn和驗證資訊
驗證資訊修改為全部0,scn資訊你可以根據你的需求去修改,這裡把資料庫的scn修改為57253932971026,按照資料庫的原理,啟動後的scn應該稍微大於該scn值.
| 代碼如下 |
複製代碼 |
SQL>select to_number('341278563412','xxxxxxxxxxxxxxxxx') from dual; TO_NUMBER('341278563412','XXXXXXXXXXXXXXXXX') --------------------------------------------- 57253932971026 |
啟動資料庫
idle> startup mount
ORACLE 常式已經啟動。
| 代碼如下 |
複製代碼 |
Total System Global Area 400846848 bytes Fixed Size 2440024 bytes Variable Size 289408168 bytes Database Buffers 100663296 bytes Redo Buffers 8335360 bytes
|
資料庫裝載完畢。
| 代碼如下 |
複製代碼 |
idle> recover database; 完成介質恢複。 idle> alter database open; 資料庫已更改。 idle> select checkpoint_change# from v$database; CHECKPOINT_CHANGE# ------------------ 57253932991028 |
資料庫啟動後查詢scn為57253932991028(資料庫當前scn)果然微大於57253932971026(修改控制檔案scn),證明我們通過修改控制檔案scn,實現資料庫scn推近完全OK.不實驗風險較大,請勿在生產環境上測試,負載後果自負