Backup And Recovery User's Guide-執行完全資料庫恢復-執行關閉的資料庫的恢復
執行關閉的資料庫的恢復
這部分描述了在資料庫沒有開啟的情況執行完全恢復。
可以在一個操作中恢復所有損壞的資料檔案,也可以在單獨的操作中,執行每個損壞的資料檔案的個別的恢復。
練習:還原和恢復損壞的或丟失的資料檔案
--1. 如果資料庫是OPEN狀態,查詢V$RECOVER_FILE來確定哪一個資料檔案必須被恢復和為什麼被恢復。 -- 如果你計劃執行完全恢復而不是時間點恢復,則可以只恢復需要恢復的資料檔案,而不是整個資料庫。 -- 對於時間點恢復,必須還原和恢復所有的資料檔案,除非執行的是TSPITR。 -- 也可以使用閃回資料庫,但閃回資料庫也是影響所有的資料檔案並回退整個資料庫到過去的時間點。 -- 可以查詢V$RECOVER_FILE檢視,列出需要恢復的資料檔案的編號、狀態和錯誤資訊 SELECT FILE#, ERROR, ONLINE_STATUS, CHANGE#, TIME FROM V$RECOVER_FILE;
--注意:你不能在介質失敗影響到了資料檔案之後,在控制檔案是被還原的或重新建立的情況下, 使用V$RECOVER_FILE. -- 因為被還原的或重新建立的控制檔案不包含更新V$RECOVER_FILE檢視所需要的準確的資訊。
-- 也可以對V$DATAFILE和V$TABLESPACE檢視通過檔案編號進行連線操作,來檢視資料檔案和表空間的名稱。 -- ERROR列列出了每個需要恢復的資料檔案的問題。 COL DF# FORMAT 999 COL DF_NAME FORMAT A35 COL TBSP_NAME FORMAT A7 COL STATUS FORMAT A7 COL ERROR FORMAT A10 COL CHANGE# FORMAT 99999999 SELECT r.FILE# AS df#, d.NAME AS df_name, t.NAME AS tbsp_name, d.STATUS, r.ERROR, r.CHANGE#, r.TIME FROM V$RECOVER_FILE r, V$DATAFILE d, V$TABLESPACE t WHERE t.TS# = d.TS# AND d.FILE# = r.FILE#;
--2. 查詢V$ARCHIVED_LOG和V$RECOVERY_LOG檢視,確定哪些歸檔重做日誌檔案是需要的。 -- V$ARCHIVED_LOG列出所有的歸檔重做日誌的檔名,而V$RECOVERY_LOG只列出資料庫執行介質恢復所需要的歸檔重做日誌。 -- V$RECOVERY_LOG也包含可能的檔案的名稱,這個名稱基於通過LOG_ARCHIVE_FORMAT引數指定的命名的慣例。 -- 注意:V$RECOVERY_LOG只有在資料檔案需要介質恢復的時候才被填充. 因此這個檢視對於計劃的恢復是沒用的,例如從使用者錯誤的恢復. -- 如果資料檔案需要恢復,但資料檔案的備份不存在,則你需要從資料檔案被新增到資料庫開始後產生的所有redo資訊。
--3. 如果所有的歸檔日誌在預設的位置可用,則跳轉到第4步 -- 如果一些歸檔日誌必須被還原並且有足夠的空間可以被使用,則還原需要的歸檔重做日誌檔案到LOG_ARCHIVE_DEST_1引數指定的位置 -- 當在介質恢復的過程中資料庫會自動定位正確的日誌檔案. -- 如果沒有足夠的空間則可以還原部分或所有的歸檔重做日誌檔案到其它的位置. cp /disk2/arch/* $ORACLE_HOME/oradata/trgt/arch
--4. 如果資料庫處於開啟狀態,則關閉資料庫 SHUTDOWN IMMEDIATE --5. 檢查介質確定問題的來源.如果引起介質失敗的硬體問題是暫時的並且如果資料並沒有損壞(如磁碟或控制器電源失敗),則不需要介質恢復 -- 開啟資料庫,恢復正常的操作. 如果不能修復問題,則繼續第6步 --6. 如果資料檔案永久地損壞了,則找到損壞的檔案的最近的備份,只還原被介質失敗損壞的資料檔案.不要還原未損壞的資料檔案或聯機重做日誌. -- 例如ORACLE_HOME/oradata/trgt/users01.dbf是唯一損壞的資料檔案,並且找到/backup/users01_10_24_02.dbf是該檔案最近的備份 --7. 使用作業系統工具來還原資料檔案到預設的位置 cp /backup/users01_10_24_06.dbf $ORACLE_HOME/oradata/trgt/users01.dbf -- 使用下面的指導來確定將資料檔案恢復到哪裡 -- a. 如果硬體問題被修復了,則可以還原資料檔案到預設的位置,然後還原歸檔重做日誌到預設的位置並開始恢復。 -- b. 如果硬體問題仍然存在,就不以還原資料檔案到原始的位置,則需要還原資料檔案到一個替代的儲存裝置, -- 使用ALTER DATABASE RENAME FILE通知控制檔案這些檔案新位置. -- c. 如果還原資料檔案到裸裝置或分割槽,則使用的技術與還原檔案到檔案系統是類似的。 -- 要清楚檔案在裸裝置上的命名的慣例並使用支援裸裝置的作業系統工具 --8. 使用管理員許可權連線到資料庫,然後MOUNT資料庫但不OPEN STARTUP MOUNT --9. 如果還原一個或多個資料檔案到替代的位置,然後更新控制檔案來反映新的資料檔案的名稱. ALTER DATABASE RENAME FILE '?/oradata/trgt/users01.dbf' TO '/disk2/users01.dbf'; --10. 獲得所有資料檔案的名稱和狀態,這些檔案通常和控制檔案在一起,也可以查詢V$DATAFILE檢視 SELECT NAME,STATUS FROM V$DATAFILE; --11. 確定所有需要恢復的資料檔案聯機. 唯一的例外是被正常離線的表空間中的資料檔案或只讀表空間中的資料檔案. ALTER DATABASE DATAFILE '/oracle/dbs/tbs_10.f' ONLINE; -- 如果指定的資料檔案已經聯機,則資料庫會忽略這個語句. 如果希望建立一個指令碼來使所有的一次全部聯機 SPOOL onlineall.sql SELECT 'ALTER DATABASE DATAFILE '''||name||''' ONLINE;' FROM V$DATAFILE; SPOOL OFF
SQL> @onlineall --12. 如果還原歸檔日誌檔案到替代的位置,則可以在介質恢復之前使用SET LOGSOURCE命令指定新的位置 -- 也可以跳過該步,在RECOVER命令中直接指定位置. 注意:覆蓋redo log source不會影響到正在被歸檔的聯機重做日誌組的歸檔重做日誌目的地。
SET LOGSOURCE /tmp --13. 恢復資料庫、表空間、資料檔案 --13.1 整個資料庫 RECOVER AUTOMATIC DATABASE --13.2 恢復指定的表空間 RECOVER AUTOMATIC TABLESPACE users --13.3 恢復指定的資料檔案 RECOVER AUTOMATIC DATAFILE '?/oradata/trgt/users01.dbf'; -- 如果沒有選擇自動應用歸檔重做日誌,則必須接受或拒絕每一個提示的日誌.如果進行自動恢復,則資料庫會自動地應用日誌. -- 恢復繼續進行,只到所有需要歸檔日誌和聯機重做日誌已經被應用到被還原的資料檔案.當介質恢復結束後,資料庫會給出通知. Media recovery complete. --如果不需要歸檔重做日誌來完成介質恢復,則資料會應用所有必要的聯機重做日誌檔案並且結束恢復. --14. 恢復結束之後,開啟資料庫 ALTER DATABASE OPEN; --15. 在歸檔日誌被應用並確定每個歸檔日誌檔案在離線的儲存上仍然存在後,就可以刪除還原的歸檔日誌檔案的備份來釋放空間了. $ rm /tmp/*.arc |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1101151/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- (Les16 執行資料庫恢復)-表空間恢復資料庫
- 【北亞資料恢復】oracle資料庫執行truncate table命令怎麼恢復資料?資料恢復Oracle資料庫
- DM7使用DMRMAN執行RAC資料庫恢復資料庫
- 【資料庫資料恢復】SAP資料庫資料恢復案例資料庫資料恢復
- 【資料庫資料恢復】透過恢復NDF檔案修復資料庫的資料恢復過程資料庫資料恢復
- 寶塔資料庫恢復 mysql資料庫丟失恢復 mysql資料庫刪除庫恢復 寶塔mysql資料庫恢復資料庫MySql
- 【資料庫資料恢復】windows server下SqlServer資料庫的資料恢復資料庫資料恢復WindowsServerSQL
- 【資料庫資料恢復】如何恢復Oracle資料庫truncate表的資料資料庫資料恢復Oracle
- 如何進行Oracle資料庫不完全恢復RBOracle資料庫
- 【資料庫資料恢復】Sql Server資料庫資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】Oracle資料庫誤truncate table的資料恢復案例資料庫資料恢復Oracle
- 【資料庫資料恢復】誤truncate table的Oracle資料庫資料恢復方案資料庫資料恢復Oracle
- 伺服器資料恢復—透過拼接資料庫碎片恢復SqlServer資料庫資料的資料恢復案例伺服器資料恢復資料庫SQLServer
- 資料庫修復資料恢復資料庫資料恢復
- 【資料庫資料恢復】sql server資料庫連線失效的資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】SqlServer資料庫無法讀取的資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】MongoDB資料庫檔案損壞的資料恢復案例資料庫資料恢復MongoDB
- DM7使用DMRMAN執行資料庫還原和恢復資料庫
- MySQL資料庫的恢復MySql資料庫
- 資料庫資料恢復—附加資料庫錯誤823的SQL Server資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】SQL Server資料庫磁碟空間不足的資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】ASM磁碟組掉線的Oracle資料庫資料恢復案例資料庫資料恢復ASMOracle
- 【資料庫資料恢復】透過資料頁恢復Sql Server資料庫資料的過程資料庫資料恢復SQLServer
- 【資料庫資料恢復】oracle資料庫誤truncate table怎麼恢復資料?資料庫資料恢復Oracle
- 【資料庫資料恢復】linux系統下MYSQL資料庫資料恢復案例資料庫資料恢復LinuxMySql
- 【資料庫資料恢復】ASM例項不能掛載的Oracle資料庫資料恢復案例資料庫資料恢復ASMOracle
- 【資料庫資料恢復】LINUX環境下ORACLE資料庫誤刪除的資料恢復資料庫資料恢復LinuxOracle
- 【資料庫資料恢復】Sql Server資料庫檔案丟失的資料恢復過程資料庫資料恢復SQLServer
- 【資料庫資料恢復】MongoDB資料庫服務啟動失敗的資料恢復案例資料庫資料恢復MongoDB
- 【資料庫資料恢復】MS SQL資料庫附加資料庫出錯怎麼恢復資料?資料庫資料恢復SQL
- [20200309]資料庫異常關閉恢復的終點.txt資料庫
- sybase資料庫恢復資料庫
- Sybase ASE資料庫恢復,Sybase資料恢復,資料誤刪除恢復工具READSYBDEVICE資料庫資料恢復dev
- 【資料庫資料恢復】斷電導致Oracle資料庫資料丟失的資料恢復案例資料庫資料恢復Oracle
- 資料庫資料恢復—NTFS分割槽損壞如何恢復SqlServer資料庫資料資料庫資料恢復SQLServer
- 【資料庫資料恢復】Oracle資料庫ASM磁碟組掉線如何恢復資料?資料庫資料恢復OracleASM
- 【oracle資料庫資料恢復】誤操作導致的資料庫誤刪除的資料恢復案例Oracle資料庫資料恢復
- 資料庫資料恢復—無備份,binlog未開啟的Mysql資料庫資料恢復案例資料庫資料恢復MySql
- 資料庫資料恢復-SQL SERVER資料庫檔案大小變為“0”的資料恢復方案資料庫資料恢復SQLServer