請教下,描述如下:
1、歸檔模式下,控制檔案自動備份打開,備份整個資料庫和控制檔案。
2、然后redolog和archivelog完整,模擬controlfile和datafile丟失,恢復資料庫。
3、恢復程序是:先恢復controlfile,再恢復整個datafile,
shutdown immediate;
startup mount;
recover controlfile from autobackup;
restore database;
recover database;
alter database open resetlogs;
問題:
有完整的archivelog和redolog,不是可以完全恢復嗎,但為什么最后打開資料庫時還是需要resetlogs呢?
uj5u.com熱心網友回復:
補充下:我在資料中查到,只要涉及恢復controlfile,打開資料庫時都需要使用resetlogs。
但是resetlogs會重新構建redologs,重新初使化controlfile中的redolog資訊。
那就意味著,資料庫之前保留下來的完整redolog 沒有意義了嗎?
uj5u.com熱心網友回復:
重點是:你恢復了controlfile,如果你不恢復這個控制檔案,就用當前在線的這個controlfile,這個是會記錄實時的redo資訊的,所以就不用resetlogs,但你用了舊的控制檔案,就必須resetlogs,因為那個控制檔案沒有現在最新的REDO資訊,這樣解釋理解了嗎?uj5u.com熱心網友回復:
resetlogs的三種情況不完全恢復的resetlogs,此時是為了將日志中恢復到時間點之后的事務進行清空,或者理解為重置SCN。
利用trace檔案創建的控制檔案并且日志檔案不存在或者損壞時使用resetlogs ,此時是為了重新生成日志。
利用備份的控制檔案恢復,此時是為了將日志序列重置,因為日志的序列號記錄在控制檔案中(此時的日志序列號為10,控制檔案中記錄的序列號為5,此時是不同步的情況,需要使用resetlogs進行重置日志序列)。
uj5u.com熱心網友回復:
關鍵是你是否重新創建了redo日志,否則,你可以試試noresetlogs。另外,你的測驗中,恢復了整個庫,那就必須resetlogs了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/16408.html
標籤:高級技術
