使用rman恢復控制檔案
沒有使用catalog的情況:
控制檔案自動備份將控制檔案和spfile放在一個檔案裡進行備份,預設位置為?/dbs(windows在?/database)。
這個位置可以使用如下語句進行更改:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:\oracle\rman\ctl_%F.ctl';
恢復預設值:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK CLEAR;
在進行控制檔案或spfile恢復的時候需要注意,因為備份資訊和rman的配置資訊都存放在控制檔案裡,所以在控制檔案丟失的情況下,
連線rman後,rman會從它的一個預設位置尋找控制檔案和spfile的備份,如果存在的話就可以進行恢復,否則報錯。恢復時使用
如下語句:
restore controlfile from autobackup;
restore spfile from autobackup;
如果備份檔案沒有放在預設位置,需要指定備份檔案的位置,恢復時要加上from子句
restore controlfile from 'D:\oracle\product\10.2.0\db_1\database\C-1904898126-20061123-04';
restore spfile from 'D:\oracle\product\10.2.0\db_1\database\C-1904898126-20061123-04';
另外,資料庫如果是以spfile啟動的話,即使不小心被刪了,也是不可以將它恢復到預設位置的,要使用to子句恢復到其他位置。
restore spfile to 'd:\oracle\rman\spfiletest.ora' from autobackup;
然後再copy到預設位置下進行恢復。
下面是個完整的恢復過程,刪除所有的控制檔案和資料檔案以及spfile
D:\>rman target /
恢復管理器: Release 10.2.0.1.0 - Production on 星期四 11月 23 11:06:21 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到目標資料庫: test (未裝載)
RMAN> set dbid 1904898126
正在執行命令: SET DBID
RMAN> restore spfile from autobackup;
啟動 restore 於 23-11月-06
使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=324 devtype=DISK
恢復區域目標: D:\oracle\product\10.2.0\flash_recovery_area
用於搜尋的資料庫名 (或資料庫的唯一名稱): TEST
通道 ORA_DISK_1: 在恢復區域中未找到自動備份
通道 ORA_DISK_1: 尋找以下日期的自動備份: 20061123
通道 ORA_DISK_1: 已找到的自動備份: c-1904898126-20061123-04
通道 ORA_DISK_1: 從自動備份復原 SPFILE 已完成
完成 restore 於 23-11月-06
RMAN> restore controlfile from autobackup;
啟動 restore 於 23-11月-06
使用通道 ORA_DISK_1
恢復區域目標: D:\oracle\product\10.2.0\flash_recovery_area
用於搜尋的資料庫名 (或資料庫的唯一名稱): TEST
通道 ORA_DISK_1: 在恢復區域中未找到自動備份
通道 ORA_DISK_1: 尋找以下日期的自動備份: 20061123
通道 ORA_DISK_1: 已找到的自動備份: c-1904898126-20061123-04
通道 ORA_DISK_1: 從自動備份復原控制檔案已完成
輸出檔名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\CONTROL01.CTL
輸出檔名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\CONTROL02.CTL
輸出檔名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\CONTROL03.CTL
完成 restore 於 23-11月-06
RMAN> alter database mount;
資料庫已裝載
釋放的通道: ORA_DISK_1
RMAN> restore database;
啟動 restore 於 23-11月-06
啟動 implicit crosscheck backup 於 23-11月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=321 devtype=DISK
已交叉檢驗的 21 物件
完成 implicit crosscheck backup 於 23-11月-06
啟動 implicit crosscheck copy 於 23-11月-06
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 於 23-11月-06
搜尋恢復區域中的所有檔案
正在編制檔案目錄...
沒有為檔案編制目錄
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00001恢復到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\SYSTEM01.DBF
正將資料檔案00002恢復到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\UNDOTBS01.DBF
正將資料檔案00003恢復到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\SYSAUX01.DBF
正將資料檔案00004恢復到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\USERS01.DBF
正將資料檔案00005恢復到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\TEST01.DBF
通道 ORA_DISK_1: 正在讀取備份段 D:\ORACLE\RMAN\FULL_22I340JH_1_1.DBF
通道 ORA_DISK_1: 已恢復備份段 1
段控制程式碼 = D:\ORACLE\RMAN\FULL_22I340JH_1_1.DBF 標記 = TAG20061123T103321
通道 ORA_DISK_1: 恢復完成, 用時: 00:01:06
完成 restore 於 23-11月-06
RMAN> run{
2> set until time="to_date('2006-11-23 10:35:00','yyyy-mm-dd hh24:mi:ss')";
3> recover database;
4> }
正在執行命令: SET until clause
啟動 recover 於 23-11月-06
使用通道 ORA_DISK_1
正在開始介質的恢復
存檔日誌執行緒 1 序列 2 已作為檔案 D:\ORACLE\ARCHIVE\ARC00002_0607256829.001 存在於磁碟上
存檔日誌檔名 =D:\ORACLE\ARCHIVE\ARC00002_0607256829.001 執行緒 =1 序列 =2
存檔日誌檔名 =D:\ORACLE\ARCHIVE\ARC00003_0607256829.001 執行緒 =1 序列 =3
介質恢復完成, 用時: 00:00:03
完成 recover 於 23-11月-06
RMAN> alter database open resetlogs;
資料庫已開啟
參考:
http://www.itpub.net/viewthread.php?tid=673323&extra=&page=1
控制檔案自動備份將控制檔案和spfile放在一個檔案裡進行備份,預設位置為?/dbs(windows在?/database)。
這個位置可以使用如下語句進行更改:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:\oracle\rman\ctl_%F.ctl';
恢復預設值:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK CLEAR;
在進行控制檔案或spfile恢復的時候需要注意,因為備份資訊和rman的配置資訊都存放在控制檔案裡,所以在控制檔案丟失的情況下,
連線rman後,rman會從它的一個預設位置尋找控制檔案和spfile的備份,如果存在的話就可以進行恢復,否則報錯。恢復時使用
如下語句:
restore controlfile from autobackup;
restore spfile from autobackup;
如果備份檔案沒有放在預設位置,需要指定備份檔案的位置,恢復時要加上from子句
restore controlfile from 'D:\oracle\product\10.2.0\db_1\database\C-1904898126-20061123-04';
restore spfile from 'D:\oracle\product\10.2.0\db_1\database\C-1904898126-20061123-04';
另外,資料庫如果是以spfile啟動的話,即使不小心被刪了,也是不可以將它恢復到預設位置的,要使用to子句恢復到其他位置。
restore spfile to 'd:\oracle\rman\spfiletest.ora' from autobackup;
然後再copy到預設位置下進行恢復。
下面是個完整的恢復過程,刪除所有的控制檔案和資料檔案以及spfile
D:\>rman target /
恢復管理器: Release 10.2.0.1.0 - Production on 星期四 11月 23 11:06:21 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到目標資料庫: test (未裝載)
RMAN> set dbid 1904898126
正在執行命令: SET DBID
RMAN> restore spfile from autobackup;
啟動 restore 於 23-11月-06
使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=324 devtype=DISK
恢復區域目標: D:\oracle\product\10.2.0\flash_recovery_area
用於搜尋的資料庫名 (或資料庫的唯一名稱): TEST
通道 ORA_DISK_1: 在恢復區域中未找到自動備份
通道 ORA_DISK_1: 尋找以下日期的自動備份: 20061123
通道 ORA_DISK_1: 已找到的自動備份: c-1904898126-20061123-04
通道 ORA_DISK_1: 從自動備份復原 SPFILE 已完成
完成 restore 於 23-11月-06
RMAN> restore controlfile from autobackup;
啟動 restore 於 23-11月-06
使用通道 ORA_DISK_1
恢復區域目標: D:\oracle\product\10.2.0\flash_recovery_area
用於搜尋的資料庫名 (或資料庫的唯一名稱): TEST
通道 ORA_DISK_1: 在恢復區域中未找到自動備份
通道 ORA_DISK_1: 尋找以下日期的自動備份: 20061123
通道 ORA_DISK_1: 已找到的自動備份: c-1904898126-20061123-04
通道 ORA_DISK_1: 從自動備份復原控制檔案已完成
輸出檔名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\CONTROL01.CTL
輸出檔名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\CONTROL02.CTL
輸出檔名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\CONTROL03.CTL
完成 restore 於 23-11月-06
RMAN> alter database mount;
資料庫已裝載
釋放的通道: ORA_DISK_1
RMAN> restore database;
啟動 restore 於 23-11月-06
啟動 implicit crosscheck backup 於 23-11月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=321 devtype=DISK
已交叉檢驗的 21 物件
完成 implicit crosscheck backup 於 23-11月-06
啟動 implicit crosscheck copy 於 23-11月-06
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 於 23-11月-06
搜尋恢復區域中的所有檔案
正在編制檔案目錄...
沒有為檔案編制目錄
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00001恢復到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\SYSTEM01.DBF
正將資料檔案00002恢復到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\UNDOTBS01.DBF
正將資料檔案00003恢復到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\SYSAUX01.DBF
正將資料檔案00004恢復到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\USERS01.DBF
正將資料檔案00005恢復到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\TEST01.DBF
通道 ORA_DISK_1: 正在讀取備份段 D:\ORACLE\RMAN\FULL_22I340JH_1_1.DBF
通道 ORA_DISK_1: 已恢復備份段 1
段控制程式碼 = D:\ORACLE\RMAN\FULL_22I340JH_1_1.DBF 標記 = TAG20061123T103321
通道 ORA_DISK_1: 恢復完成, 用時: 00:01:06
完成 restore 於 23-11月-06
RMAN> run{
2> set until time="to_date('2006-11-23 10:35:00','yyyy-mm-dd hh24:mi:ss')";
3> recover database;
4> }
正在執行命令: SET until clause
啟動 recover 於 23-11月-06
使用通道 ORA_DISK_1
正在開始介質的恢復
存檔日誌執行緒 1 序列 2 已作為檔案 D:\ORACLE\ARCHIVE\ARC00002_0607256829.001 存在於磁碟上
存檔日誌檔名 =D:\ORACLE\ARCHIVE\ARC00002_0607256829.001 執行緒 =1 序列 =2
存檔日誌檔名 =D:\ORACLE\ARCHIVE\ARC00003_0607256829.001 執行緒 =1 序列 =3
介質恢復完成, 用時: 00:00:03
完成 recover 於 23-11月-06
RMAN> alter database open resetlogs;
資料庫已開啟
參考:
http://www.itpub.net/viewthread.php?tid=673323&extra=&page=1
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-668730/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RMAN恢復控制檔案
- rman恢復--丟失控制檔案的恢復
- RMAN - "丟失控制檔案的恢復"
- rman恢復控制檔案測試--log
- 控制檔案丟失的RMAN恢復
- RMAN備份恢復之控制檔案的恢復(三)
- RMAN備份恢復之控制檔案的恢復(二)
- RMAN備份恢復之控制檔案的恢復(一)
- 控制檔案快照和rman利用快照恢復
- RMAN 恢復之控制檔案篇(1/5)
- RMAN 恢復之控制檔案篇(2/5)
- RMAN 恢復之控制檔案篇(3/5)
- RMAN 恢復之控制檔案篇(4/5)
- RMAN 恢復之控制檔案篇(5/5)
- rman備份丟失控制檔案恢復
- RMAN恢復 執行重要檔案RMAN恢復
- RMAN恢復案例:無恢復目錄,丟失全部資料檔案、控制檔案、日誌檔案恢復
- 【rman 備份與恢復】恢復丟失所有的控制檔案
- 【管理篇備份恢復】rman恢復測試(二) 控制檔案恢復(三)
- 【管理篇備份恢復】rman恢復測試(二) 控制檔案恢復(二)
- 【管理篇備份恢復】rman恢復測試(二) 控制檔案恢復(一)
- 【RMAN】如果控制檔案損壞那麼如何恢復?恢復控制檔案的方式有哪幾種?
- oracle實驗記錄 (恢復-rman基於控制檔案的恢復)Oracle
- rman恢復控制檔案的一個小錯誤
- RMAN基於備份控制檔案恢復失敗
- 控制檔案恢復—從trace檔案中恢復
- 12 使用RMAN備份和恢復檔案
- 【備份恢復】丟失所有控制檔案,利用RMAN進行恢復操作
- RMAN恢復 執行不重要檔案的RMAN恢復
- rman備份恢復-rman恢復資料檔案測試
- 使用舊的控制檔案備份來恢復控制檔案
- 誤刪除資料檔案、控制檔案的非RMAN恢復方法
- rman恢復資料庫--用備份的控制檔案資料庫
- 只有rman備份集,控制檔案丟失的恢復
- 探索ORACLE之RMAN_07 控制檔案丟失恢復Oracle
- 手工恢復控制檔案
- 測試恢復5==使用2進位制形式檔案恢復控制檔案
- 控制檔案恢復—從快照中恢復