沒有使用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;
使用通道 ORA_DISK_1
通道 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
RMAN> alter database mount;
資料庫已裝載
釋放的通道: ORA_DISK_1
RMAN> restore database;
啟動 implicit crosscheck backup 于 23-11月-06
通道 ORA_DISK_1: sid=321 devtype=DISK
已交叉檢驗的 21 對象
完成 implicit crosscheck backup 于 23-11月-06
啟動 implicit crosscheck copy 于 23-11月-06
完成 implicit crosscheck copy 于 23-11月-06
搜尋恢複區域中的所有檔案
正在編制檔案目錄...
沒有為檔案編制目錄
通道 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
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
正在開始媒體的恢複
存檔日志線程 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;
資料庫已打開
參考:
<a href="http://www.itpub.net/viewthread.php?tid=673323&extra=&page=1">http://www.itpub.net/viewthread.php?tid=673323&extra=&page=1</a>