Oracle備份之RMAN工具(四)

fengpinDBA發表於2013-11-27

五、RMAN的備份命令

RMAN工具的使用涉及到引數配置和執行命令。

1.        永久引數配置

RMAN的引數配置分為永久引數和臨時引數配置,永久引數類似於資料庫的引數檔案,通過CONFIGURE命令配置,配置內容存放在控制檔案中;臨時引數檔案只是在批量指令碼中通過命令臨時指定。如果在批量指令碼中指定了與永久引數配置相同的屬性,那麼批量指令碼中指定的屬性優先順序更高。

?  檢視配置

RMAN> show all;

執行show all命令檢視的是永久引數配置,也可以執行類似於“show retention policy”的命令檢視某一項永久引數的配置(以#default結尾的都是表示預設值)。

?  修改配置

執行CONFIGURE命令可以修改RMAN的永久引數配置

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR TYPE DISK TO ‘%F’;

指定控制檔案的備份路徑和格式。

RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 4;

指定預設的並行度。

RMAN> CONFIGURE DEFAULT DEVICE TO SBT;

指定預設備份到磁帶。

RMAN> CONFIGURE ARCHIVELOG BACKUUP COPIES FOR DEVICE TYPE DISK TO 2;

指定預設包括兩份拷貝。

?  恢復預設配置

如果要恢復一個永久引數的預設值可以使用CONFIGURE……CLEAR命令清空現有配置:

RMAN> CONFIGURE RETENTION POLICY CLEAR;

?  有關永久引數配置的資料字典

查詢V$RMAN_CONFIGURATION檢視可以得到發生改變的RMAN永久引數配置。

        永久引數的常用配置:

l   冗餘策略

RMAN可以配置兩種型別的冗餘策略:備份數和恢復視窗。

所謂備份數就是資料庫物理檔案保留的備份個數,備份中所有超過了備份數的較舊的檔案備份都認為是過期的備份,執行如下命令修改RMAN預設的備份數:

RMAN> configure retention policy to redundancy 2;

恢復視窗就是保證資料能夠恢復到多少天以內的任何時候,下面配置表示資料庫能夠恢復到7天以內的任何時候:

RMAN> configure retention policy to recovery window of 7 days;

主要:設定恢復視窗一定要保證control_file_record_keep_time引數值設定大於或等於RMAN中配置的retention policy的值,以確保控制檔案中保留的後設資料準確。

l   備份優化

如果離線或只讀的資料檔案包含在最近的備份中,或者包含在恢復視窗的時間內的備份中,那麼RMAN就會跳過離線和只讀檔案的備份,這就是備份優化。如下命令為開啟備份優化開關:

RMAN> configure backup optimization on;

l   通道配置

控制備份片大小(原因:如果一個備份集中含有多個備份片,那麼在還原的時候還需要話費更長的時間將備份集中的備份片合併才能執行還原操作):

可以通過一下命令設定備份片的最大容量為2G

RMAN> configure channel device type disk maxpiecesize 2G;

永久通道引數配置:

通道的分配可以採用RMAN自動分配,也可以通過在RUN塊中手動分配。使用自動分配都需要配置通道的永久引數,如下配置永久通道引數命令:

RMAN> configure channel device type disk format ‘/bak/oracle/%U.bak’;

手動通道引數配置:

RUN塊批量命令中,可以使用allocate channelrelease channel手動分配和釋放通道:

RMAN> run {

Allocate channel c1 type disk format=’/bak/oracle/%U.bak’;

Release channel c1;

}

l   備份拷貝數配置

為不同檔案型別的備份設定大於1的備份拷貝數,可以實現在備份的時候同時備份到多個不同的目的地。

步驟1 顯示當前資料檔案備份拷貝數:

RMAN> show datafile backup copies;

步驟2 備份資料檔案,同時指定到兩個目錄:

RMAN> backup datafile 4 format ‘/u01/back/%U’,’/u02/back/%U’;

注意:由於當前資料檔案備份數為1,所以即使在備份的時候指定了兩個目的地,實際上也只有一個目的地產生了備份集:

步驟3 修改資料檔案備份數為2

RMAN> configure datafile backup copies for device type disk to 2;

步驟4 備份資料檔案並配置歸檔Redo日誌檔案,同時指定兩個目錄:

RMAN> backup datafile 4 format ‘/u01/%U’,’/u02/%U’;

RMAN> configure archivelog backup copies for device disk sbt to 2;

l   快照控制檔案

快照控制檔案可以看作是一個控制檔案的備份,執行如下命令檢視快照控制檔案的位置:

RMAN> show snapshot controlfile name;

l   將閃回恢復區備份到磁帶

備份閃回恢復區到磁帶(只能備份到磁帶上):

RMAN> backup recovery area;

刪除磁帶上違反備份策略的備份:

RMAN> delete obsolete device type sbt;

2.        RMAN中常用的命令

?  RMAN語法檢查

在不確定RMAN的命令語法是否正確時,這個功能非常有用,避免出現誤操作的情況。

1)   rman命令後面跟上checksyntax引數啟動語法檢查

