恢復之資料庫關閉時的完全恢復

zhengbao_jun發表於2009-02-11

資料庫的完全恢復是指將資料庫恢復到最近的一致狀態。資料庫關閉時所有已經提交的資料都不會丟失。

關閉狀態的恢復是全庫恢復或SYSTEM表空間恢復的唯一方式。


首先保證資料庫處於關閉狀態,如果資料庫無法正常關閉,可以使用SHUTDOWN ABORT方式將資料庫關閉。

SQL> CONN /@TEST AS SYSDBA
已連線。
SQL> SHUTDOWN ABORT
ORACLE 例程已經關閉。

第二步,確定需要進行恢復的檔案。應該僅僅利用備份去恢復那些受損的檔案,而不要去恢復沒有問題的資料檔案和聯機日誌檔案。

然後就是問題資料檔案的還原,這裡模仿全部資料檔案損壞的還原。如果備份檔案無法恢復到原始位置,需要修改資料檔案的名稱。

SQL> HOST COPY F:ORACLEBACKUPTEST20060219*.DBF F:ORACLEORADATATEST

SQL> STARTUP MOUNT
ORACLE 例程已經啟動。

Total System Global Area 76619308 bytes
Fixed Size 454188 bytes
Variable Size 50331648 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
SQL> COL NAME FORMAT A50
SQL> SELECT NAME, STATUS FROM V$DATAFILE;

NAME STATUS
-------------------------------------------------- -------
F:ORACLEORADATATESTSYSTEM01.DBF SYSTEM
F:ORACLEORADATATESTUNDOTBS01.DBF ONLINE
F:ORACLEORADATATESTINDX01.DBF ONLINE
F:ORACLEORADATATESTTOOLS01.DBF ONLINE
F:ORACLEORADATATESTUSERS01.DBF ONLINE
F:ORACLEORADATATESTYANGTK01.DBF ONLINE

已選擇6行。

查詢資料檔案狀態,保證除了正常離線的表空間或只讀表空間下的資料檔案,其他所有的資料檔案都處於聯機狀態,如果資料檔案處於離線狀態,使用ALTER DATABASE DATAFILE filename ONLINE命令將其聯機。

下面根據需要恢復物件的不同,選擇進行全庫恢復、表空間恢復還是資料檔案的恢復:

SQL> RECOVER AUTOMATIC DATABASE
完成介質恢復。
SQL> ALTER DATABASE OPEN;

資料庫已更改。

這個例子中採用自動恢復,避免各種恢復提示的顯示。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/235507/viewspace-548680/,如需轉載,請註明出處,否則將追究法律責任。

相關文章