丟失所有檔案、擁有全備份,缺少後增加的檔案
演示幾種情況,不做過多說明.
歸檔模式
擁有所有歸檔檔案及日誌檔案,丟失所有資料檔案及控制檔案,後增加的檔案無備份,丟失這個檔案,擁有控制檔案及所有其他檔案的歷史
備份,以下是一種恢復情況.
1.測試,移除當前所有檔案
從備份中恢復資料檔案及控制檔案(丟失後增加的檔案)
SQL> startup; ORACLE 例程已經啟動。 Total System Global Area 47259136 bytes Fixed Size 454144 bytes Variable Size 29360128 bytes Database Buffers 16777216 bytes Redo Buffers 667648 bytes 資料庫裝載完畢。 資料庫已經開啟。 SQL> archive log start; 已處理的語句 SQL> archive log list; 資料庫日誌模式 存檔模式 自動存檔 啟用 存檔終點 e:\oracle\ora92\RDBMS 最早的概要日誌序列 30 下一個存檔日誌序列 32 當前日誌序列 32 SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- E:\ORACLE\ORADATA\EYGLE\SYSTEM01.DBF E:\ORACLE\ORADATA\EYGLE\UNDOTBS01.DBF E:\ORACLE\ORADATA\EYGLE\EYGLE01.DBF SQL> create tablespace test datafile 'e:\oracle\oradata\eygle\test01.dbf' 2 size 5m; 表空間已建立。 SQL> alter system switch logfile; 系統已更改。 SQL> create table t tablespace test as select * from dba_users; 表已建立。 SQL> alter system switch logfile; 系統已更改。 SQL> shutdown abort; ORACLE 例程已經關閉。 SQL> exit 從Oracle9i Enterprise Edition Release 9.2.0.5.0 - Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.5.0 - Production中斷開 E:\Oracle\oradata\eygle>mv TEST01.DBF bak E:\Oracle\oradata\eygle>mkdir bak2 E:\Oracle\oradata\eygle>mv *.* bak2 E:\Oracle\oradata\eygle>ls bak bak2 E:\Oracle\oradata\eygle>mv bak\*.* . --從備份中恢復 E:\Oracle\oradata\eygle>ls CONTROL01.CTL CONTROL03.CTL REDO01.LOG REDO03.LOG TEMP01.DBF UNDOTBS01.DBF bak2 CONTROL02.CTL EYGLE01.DBF REDO02.LOG SYSTEM01.DBF TEST01.DBF bak sqlnet.log E:\Oracle\oradata\eygle>mv TEST01.DBF bak --移除後增加的這個檔案 E:\Oracle\oradata\eygle>ls CONTROL01.CTL CONTROL03.CTL REDO01.LOG REDO03.LOG TEMP01.DBF bak sqlnet.log CONTROL02.CTL EYGLE01.DBF REDO02.LOG SYSTEM01.DBF UNDOTBS01.DBF bak2 |
2.開始恢復
E:\Oracle\oradata\eygle>sqlplus "sys/oracle as sysdba" SQL*Plus: Release 9.2.0.5.0 - Production on 星期三 10月 13 23:50:06 2004 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 已連線到空閒例程。 SQL> startup mount; ORACLE 例程已經啟動。 Total System Global Area 47259136 bytes Fixed Size 454144 bytes Variable Size 29360128 bytes Database Buffers 16777216 bytes Redo Buffers 667648 bytes 資料庫裝載完畢。 SQL> recover database using backup controlfile until cancel; ORA-00279: 更改 134694 (在 10/13/2004 22:14:13 生成) 對於執行緒 1 是必需的 ORA-00289: 建議: E:\ORACLE\ORA92\RDBMS\ARC00032.001 ORA-00280: 更改 134694 對於執行緒 1 是按序列 # 32 進行的 指定日誌: {=suggested | filename | AUTO | CANCEL} auto ORA-00283: 恢復會話因錯誤而取消 ORA-01244: 未命名的資料檔案由介質恢復新增至控制檔案 ORA-01110: 資料檔案 4: 'E:\ORACLE\ORADATA\EYGLE\TEST01.DBF' ORA-01112: 未啟動介質恢復 SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- E:\ORACLE\ORADATA\EYGLE\SYSTEM01.DBF E:\ORACLE\ORADATA\EYGLE\UNDOTBS01.DBF E:\ORACLE\ORADATA\EYGLE\EYGLE01.DBF E:\ORACLE\ORA92\DATABASE\UNNAMED00004 |
注意:由於使用的是備份的控制檔案進行恢復,該檔案中不包含後增加的檔案,恢復過程中會預設的賦予一個檔名,本案例時:UNNAMED00004
3.更改檔名稱繼續恢復
SQL> alter database create datafile 'E:\ORACLE\ORA92\DATABASE\UNNAMED00004' as 'E:\ORACLE\ORADATA\EYGLE\TEST01.DBF'; 資料庫已更改。 SQL> recover database using backup controlfile until cancel; ORA-00279: 更改 134923 (在 10/13/2004 22:40:10 生成) 對於執行緒 1 是必需的 ORA-00289: 建議: E:\ORACLE\ORA92\RDBMS\ARC00032.001 ORA-00280: 更改 134923 對於執行緒 1 是按序列 # 32 進行的 指定日誌: {=suggested | filename | AUTO | CANCEL} ORA-00279: 更改 134967 (在 10/13/2004 22:40:40 生成) 對於執行緒 1 是必需的 ORA-00289: 建議: E:\ORACLE\ORA92\RDBMS\ARC00033.001 ORA-00280: 更改 134967 對於執行緒 1 是按序列 # 33 進行的 ORA-00278: 此恢復不再需要日誌檔案 'E:\ORACLE\ORA92\RDBMS\ARC00032.001' 指定日誌: {=suggested | filename | AUTO | CANCEL} E:\Oracle\oradata\eygle\bak2\REDO03.LOG ORA-00279: 更改 134998 (在 10/13/2004 22:41:05 生成) 對於執行緒 1 是必需的 ORA-00289: 建議: E:\ORACLE\ORA92\RDBMS\ARC00034.001 ORA-00280: 更改 134998 對於執行緒 1 是按序列 # 34 進行的 ORA-00278: 此恢復不再需要日誌檔案 'E:\Oracle\oradata\eygle\bak2\REDO03.LOG' 指定日誌: {=suggested | filename | AUTO | CANCEL} E:\Oracle\oradata\eygle\bak2\REDO01.LOG ORA-00279: 更改 155020 (在 10/13/2004 22:44:30 生成) 對於執行緒 1 是必需的 ORA-00289: 建議: E:\ORACLE\ORA92\RDBMS\ARC00035.001 ORA-00280: 更改 155020 對於執行緒 1 是按序列 # 35 進行的 ORA-00278: 此恢復不再需要日誌檔案 'E:\Oracle\oradata\eygle\bak2\REDO01.LOG' 指定日誌: {=suggested | filename | AUTO | CANCEL} E:\Oracle\oradata\eygle\bak2\REDO02.LOG 已應用的日誌。 完成介質恢復。 SQL> alter database open resetlogs; 資料庫已更改。 SQL> |
總結:
此案例丟失控制檔案,從備份控制檔案進行恢復,在進行恢復中,會向控制檔案中以預設規則增加檔案,我們可以通過CREATE AS方式修改控制檔案中記錄.
繼續應用所有歸檔和日誌檔案可以完成恢復.
原文地址:http://www.eygle.com/archives/2004/10/recover_backup_missing_datafile.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8750110/viewspace-6860/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 歸檔模式有備份丟失資料檔案後恢復模式
- 【備份恢復】所有控制檔案丟失後 利用trace中的控制檔案備份執行恢復
- 世界備份日——如果您丟失了所有檔案
- 所有除引數檔案以外的檔案都丟失,但是隻有資料檔案的 RMAN 備份的恢復
- 所有除引數檔案以外的檔案都丟失,但是隻有資料檔案的 RMAN 備份的恢復2
- 無檔案備份、擁有所有歸檔的恢復
- 歸檔模式無備份丟失資料檔案後恢復模式
- 歸檔模式有備份丟失控制檔案和資料檔案後恢復模式
- undo表空間檔案丟失恢復(1)--有備份
- rman恢復--歸檔模式有備份,丟失資料檔案的恢復模式
- rman備份但丟失一個資料檔案,但有歸檔備份
- 恢復之丟失全部控制檔案以及備份中的控制檔案
- 備份恢復之資料檔案丟失
- REDO檔案丟失的恢復__沒有任何備份的情況
- 非歸檔無備份下控制檔案丟失的恢復
- 丟失全部控制檔案後從RMAN備份集中恢復示例
- 無備份丟失部分資料檔案和控制檔案恢復 [轉]
- 只有rman備份集,控制檔案丟失的恢復
- 控制檔案丟失恢復例項(2) - 控制檔案備份後物理結構未變化
- 開啟 控制檔案自動備份下,引數檔案、控制檔案全部丟失恢復
- 恢復測試:擁有當時的全部歸檔,控制檔案,恢復丟失的資料檔案。
- 備份恢復實驗(1)丟失部分控制檔案
- 沒備份,歸檔日誌存在,丟失資料檔案的恢復
- 控制檔案丟失恢復例項(1) - 控制檔案備份後物理結構發生變化
- 【備份恢復】恢復 丟失已歸檔重做日誌檔案
- 恢復之利用備份在所有控制檔案丟失情況下恢復(四)
- 恢復之利用備份在所有控制檔案丟失情況下恢復(三)
- 恢復之利用備份在所有控制檔案丟失情況下恢復(二)
- 恢復之利用備份在所有控制檔案丟失情況下恢復(一)
- rman全庫備份備份歸檔日誌檔案
- 沒有自動備份的情況下控制檔案全部丟失的恢復
- 找回丟失的檔案
- Oracle備份與恢復【丟失資料檔案的恢復】Oracle
- rman恢復--歸檔模式無備份,丟失資料檔案的恢復模式
- 備份與恢復--資料檔案損壞或丟失
- 【rman 備份與恢復】恢復丟失所有的控制檔案
- Oracle RMAN 不完全恢復(只有資料檔案備份,丟失歸檔日誌備份)Oracle
- RMAN資料庫恢復 之歸檔模式有(無)備份-丟失資料檔案的恢復資料庫模式