$ rman checksyntax

2)   輸入測試命令

RMAN> run [ backup database; ]

3)   執行批量命令檢查

rman checksyntax @filename

filename對應的是一個檔案,檔案中可以儲存大量包含rman命令,使用這種方式對rman批量指令碼進行檢查非常有用。

?  perview選項

restore命令的perview選項能夠確定完成特定還原操作所需要的備份和Redo日誌,這對於判斷是否能完成restore操作來說非常有用。這個功能將生成類似於list命令相同格式的輸出。另外perview summary選項能用於產生類似list summary命令相同格式的概要報告。

1)   顯示用於還原System表空間資料檔案的備份檔案:

RMAN> restore datafile 2 perview;

2)   顯示使用者還原特定表空間的備份檔案:

RMAN> restore tablespace users perview;

3)   顯示執行全資料庫還原的概要資訊:

RMAN> restore database perview summary;

?  LIST命令

RMANlist命令是RMAN的列表命令,常用於列出備份的詳細資訊、備份集的概要資訊、過期備份等。

1)   列出備份概要:

RMAN> list backup summary;

2)   列出備份集概要:

RMAN> list backupset summary;

3)   列出過期的備份:

RMAN> list expired backup;

注意:list expired backup命令一般與crosscheck命令配合使用,先執行crosscheck檢查命令,再執行此命令檢視過期備份。

?  crosscheck命令

crosscheck命令用於檢查記錄在控制檔案中的備份檔案、歸檔Redo日誌檔案是否物理存在,如果備份檔案不存在,那麼會在控制檔案中記錄此檔案為expired,之後可以通過deleted命令刪除這些過期的備份記錄,如下操作:

1)   交叉檢查後設資料對應的備份檔案是否存在:

RMAN> crosscheck backup;

2)   交叉檢查後設資料對應的歸檔Redo日誌檔案是否存在:

RMAN> crosscheck archivelog all;

3)   使用LIST命令檢視過期的備份、歸檔Redo日誌檔案:

RMAN> list expired backup;

RMAN> list expired archivelog all;

RMAN> list expired backup summary;

4)   刪除過期備份

RMAN> delete [noprompt] expired backup;

?  report命令

RMANreport命令是RMAN的報告命令,常用於報告過期的備份、需要執行的檔案備份、資料檔案資訊等。

1)   報告資料庫資料檔案資訊:

RMAN> report schema;

2)   根據冗餘策略,報告需要備份的資料庫檔案:

RMAN> report need backup;

3)   報告違反冗餘策略的備份:

RMAN> report obsolete;

?  validate用法

validate工具用於驗證備份集的完整性,判斷備份是否損壞,還可以用於驗證歸檔Redo日誌檔案、資料檔案、資料檔案拷貝的完整性等。

1)   backup validate…命令用於備份前驗證資料檔案和歸檔Redo檔案的完整性:

RMAN> backup validate database;

RMAN> backup validate archivelog all;

這個命令只用於對資料檔案、Redo日誌檔案完整性的驗證,不會有任何備份檔案被輸出。

2)   validate…命令用於驗證備份集的完整性:

RMAN> validate backupset 51;

