1.7.3.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';
1.7.3.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;--指定備份日誌檔案副本數
1.7.3.3備份備份集
backup backupset
1.7.3.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';
RMAN> backup as copy
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;
1.7.3.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;
1.7.3.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;
1.7.3.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; --查詢備份情況
--下面啟用級差異增量備份
RMAN> run{
2> allocate channel ch1 type disk;
3> backup incremental level 1 database
4> format '/u01/app/oracle/rmanbak/db1_%d_%U'
5> tag=db_inc_1;
6> release channel ch1;
7> }
--下面啟用級累計增量備份
RMAN> run{
2> allocate channel ch1 type disk;
3> backup incremental level 1 cumulative database
4> format '/u01/app/oracle/rmanbak/dbc_%d_%U'
5> tag=db_inc_c_1;
6> release channel ch1;
7> }
1.7.3.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;
STATUS FILENAME BYTES
---------- --------------------------------------------- ----------
DISABLED
1.7.3.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;