一、RMAN備份形式
1、鏡像復制(Image CopIEs)
鏡像復制實際上就是數據文件、控制文件或歸檔文件的復制,與用戶通過操作系統命令建立的文件復制實質一樣,只不過RMAN是利用目標數據庫中的服務進程來完成文件復制,而用戶則是用操作系統命令。所以鏡像復制的方式體現不出RMAN的優勢,也並非我們討論的重點,大家了解一下即可(啥?想知道鏡像復制咋用?卡,問村長去~~~~~)。
2、備份集(Backup Sets)
備份集是通過RMAN創建的邏輯備份對象。一個備份集中可以包含多個數據文件、控制文件或歸檔文件。備份集在物理上是由多個備份片段組成,每個備份片段是一個操作系統文件。
二、RMAN命令執行方式
在進入演練之前,大家還有必要了解運行rman命令的方式,就目前已知的情況,共有4種運行方式。
1、單個執行(沒啥說的,之前的示例都是這種方式)
RMAN>backup database;
2、批處理(呵呵,跳票的補上)
RMAN>RUN{
.......................
.......................
}
批處理方式實質是將原來單個執行的命令組合到一起,並放在run{}之間,這種方式最大的好處是所有在run中的命令被視為一個作業,如果作業中任何一條命令執行失敗,則整個命令停止執行,即失敗命令後的其它命令都不會再被執行。這種方式是最常使用的方式,特別對於後台執行。
3、運行腳本(又能細分為幾種方式如下:)
C:\>rman TARGET / @backup_db.rman
RMAN> @backup_db.rman
RMAN> RUN { @backup_db.rman }
運行存儲在恢復目錄中的腳本(需要首先為rman創建恢復目錄)
RMAN> RUN { EXECUTE SCRIPT backup_whole_db };
看看,夠靈活吧。
4、操作系統腳本(Linux,Windows環境下小有差異,但只是操作系統命令的不同)
C:\>rman cmdfile=backup_db.rman
明眼人看的出來,後兩種其實是前面兩種加上操作系統命令的綜合應用。
三、對數據庫進行全備
1、使用backup database命令執行備份
RMAN> BACKUP DATABASE;
執行上述命令後將對目標數據庫中的所有數據文件進行備份,由於沒有顯式指定FORMAT參數,rman會自動為每個備份片段命名,並保存在Oracle_HOME/database目錄下。
當然,也可以通過顯式指定format參數來自定義備份片段的命令規則,比如:
RMAN> BACKUP DATABASE FORMAT 'D:\BACKUP\%U';
(關於%U的格式說明,請參考本篇外傳。Ooo,外傳好像還沒寫,沒關系沒關系,大家表著急,我保證大家在有生之年一定等的到的。)
2、通過list命令查看剛剛創建的備份信息:
RMAN> list backup of database;
正在使用目標數據庫控制文件替代恢復目錄
備份集列表
===================
BS 關鍵字 類型 LV 大小 設備類型 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
11 Incr 0 827M DISK 00:01:30 26-6月 -07
BP 關鍵字: 11 狀態: AVAILABLE 標記:TAG20070629T150701
段名:D:\BACKUP\0CILGG8L_1_1
備份集 11 中的數據文件列表
文件 LV 類型 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ---------- ----
1 0 Incr 5233577896 26-6月 -07 F:\ORAHOME1\ORADATA\JSSWEB\SYSTEM01.DBF
2 0 Incr 5233577896 26-6月 -07 F:\ORAHOME1\ORADATA\JSSWEB\UNDOTBS01.DBF
3 0 Incr 5233577896 26-6月 -07 F:\ORAHOME1\ORADATA\JSSWEB\DRSYS01.DBF
4 0 Incr 5233577896 26-6月 -07 F:\ORAHOME1\ORADATA\JSSWEB\EXAMPLE01.DBF
5 0 Incr 5233577896 26-6月 -07 F:\ORAHOME1\ORADATA\JSSWEB\INDX01.DBF
6 0 Incr 5233577896 26-6月 -07 F:\ORAHOME1\ORADATA\JSSWEB\ODM01.DBF
7 0 Incr 5233577896 26-6月 -07 F:\ORAHOME1\ORADATA\JSSWEB\TOOLS01.DBF
8 0 Incr 5233577896 26-6月 -07 F:\ORAHOME1\ORADATA\JSSWEB\USERS01.DBF
9 0 Incr 5233577896 26-6月 -07 F:\ORAHOME1\ORADATA\JSSWEB\XDB01.DBF
10 0 Incr 5233577896 26-6月 -07 F:\ORAHOME1\ORADATA\JSSWEB\JWEB.ORA;
四、備份表空間
只要實例啟動並處於加載狀態,不論數據庫是否打開,都可以在rman中對表空間進行備份,而且不需要像手動備份那樣先'ALTER TABLESPACE ... BEGIN BACKUP'。例如:
RMAN> backup tablespace jweb;
啟動 backup 於 26-6月 -07
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在啟動 full 數據文件備份集
通道 ORA_DISK_1: 正在指定備份集中的數據文件
輸入數據文件 fno=00010 name=F:\ORAHOME1\ORADATA\JSSWEB\JWEB.ORA
通道 ORA_DISK_1: 正在啟動段 1 於 26-6月 -07
通道 ORA_DISK_1: 已完成段 1 於 26-6月 -07
段 handle=F:\ORAHOME1\DATABASE\0JIM0BBV_1_1 comment=NONE
通道 ORA_DISK_1: 備份集已完成, 經過