1 recover database using backup controlfile
本文主要介紹以下四種
恢復方式的含義與區別:
1. recover database using backup controlfile
如果丟失當前控制文件,用冷 備份的控制文件恢復的時候,用來告訴 oracle,不要以controlfile中的scn作為恢復的終點;
2. recover database until cancel
如果丟失current/active redo的時候,手動指定終點。
3. recover database using backup controlfile until cancel;
如果丟失當前controlfile並且current/active redo都丟失,會先去自動應用歸檔日志,可以實現最大的恢復;
4. recover database until cancel using backup controlfile;
如果丟失當前controlfile並且current/active redo都丟失,以舊的redo中的scn為恢復終點。因為沒有應用歸檔日志,所有會丟失數據。
要理解recover database using backup controlfile,先理解 recover database,也就是說,不加using backup controlfile的情況。
在普通的recover database 或者 recover tablespace, recover datafile時, Oracle會以當前controlfile所紀錄的SCN為准,利用archive log和 redo log的redo entry, 把相關的datafile 的 block恢復到“當前controlfile所紀錄的SCN”
而某些情況下,Oracle需要把數據恢復到比當前controlfile所紀錄的SCN還要靠后的位置(比如說,control file是backup controlfile , 或者 controlfile是根據trace create的。),這時候,就需要用using backup controlfile. 恢復就不會受“當前controlfile所記錄的SCN”的限制。這時候的限制就來自於你的語句(until time , until scn),或者可用的archive log(until cancel) ...
結果如下: 結論:
可以得出結果,如果有舊的數據庫備份,在歸檔日志和在線日志全部保存完好的情況下,使用recover database或recover database using backup controlfile。則不丟失數據
until cancel就是不完全恢復
在線日志文件丟失: 如果正常關閉數據庫,然后啟動時報錯: SQL> alter database open;
數據庫已更改。 |