RMAN> validate datafile 4;

3)   restore validate命令主要用於驗證還原操作用到的備份檔案的完整性:

RMAN> restore database until scn 12039849 validate;

?  delete命令

delete命令是RMAN中常用的刪除命令,主要用於刪除備份、刪除歸檔等工作。推薦使用delete命令刪除備份或歸檔,而不要直接從系統級別刪除備份或歸檔。一方面是從系統級別刪除備份或歸檔容易造成誤操作;另一方面就是從作業系統級別執行刪除備份命令,Oracle資料庫使用的空間可能不會得到立即釋放。如下常用命令:

1)   刪除指定的備份片:

RMAN> delete backuppiece 101;

2)   刪除指定的控制檔案拷貝:

RMAN> delete controlfilecopy ‘/tmp/control01.ctl’;

3)   刪除磁帶裝置上的users表空間的備份:

RMAN> delete backup of tablespace users device type sbt;

4)   刪除通過crosscheck命令標記為過期的備份檔案:

RMAN> delete expired backup;

5)   刪除違反備份策略的備份:

1 刪除違反永久引數備份策略的備份:

RMAN> delete [ noprompt ] obsolete;

2 刪除冗餘度大於3的備份:

RMAN> delete obsolete redundancy = 3;

3 刪除資料庫恢復到7天內任何時間點不需要的備份:

RMAN> delete obsolete recoverywindow of 7 days;

6)   刪除指定序列的歸檔

RMAN> delete noprompt archivelog until sequence = 300;

3.        多通道配置

多通道特性主要的3方面作用:

?  能夠確保在不同的裝置、不同的位置上同事執行相同的操作。

?  RAC環境中,存放歸檔Redo日誌檔案可能並非共享儲存,只有節點自身能訪問歸檔儲存裝置,這是需要用不同的通道連線到不同的例項處理歸檔Redo日誌。

?  多通道並行操作能減少備份、恢復等話費的時間。

?  多通道引數配置

1)   永久通道引數配置

RMAN> configure channel device type disk format ‘/tmp/%U’;

RMAN> configure channel n device type disk format ‘/u01/bak/%U.bak’;

RMAN> configure channel n device type disk format ‘use_db_recovery_file_dest/%U.bak’;

其中,n表示通道的編號,可以預設配置多個通道。如果format不指定具體路徑,那麼閃回恢復區將作為備份的儲存路徑,也可以明確指定USE_DB_RECOVERY_FILE_DEST關鍵字來使用閃回恢復區作為儲存位置。

注意:永久配置中指定的多通道並不能操作並行度,永久引數配置的並行度是由parallelism引數決定的。

2)   臨時通道引數配置

執行一下命令在run塊中分配多個通道:

RMAN> run {

allocate channel c1 type disk format=’/u01/backup/%U.bak’;

allocate channel c2 type disk format=/u02/backup/%U.bak’;

release channel c1;

release channel c2;

}

注意:在永久引數中可以配置多個通道,即使在永久引數中配置了兩個永久性通道,也並不意為著並行度是2,決定並行度的引數是parallelism引數值;而手動分配的通道直接決定了備份的並行度,所以雖然都是通道配置,但是兩種不同的配置方式是有區別的。

?  通道的其它配置

1)   不同的通道分配不同的裝置型別

RMAN> run {

allocate channel c1 device type disk format ‘xxx’;

allocate channel c2 device type disk format ‘xxx’;

backup database;

}

2)   不同的通道連線到不同的例項

RAC環境中,每個節點的歸檔Redo日誌不要求一定存放在共享儲存中,可以存放到本地磁碟或儲存中的非共享磁碟中。由於只有例項自己能夠識別到歸檔目的地,所以在執行與歸檔相關的操作的時候必須使用通道的connect引數連線到不同的例項。如下是不同的通道連線到不同的例項執行歸檔備份的例子:

RMAN> run {

allocate channel 1 device type disk connect ‘sys/oracle@node_1’;

allocate channel 2 device type disk connect ‘sys/oracle@node_2’;

backup archivelog all;

release channel c1;

release channel c2;

}

?  RMAN效能提升

