1.并發:主要用于提高備份的速度,可以分為手動并發或自動并發
手動并發:通過配置設定多個通道并将檔案指定到特定的通道
RMAN> run {
2> allocate channel ch1 device type disk;
3> allocate channel ch2 device type disk;
4> allocate channel ch3 device type disk;
5> backup incremental level=0
6> format '/u01/app/oracle/rmanbak/df_%d_%U'
7> (datafile 1 channel ch1 tag='sys')
8> (datafile 3 channel ch2 tag='aux')
9> (datafile 2,4,5,6 channel ch3 tag='other');
10> sql 'alter system archive log current';
11> release channel ch1;
12> release channel ch2;
13> release channel ch3;
14> }
自動并發:使用configure配置并發度即可
RMAN> configure device type disk parallelism 3 backup type to backupset;
--下面的備份将自動啟用個通道執行并發
RMAN> backup database format '/u01/app/oralce/rmanbak/p3_%U';
2.複用備份
即将一個備份集複制多份,同一備份集,Oracle最多可複用個
手工指定:
RMAN> backup copies 2 datafile 4
2> format '/u01/app/oracle/rmanbak/d1/df_%U',
3> '/u01/app/oracle/rmanbak/d2/df_%U';
自動指定:配置下列參數
RMAN> configure datafile backup copies for device type disk to 2; --指定備份資料檔案副本數
RMAN> configure archivelog backup copies for device type disk to 2;--指定備份日志檔案副本數
3.備份備份集
bacup backupset
4.鏡像備份
鏡像備份時會檢查資料檔案中是否存在壞塊,可以使用nochecksum來跳過壞塊的檢測
也可以指定maxcorrupt判斷有多少個壞塊時,Oracle将停止該鏡像備份
RMAN> backup as copy
2> datafile 4 format '/u01/app/oracle/rmanbak/users.dbf' tag='users'
--以下指令等同于上一條
RMAN> copy datafile 4 to '/u01/app/oracle/rmanbak/user01.dbf';
2> archivelog like 'o1_mf_1_118_6chl1byd_.arc'
3> format '/u01/app/oracle/rmanbak/arch_1015.bak';
--使用下面的configure指令将backup type設定為copy之後,則預設的備份為鏡像副本
RMAN> configure device type disk parallelism 1 backup type to copy;
RMAN> backup datafile 4 --由于上面的設定,則此指令備份的将是鏡像副本
2> format '/u01/app/oracle/rmanbak/users.dbf.bak' tag=users;
--使用并行度來執行鏡像拷貝
RMAN> configure device type disk parallelism 4;
RMAN> backup as copy #3 files copied in parallel
2> (datafile 1 format '/u01/app/oracle/rmanbak/df1.bak')
3> (datafile 2 format '/u01/app/oracle/rmanbak/df2.bak')
4> (datafile 3 format '/u01/app/oracle/rmanbak/df3.bak');
鏡像備份時指定子句DB_FILE_NAME_CONVERT來實作鏡像路徑轉移,該子句也是一個初始化參數,用于primary db 到standby db
的資料檔案的轉換
DB_FILE_NAME_CONVERT = ('string1' , 'string2' , 'string3' , 'string4' ...)
用string2替換string1,string4替換string3
RMAN> backup as copy device type disk
2> db_file_name_convert('oradata/orcl','bk/rmbk')
3> tablespace users;
5.壓縮備份集
RMAN> configure channel device type disk format '/u01/app/oracle/rmanbak/%d_%U.bak';
--下面的指令使用了參數as compressed來實作手動壓縮
RMAN> backup as compressed backupset database;
RMAN> backup as compressed backupset datafile 4,5,6;
--下面使用configure指令配置自動壓縮備份集功能,則後續的備份會自動使用壓縮功能
RMAN> configure device type disk parallelism 4 backup type to compressed backupset;
--由于設定了自動壓縮,則下面的指令将壓縮備份的system表空間及控制檔案、參數檔案
RMAN> backup tablespace system tag=system;
6.使用tag标記
tag标記可以為備份集或映像副本指定一個有意義的名字,以備後續使用,其優點如下
為備份集或映像副本提供描述資訊
能夠在list 指令中使用更好的定位備份檔案
能夠在restore和switch指令中使用
同一個tag在多個備份集或多個映像副本中使用
當未指定tag标記時,則系統産生預設的tag标記,其格式為:TAGYYYYMMDDTHHMMSS
RMAN> backup as compressed backupset datafile 1,2,3 tag='Monthly_full_bak';
RMAN> backup as compressed backupset tablespace users tag='Weekly_full_bak';
RMAN> list backupset tag=monthly_full_bak;
7.增量備份
差異增量備份将備份自上次增量備份以來所有發生改變的資料塊
累計增量備份将備份自上次級增量備份以來所有改變過的資料塊
--下面啟用級增量備份
RMAN> run{
2> allocate channel ch1 type disk;
3> backup incremental level 0 database
4> format '/u01/app/oracle/rmanbak/db_%d_%U'
5> tag=db_inc_0;
6> release channel ch1;
7> }
SQL> select sid,sofar,totalwork from v$session_longops; --查詢備份情況
--下面啟用級差異增量備份
3> backup incremental level 1 database
4> format '/u01/app/oracle/rmanbak/db1_%d_%U'
5> tag=db_inc_1;
--下面啟用級累計增量備份
3> backup incremental level 1 cumulative database
4> format '/u01/app/oracle/rmanbak/dbc_%d_%U'
5> tag=db_inc_c_1;
8.啟用塊變化跟蹤
啟用塊變化跟蹤即是指定一個檔案用于記錄資料檔案中哪些塊發生了變化,在RAMN進行增量備份時,僅僅需讀取該檔案來備份這些
發生變化的塊,進而減少了備份時間和I/O資源。
使用下面的指令來啟用塊變化跟蹤
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '<dir>'
SQL> alter database enable block change tracking
2 using file '/u01/app/oracle/oradata/orcl/blk_ch_trc.trc';
SQL> ho ls -lht /u01/app/oracle/oradata/orcl/blk_ch_trc.trc
-rw-r----- 1 oracle oinstall 12M Oct 15 19:41 /u01/app/oracle/oradata/orcl/blk_ch_trc.trc
SQL> select * from v$block_change_tracking;
STATUS FILENAME BYTES
---------- --------------------------------------------- ----------
ENABLED /u01/app/oracle/oradata/orcl/blk_ch_trc.trc 11599872
SQL> alter database disable block change tracking; --disable後塊變化跟蹤檔案被自動删除
SQL> select * from v$block_change_tracking;
DISABLED
9.備份保留政策
保留政策主要是保留備份副本的一些規則,通常用于滿足恢複或其他的需要(比如磁盤空間或錄音帶空間大小限制)
備份保留政策分為備援和恢複視窗,這兩種保留政策互不相容,要麼使用前者,要麼使用後者
備份備援
預設為,可以通過RMAN> configure retention policy to redundancy 2;來修改
當為時,RMAN會為每個資料檔案、歸檔日志、控制檔案生成一個備份。可以使用report obsolete指令檢視備份數多于的備份
并使用delete obsolete來删除過時的備份
恢複視窗
恢複視窗允許完成恢複到過去某個時間點的時點恢複,通常設定為多少天
使用指令RMAN> configure retetion policy to recovery window of 7 days
該指令将確定具有足夠的資料檔案和歸檔日志來執行能夠傳回一個星期中任意時間點的不完全恢複,且允許删除随着時間推移
而變為廢棄的備份,即應當滿足該條件:SYSDATE - BACKUP CHECKPOINT TIME >= 7
對于大于天但是是恢複所需要的備份依然會被保留
清除備份保留政策
RMAN> configure retention policy clear;
注意obsolete 與expired
obsolete:是指根據保留政策來确定該備份是否在恢複的時候需要,如不在需要或有更新的備份來替代,則該備份集被置為
obsolete,即廢棄的備份集或鏡像副本。
expired: 是指執行crosscheck時,根據存儲倉庫中記錄的備份資訊來定位備份集或鏡像副本,而找不到對應的備份集或鏡像副
本,則這些備份集或鏡像副本被置為expired。
10.使用BACKUP ... VALIDATE驗證資料檔案邏輯壞塊,損壞的壞塊将被記錄到v$database_block_corruption視圖
BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL;