dbms_backup_restore恢復測試!nocatalog,丟失controlfile的恢復辦法!
C:>rman target /
恢復管理器: Release 10.2.0.1.0 - Production on 星期三 1月 17 18:48:04 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到目標資料庫: UTF (DBID=1000919928)
RMAN> backup as compressed backupset full database format 'E:trans_tbsbakutf_
full_%U';
啟動 backup 於 17-1月 -07
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=274 devtype=DISK
通道 ORA_DISK_1: 啟動壓縮的全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00001 name=E:ORACLEPRODUCT10.2.0ORADATAUTFSYSTEM01.DBF
輸入資料檔案 fno=00003 name=E:ORACLEPRODUCT10.2.0ORADATAUTFSYSAUX01.DBF
輸入資料檔案 fno=00002 name=E:ORACLEPRODUCT10.2.0ORADATAUTFUNDOTBS01.DBF
輸入資料檔案 fno=00004 name=E:ORACLEPRODUCT10.2.0ORADATAUTFUSERS01.DBF
輸入資料檔案 fno=00005 name=E:ORACLEPRODUCT10.2.0ORADATAUTFTEST.DBF
輸入資料檔案 fno=00006 name=E:ORACLEPRODUCT10.2.0ORADATAUTFTEST1.DBF
通道 ORA_DISK_1: 正在啟動段 1 於 17-1月 -07
通道 ORA_DISK_1: 已完成段 1 於 17-1月 -07
段控制程式碼=E:TRANS_TBSBAKUTF_FULL_1JI7OIMI_1_1 標記=TAG20070117T184953 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:55
通道 ORA_DISK_1: 啟動壓縮的全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集中的資料檔案
備份集中包括當前控制檔案
在備份集中包含當前的 SPFILE
通道 ORA_DISK_1: 正在啟動段 1 於 17-1月 -07
通道 ORA_DISK_1: 已完成段 1 於 17-1月 -07
段控制程式碼=E:TRANS_TBSBAKUTF_FULL_1KI7OIOA_1_1 標記=TAG20070117T184953 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:05
完成 backup 於 17-1月 -07
--========================================================
刪除controlfile , datafile , redo
--========================================================
C:>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 1月 17 23:10:46 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> connect sys as sysdba
輸入口令:
已連線。
SQL> DECLARE
2 devtype varchar2(256);
3 done boolean;
4 BEGIN
5 devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');
6 sys.dbms_backup_restore.restoreSetDatafile;
7 sys.dbms_backup_restore.restoreControlfileTo(cfname=>'E:oracleproduct10.
2.0oradataUTFControl02.ctl');
8 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:trans_tbs
bakUTF_FULL_1KI7OIOA_1_1', params=>null);
9 sys.dbms_backup_restore.deviceDeallocate;
10 END;
11 /
PL/SQL 過程已成功完成。
SQL> edit
已寫入 file afiedt.buf
1 DECLARE
2 devtype varchar2(256);
3 done boolean;
4 BEGIN
5 devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');
6 sys.dbms_backup_restore.restoreSetDatafile;
7 sys.dbms_backup_restore.restoreControlfileTo(cfname=>'E:oracleproduct10.
2.0oradataUTFControl03.ctl');
8 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:trans_tbs
bakUTF_FULL_1KI7OIOA_1_1', params=>null);
9 sys.dbms_backup_restore.deviceDeallocate;
10* END;
SQL> /
PL/SQL 過程已成功完成。
SQL>
SQL> edit
已寫入 file afiedt.buf
1 DECLARE
2 devtype varchar2(256);
3 done boolean;
4 BEGIN
5 devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');
6 sys.dbms_backup_restore.restoreSetDatafile;
7 sys.dbms_backup_restore.restoreControlfileTo(cfname=>'E:oracleproduct10.
2.0oradataUTFControl01.ctl');
8 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:trans_tbs
bakUTF_FULL_1KI7OIOA_1_1', params=>null);
9 sys.dbms_backup_restore.deviceDeallocate;
10* END;
SQL> /
PL/SQL 過程已成功完成。
controlfile一旦恢復成功既可以透過dbms_backup_restore來恢復資料檔案也可以透過rman來恢復!
SQL> alter database mount;
資料庫已更改。
SQL> EDIT
已寫入 file afiedt.buf
1* alter database mount
SQL> DECLARE
2 devtype varchar2(256);
3 done boolean;
4 BEGIN
5 devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'t1');
6 sys.dbms_backup_restore.restoreSetDatafile;
7 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>01,toname=>'E:ORACLEP
RODUCT10.2.0ORADATAUTFSYSTEM01.DBF');
8 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>03,toname=>'E:ORACLEP
RODUCT10.2.0ORADATAUTFSYSAUX01.DBF');
9 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>02,toname=>'E:ORACLEP
RODUCT10.2.0ORADATAUTFUNDOTBS01.DBF');
10 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>04,toname=>'E:ORACLEP
RODUCT10.2.0ORADATAUTFUSERS01.DBF');
11 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>05,toname=>'E:ORACLEP
RODUCT10.2.0ORADATAUTFTEST.DBF');
12 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>06,toname=>'E:ORACLEP
RODUCT10.2.0ORADATAUTFTEST1.DBF');
13 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:trans_tbs
bakUTF_FULL_1JI7OIMI_1_1', params=>null);
14 sys.dbms_backup_restore.deviceDeallocate;
15 END;
16 /
PL/SQL 過程已成功完成。
SQL> recover database;
ORA-00283: 恢復會話因錯誤而取消
ORA-01610: 使用 BACKUP CONTROLFILE 選項的恢復必須已完成
SQL> recover database using backup controlfile;
ORA-00279: 更改 1007563 (在 01/17/2007 18:49:54 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFARCHIVELOG2007_01_17O1_MF_1_9
7_%U_.ARC
ORA-00280: 更改 1007563 (用於執行緒 1) 在序列 #97 中
指定日誌: {
cancel
介質恢復已取消。
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 1007563 (在 01/17/2007 18:49:54 生成) 對於執行緒 1 是必需的
ORA-00289: 建議:
E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFARCHIVELOG2007_01_17O1_MF_1_9
7_%U_.ARC
ORA-00280: 更改 1007563 (用於執行緒 1) 在序列 #97 中
指定日誌: {
ORA-00308: 無法開啟歸檔日誌
'E:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAUTFARCHIVELOG2007_01_17O1_MF_1_
97_%U_.ARC'
ORA-27041: 無法開啟檔案
OSD-04002: 無法開啟檔案
O/S-Error: (OS 2) 系統找不到指定的檔案。
SQL> alter database open;
alter database open
*
第 1 行出現錯誤:
ORA-01589: 要開啟資料庫則必須使用 RESETLOGS 或 NORESETLOGS 選項
SQL> alter database open resetlogs;
資料庫已更改。
SQL>
--=======================================
恢復spfile and pfile的語法如下
SQL> DECLARE
2 devtype varchar2(256);
3 done boolean;
4 BEGIN
5 devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');
6 sys.dbms_backup_restore.restoreSetDatafile;
7 sys.dbms_backup_restore.restoreSPFILETO(sfname=>'E:oracleproduct10.2.0d
b_2databaseSPFILEUTF.ORA');
8 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:trans_tbs
bakUTF_FULL_1KI7OIOA_1_1', params=>null);
9 sys.dbms_backup_restore.deviceDeallocate;
10 END;
11 /
PL/SQL 過程已成功完成。
SQL> DECLARE
2 devtype varchar2(256);
3 done boolean;
4 BEGIN
5 devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');
6 sys.dbms_backup_restore.restoreSetDatafile;
7 sys.dbms_backup_restore.restoreSPFILETO(Pfname=>'E:oracleproduct10.2.0a
dminUTFpfileINIT2.ORA');
8 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:trans_tbs
bakUTF_FULL_1KI7OIOA_1_1', params=>null);
9 sys.dbms_backup_restore.deviceDeallocate;
10 END;
11 /
PL/SQL 過程已成功完成。
SQL>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/19602/viewspace-61725/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【恢復】Redo日誌檔案丟失的恢復
- coreldraw檔案丟失(損壞)的恢復處理辦法
- rman恢復--丟失聯機重做日誌的恢復
- 恢復丟失的控制檔案
- RMAN恢復案例:丟失全部資料檔案恢復
- Oracle Redo丟失恢復方案Oracle
- 控制檔案丟失恢復
- 【控制檔案丟失恢復】
- oracle控制檔案的損壞或完全丟失的恢復辦法Oracle
- 伺服器資料丟失了怎麼恢復/分割槽丟失恢復教程伺服器
- Oracle備份與恢復【丟失資料檔案的恢復】Oracle
- 恢復測試:擁有當時的全部歸檔,控制檔案,恢復丟失的資料檔案。
- 資料檔案丟失的恢復
- 控制檔案全部丟失的恢復
- 控制檔案部分丟失的恢復
- Oracle Password檔案丟失的恢復Oracle
- 控制檔案丟失的RMAN恢復
- 硬碟資料丟失如何恢復?硬碟
- 控制檔案丟失恢復(二)
- oracle rman之丟失spfile恢復Oracle
- 控制檔案全部丟失恢復
- 分割槽丟失資料恢復資料恢復
- rman 恢復機制與恢復測試
- 【備份恢復】 丟失一個控制檔案 之恢復操作
- RMAN恢復案例:丟失非系統資料檔案恢復
- 恢復案例:歸檔模式下丟失全部資料檔案的恢復模式
- SQLSERVER恢復測試SQLServer
- Oracle恢復測試Oracle
- Oracle基於TSM恢復實驗(模擬spfile、controlfile、datafile丟失)Oracle
- rman恢復--丟失控制檔案的恢復
- 【備份恢復】恢復 丟失已歸檔重做日誌檔案
- 恢復案例:無歸檔,掉電,控制檔案全部丟失恢復
- chkdsk 後資料丟失的恢復方法
- 聯機重做日誌丟失的恢復
- 丟失非活動日誌組的恢復
- Oracle 各種檔案丟失的恢復Oracle
- 剪下的檔案還能恢復嗎,恢復剪貼丟失的檔案
- 資料檔案丟失如何恢復