提升RMAN的效能最主要的手段是根據伺服器的配置情況並行執行RMAN備份、恢復操作。RMAN效能提升主要有兩個手段,分別是多路複用和多通道。

所謂多路複用表示允許使用單個RMAN通道在備份進行期間並行讀取資料庫檔案,並且將這些資料庫檔案的內容寫到同一個備份集中。多路複用由filespersetmaxopenfilers兩個引數中較小的一個值決定。Filesperset在執行backup命令的時候指定,maxopenfileers在分配通道的時候指定。

提升RMAN效能的另一個途徑就是增加通道,提高備份的並行度,兩種手段雙管齊下能夠最大程度的提高rman備份、恢復的效能。

4.        歸檔Redo日誌刪除策略

?  配置歸檔Redo日誌刪除策略

步驟1 檢視RMAN中配置的Redo日誌刪除策略

RMAN> show all;

CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default

預設歸檔刪除策略沒有啟用。

步驟2 啟用歸檔日誌刪除策略:

RMAN> configure archvielog deletion policy to backed up 1 times to disk;

配置歸檔Redo刪除策略,只要求歸檔Redo日誌備份一次到磁碟之後級允許被刪除。

?  歸檔Redo日誌刪除策略測試1

步驟1 檢視系統當前的歸檔Redo日誌檔案

SQL> ! ls –al /u01/app/oracle/fast_recovery_area/RACTEST/archivelog/2013_11_26

步驟2 備份所有的歸檔日誌Redo日誌檔案,同時刪除已備份的歸檔Redo日誌檔案:

RMAN> backup archvielog all delete all input;

注意:在RAC環境中,delete all input表示刪除所有節點輸入的歸檔Redo日誌,delete input表示只刪除target資料庫的的歸檔日誌,all關鍵字表示RAC所有節點。

步驟3 再次檢視系統歸檔Redo日誌檔案,發現已被刪除:

SQL> ! ls –al /u01/app/oracle/fast_recovery_area/RACTEST/archivelog/2013_11_26

?  歸檔Redo日誌刪除策略測試2

步驟1 修改歸檔Redo日誌刪除策略,要求備份到磁碟的歸檔Redo日誌有兩份才可以刪除

RMAN> configure archvielog delete policy to backed up 2 times to disk;

步驟2 檢視系統當前的歸檔Redo日誌檔案:

SQL> ! ls –al /u01/app/oracle/fast_recovery_area/RACTEST/archivelog/2013_11_26

步驟3 備份所有的歸檔Redo日誌檔案,同事刪除已備份的歸檔Redo日誌檔案

RMAN> backup archivelog all delete all input;

步驟4 檢視系統當前歸檔Redo日誌檔案,歸檔Redo日誌檔案未被刪除

SQL> ! ls –al /u01/app/oracle/fast_recovery_area/RACTEST/archivelog/2013_11_26

?  歸檔Redo日誌刪除策略測試3

步驟1 將歸檔Redo日誌備份策略修改為備份一次到磁碟即允許刪除:

RMAN> configure archivelog deletion policy to backed up 1 times to disk;

步驟2 再次備份歸檔Redo日誌:

RMAN> backup archvielog all;

5.        二進位制壓縮

?  基礎壓縮演算法

壓縮演算法

壓縮效能

BZIP2

良好的壓縮比率

BASIC

良好的壓縮比率

如下命令為配置永久引數壓縮演算法:

RMAN> configure compression algorithm ‘BASIC’;

?  高階壓縮演算法

壓縮演算法

壓縮效能

效能優勢的權衡

LOW

最快的壓縮速度

對備份吞吐量影響最大

ZLIB

在速度和壓縮率之間進行平衡

 

MEDIUM

在速度和壓縮率之間進行平衡

大多數環境推薦的級別,是壓縮比率和速度最好的結合

HIGH

最大壓縮率

最適合通過緩慢的網路類備份,限制因素就是網路速度

?  壓縮演算法資料字典

通過查詢11gV$rman_compression_algorithm檢視可以瞭解支援的演算法

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29339097/viewspace-1061185/,如需轉載,請註明出處,否則將追究法律責任。

相關文章