使用RMAN備份資料庫
Oracle推薦的資料庫備份和恢復工具是RMAN(恢復管理器,Recovery Manager)。不是必須要使用RMAN,Oracle支援透過使用作業系統實用程式來建立備份和執行恢復,但RMAN有著其它產品無法比擬的功能,以下列舉幾條採用RMAN備份的優點:
1、恢復過程是智慧的,不需要考慮用哪些備份檔案來恢復,系統自動選擇和管理;
2、支援增量備份,只備份更改的資料塊,而不用每次都去做完整備份,可以顯著減少備份花費的時間和空間;
3、支援加密備份,保證備份資料的安全性,這對於儲存在可移動裝置上的資料備份很有必要;
4、支援靈活選擇的表空間備份、資料檔案備份、控制檔案備份及歸檔日誌檔案備份等;
5、強大的管理命令和報表功能可以方便的查詢和管理備份;
6、RMAN的備份恢復操作與OS無關,是跨平臺的。
一、RMAN備份的概念和術語
用作業系統命令執行的備份被稱為使用者管理的備份,而使用RMAN執行的備份則被稱為伺服器管理的備份。在執行伺服器管理的備份前,總體上需要考慮以下三種備份策略:
關閉狀態還是開啟狀態?
全部備份還是區域性備份?
完整備份還是增量備份?
關閉狀態的備份在資料庫關閉期間執行,也稱為冷備份、一致備份、離線備份,開啟狀態的備份在資料庫使用期間執行,也稱為熱備份、非一致備份、聯機備份。開啟狀態的備份只能在資料庫處於歸檔日誌模式下執行。如果資料庫處於非歸檔日誌模式,則只能進行關閉狀態的備份。在大部分情況下,區域性備份也必須在資料庫處於歸檔日誌模式下才能進行。增量備份可以是累積增量備份(包括自上一次完整備份以來更改的所有塊)或差異增量備份(包括自上一次增量備份以來更改的所有塊)。
RMAN可備份的檔案型別為:
資料檔案
控制檔案
伺服器初始化引數檔案spfile
歸檔重做日誌檔案
備份集片
RMAN不能備份的檔案包括:
臨時檔案
聯機重做日誌檔案
口令檔案
靜態引數檔案pfile
Oracle Net配置檔案
RMAN可生成三類備份:
備份集(backup set):備份檔案的專用格式,一個備份集檔案可包含多個資料庫檔案的備份;
壓縮備份集(compressed backup set):與備份集內容相同,但RMAN在寫出到備份集時將應用壓縮演算法;
映像副本(image copy):是與輸入檔案相同的備份檔案,映像副本可與源內容立即交換,與備份集檔案相比,還原時不需要從備份集中提取檔案。
RMAN備份和還原操作由被稱為通道(channel)的伺服器程式執行。通道可分為磁碟型別(可訪問磁碟上的備份)或SBT_TAPE型別(可訪問磁帶上的備份)。
RMAN儲存庫(repository)是有關備份的後設資料,儲存庫一般儲存在目標資料庫的控制檔案中,也可以儲存在被稱為目錄資料庫中的一組表中。當進行多個不同資料庫的備份時,可單獨構建一個目錄資料庫來儲存RMAN備份的後設資料。
RMAN操作由RMAN可執行程式啟動、監視和控制,可有三種連線資料庫的方式:
目標資料庫(target):需要備份、還原和恢復的資料庫;
目錄資料庫(catalog):用於備份多個目標資料庫;
輔助資料庫(auxiliary):透過目標資料庫的備份建立的資料庫。
二、伺服器管理的離線備份
伺服器管理的離線備份是在資料庫關閉後執行的備份,也稱為冷備份、一致備份。對於非歸檔日誌模式的資料庫,備份時只能採用此模式。
只有資料庫處於載入模式時才能執行RMAN一致備份。其原因在於,RMAN需要讀取控制檔案,以便查詢資料檔案。如果在載入模式下嘗試執行使用者管理的作業系統備份,則將無效,因為在載入模式中,當複製控制檔案時可能已對控制檔案執行了寫操作,這樣一來副本就變的不一致了,因而失去了作用。RMAN透過獲取控制檔案的讀一致性快照並對其進行備份,避免此問題的發生。
有三種使用RMAN的技術:
互動介面:用於執行即席任務;
指令碼介面:透過作業系統的排程程式執行作業;
Enterprise Manager介面:用於生成指令碼,定義由Enterprise Manager排程的作業。
典型的離線-全部-完整備份的指令碼如下
run {
shutdown immediate;
startup mount;
allocate channel d1 type disk;
backup as compressed backupset database format 'd:\rman_bak\mes\%d_%u_%c_%T';
alter database open;
}
%d:資料庫ID;
%u:產生唯一的檔名稱;
%c:第幾份備份;
%T:備份時間。
該指令碼首先關閉資料庫例項並重啟到載入模式,之後分配一個磁碟備份的通道(disk表示是磁碟通道,另外還有一種備份通道是磁帶sbt_tape),然後啟動壓縮備份命令完成全庫備份(包括資料檔案、控制檔案和spfile檔案的備份),並指定了備份檔案的目標位置和檔名格式,備份完畢後開啟資料庫。
如將其儲存為指令碼檔案offline_full_whole.rman,則可排程如下作業系統命令執行該指令碼
rman target sys/hznj2010@mes @offline_full_whole.rman
注意,命令格式中,指令碼檔名前面要加上@符號,target表示是連線到目標資料庫。
也可以分兩步,先用RMAN連線到目標資料庫,再執行指令碼檔案
C:\Users\Administrator>rman target /
RMAN> @d:\offline_full_whole.rman
在目標位置將生成了兩個備份集檔案,備份集中包含了所有資料檔案、控制檔案和spfile檔案的內容。
三、伺服器管理的聯機備份
在進行開啟狀態的備份時,RMAN可能會在DBWn程式寫入塊時嘗試複製檔案塊,這將導致斷裂塊。斷裂塊在備份中可能是無用的,因為在其更新時複製它會導致副本內部不一致。RMAN會檢測出現的斷裂塊,並重試塊複製,直至獲得一致的版本為止。為獲取控制檔案的讀一致性版本,RMAN建立控制檔案的讀一致性快照副本,這是實際備份的內容。
在建立備份集時,RMAN不會備份未使用的塊,這會節省大量的空間。
典型的聯機-全部-完整備份的指令碼如下
run {
allocate channel d1 type disk;
backup as compressed backupset database format 'd:\rman_bak\mes\%d_%u_%c_%T';
backup as compressed backupset archivelog all delete all input format 'd:\rman_bak\mes\%d_%u_%c_%T';
}
該指令碼命令首先分配一個磁碟寫入的通道程式,之後第一個backup命令備份整個資料庫(資料檔案 、控制檔案及spfile檔案),第二個backup命令備份所有的歸檔日誌檔案,並在備份後將其從磁碟中刪除,進而可以釋放磁碟空間。結果將生成三個備份集檔案,備份集中包含了所有資料檔案、控制檔案、spfile檔案和歸檔日誌檔案的內容,並且備份完成後自動刪除不必再保留的歸檔日誌檔案。
RMAN的有些命令可以是即席的,即可以直接在RMAN命令提示符下執行,而有些命令則只能在RUN指令碼塊中執行,如allocate channel命令需要放入指令碼塊中執行。
備份也可以只針對部分內容進行,如一個表空間、一個單獨的檔案等。
備份一個表空間
RMAN> backup as backupset format 'd:\rman_bak\mes\%d_%u_%c_%T' tablespace cmes;
備份一個資料檔案,可以指定檔案號或檔名
RMAN> backup as backupset format 'd:\rman_bak\mes\%d_%u_%c_%T' datafile 4;
備份一批歸檔日誌檔案,可以使用萬用字元%
RMAN> backup as backupset format 'd:\rman_bak\mes\%d_%u_%c_%T' archivelog like 'D:\oradata\mes\archivelog\ARC_752D1AF3_1_882311480_1%';
備份控制檔案
RMAN> backup current controlfile format 'e:\rman_bak\mes\control_bak\c_%d_%u_%c_%T';
四、增量備份
增量備份分為差異增量備份和累積增量備份。增量備份依賴於包含所有塊的起點時稱之為增量級別(incremental level)0備份,之後差異增量級別1備份將提取自上一個級別1備份以來更改的所有塊,如果沒有介於其間的級別1備份,則提取自上一個級別0備份以來更改的所有塊。而累積增量備份則始終提取自上一個級別0備份以來更改的所有塊,不考慮其間是否存在任何級別1備份。
執行增量級別0備份的RMAN命令如下,備份集將包含所有使用過的塊
RMAN> backup as backupset incremental level 0 database;
以下命令執行差異增量級別1備份,該命令提取自上一個級別1備份以來更改的所有塊,如果沒有執行過級別0備份,則第一次執行級別1的增量備份實際是執行級別0備份
RMAN> backup as backupset incremental level 1 database;
以下命令執行累積增量級別1備份,該命令提取自級別0備份以來更改的所有塊
RMAN> backup as backupset incremental level 1 cumulative database;
可以指定大於1的增量級別,但它們沒有效果,支援它們只是為了與老版本的RMAN相容,因此現在可以不必再使用。
在很多情況下,可能希望增量備份能快一些,這可以透過啟用塊改變跟蹤(block change tracking)來實現。
塊改變跟蹤依賴於啟動一個額外的後臺程式:CTWR(Change Tracking Writer,改變跟蹤寫入器)。這個程式在改變跟蹤檔案中記錄每個已更改的塊的地址。如果啟用了塊改變跟蹤,RMAN將在執行增量備份時讀取改變跟蹤檔案以確定哪些塊需要備份。這比掃描整個資料檔案要快的多。
改變跟蹤檔案預設位置可在初始化引數db_create_file_dest中指定。它的初始大小為10MB,並以10MB的增量增長。改變跟蹤檔案是點陣圖格式,每位包含32個資料塊。啟用塊改變跟蹤會有一個最低的效能開銷,經驗表明這並不重要。要啟用塊改變跟蹤並指定跟蹤檔案的名稱和位置,可使用以下命令
alter database enable block change tracking using file 'd:\oradata\mes\change_tracking.dbf';
要監視塊變更跟蹤的有效性,可查詢檢視v$backup_datafile
col name for a50
col read_radio for a10
select t1.file#, t2.name, t1.datafile_blocks, t1.blocks_read, to_char(round(t1.blocks_read / t1.datafile_blocks, 2) * 100) || '%' read_radio, t1.completion_time
from v$backup_datafile t1 join v$datafile t2 on (t1.file# = t2.file#) and t1.used_change_tracking = 'YES' and t1.incremental_level > 0 order by file#, completion_time;
FILE# NAME DATAFILE_BLOCKS BLOCKS_READ READ_RADIO COMPLETION_TIME
---------- -------------------------------------------------- --------------- ----------- ---------- -------------------
1 D:\ORADATA\MES\SYSTEM01.DBF 65280 1895 3% 2016-12-04 14:58:49
1 D:\ORADATA\MES\SYSTEM01.DBF 65280 1135 2% 2016-12-04 20:58:03
2 D:\ORADATA\MES\UNDOTBS01.DBF 10880 1983 18% 2016-12-04 14:58:49
2 D:\ORADATA\MES\UNDOTBS01.DBF 10880 679 6% 2016-12-04 20:58:03
3 D:\ORADATA\MES\SYSAUX01.DBF 38400 5815 15% 2016-12-04 14:58:49
3 D:\ORADATA\MES\SYSAUX01.DBF 38400 3467 9% 2016-12-04 20:58:03
4 D:\ORADATA\MES\USERS01.DBF 640 1 0% 2016-12-04 14:58:48
4 D:\ORADATA\MES\USERS01.DBF 640 255 40% 2016-12-04 20:58:03
5 D:\ORADATA\MES\CMES01.DBF 12800 1 0% 2016-12-04 14:58:48
5 D:\ORADATA\MES\CMES01.DBF 12800 1 0% 2016-12-04 20:58:03
6 D:\ORADATA\MES\RMES01.DBF 131072 9 0% 2016-12-04 14:58:48
6 D:\ORADATA\MES\RMES01.DBF 131072 13 0% 2016-12-04 20:58:03
7 D:\ORADATA\MES\INDX01.DBF 131072 1 0% 2016-12-04 14:58:48
7 D:\ORADATA\MES\INDX01.DBF 131072 1 0% 2016-12-04 20:58:03
8 D:\ORADATA\MES\HMES01.DBF 64000 1 0% 2016-12-04 14:58:48
8 D:\ORADATA\MES\HMES01.DBF 64000 1 0% 2016-12-04 20:58:03
9 D:\ORADATA\MES\RMES02.DBF 131072 1 0% 2016-12-04 14:58:48
9 D:\ORADATA\MES\RMES02.DBF 131072 1 0% 2016-12-04 20:58:03
10 D:\ORADATA\MES\INDX02.DBF 131072 1 0% 2016-12-04 14:58:48
10 D:\ORADATA\MES\INDX02.DBF 131072 1 0% 2016-12-04 20:58:03
其中DATAFILE_BLOCKS反映的是資料檔案的大小,BLOCKS_READ和READ_RADIO則顯示了每次增量備份讀取的塊數和讀塊比率,如果每次備份這個比率在持續增加,則應考慮更頻繁的執行增量備份。
要檢視是否啟用了塊改變跟蹤,並檢查跟蹤檔案的位置和大小,可查詢檢視v$block_change_tracking
col filename for a50
select * from v$block_change_tracking;
STATUS FILENAME BYTES
---------- ----------------------------------------------- ----------
ENABLED D:\ORADATA\MES\BLOCK_CHANGE_TRACKING.DBF 11599872
確認是否啟用了CTWR伺服器程式(改變跟蹤寫入器),可查詢檢視v$process
select program from v$process where program like '%CTWR%';
PROGRAM
----------------------------------------------------------------
ORACLE.EXE (CTWR)
如果要取消塊改變跟蹤,則命令為
alter database disable block change tracking;
五、其它備份方式
1、映像副本
檔案的映像副本是與資料檔案、控制檔案或歸檔日誌檔案完全相同的副本。結果就好像檔案是用作業系統程式複製的,但機制是不同的,RMAN讀寫Oracle塊,而不是作業系統塊。映像副本備份方式的優點是還原非常快速,因為不需要從備份集中提取檔案。
映像副本可由資料檔案、控制檔案或歸檔日誌檔案組成,但不能由spfile檔案組成。
映像副本的備份命令使用關鍵字copy,如使用以下命令備份整個資料庫,在沒有更改預設配置的情況下,將啟動一個磁碟通道,將所有資料檔案和控制檔案複製到閃回恢復區(同時還會自動生成一個spfile檔案的備份集)
RMAN> backup as copy database;
如要將所有歸檔日誌移入閃回恢復區,則命令為
RMAN> backup as copy archivelog all delete all input;
利用檢視v$backup_files可以查詢備份情況
SQL> select backup_type, file_type, status, fname, tag, df_tablespace, df_file# from v$backup_files;
BACKUP_TYPE FILE_TYPE STATUS FNAME TAG DF_TABLESPACE DF_FILE#
------------- --------------- ------------ --------------------------------------------- --------------------- ------------- --------
COPY DATAFILE AVAILABLE D:\RMAN_BAK\MES\MES_2OQJEQ48_1_20151011 TAG20151011T143448 RMES 6
COPY DATAFILE AVAILABLE D:\RMAN_BAK\MES\MES_2PQJEQ7I_1_20151011 TAG20151011T143448 RMES 7
COPY DATAFILE AVAILABLE D:\RMAN_BAK\MES\MES_2QQJEQBP_1_20151011 TAG20151011T143448 SYSTEM 1
COPY DATAFILE AVAILABLE D:\RMAN_BAK\MES\MES_2RQJEQD7_1_20151011 TAG20151011T143448 SYSAUX 2
COPY DATAFILE AVAILABLE D:\RMAN_BAK\MES\MES_2SQJEQEA_1_20151011 TAG20151011T143448 CMES 5
COPY DATAFILE AVAILABLE D:\RMAN_BAK\MES\MES_2TQJEQEI_1_20151011 TAG20151011T143448 UNDOTBS1 3
COPY CONTROLFILE AVAILABLE D:\RMAN_BAK\MES\MES_2UQJEQEP_1_20151011 TAG20151011T143448 0
COPY DATAFILE AVAILABLE D:\RMAN_BAK\MES\MES_2VQJEQES_1_20151011 TAG20151011T143448 USERS 4
BACKUP SET SPFILE
BACKUP SET PIECE AVAILABLE D:\RMAN_BAK\MES\MES_30QJEQEU_1_20151011 TAG20151011T143448
2、壓縮備份
RMAN支援壓縮方式的備份,使用compressed關鍵字,如下命令將完成資料庫和歸檔日誌的壓縮備份
RMAN> backup as compressed backupset database plus archivelog;
3、保護備份
RMAN支援多重方式的備份,使用關鍵字copies,如下命令將在預設磁碟目標位置生成資料庫及歸檔日誌的兩套備份集
RMAN> backup as backupset device type disk copies 2 database plus archivelog;
也可以對備份集進行備份,如用以下命令可以將備份集轉移備份到其它目標裝置上,並將原來位置的備份刪除
RMAN> backup device type disk format 'd:\shift_bak\%d_%u_%c_%T' backupset all delete all input;
4、加密備份
在有些環境下可能希望需要加密的備份,因為這些備份可能儲存在DBA幾乎無法控制的可移動裝置上。
加密有透明加密和口令加密兩種方式。
1)透明加密
這是RMAN採用的預設方式,基於錢夾(wallet)的使用。這是一個包含用於加密和解密資料的金鑰檔案,其本身用口令保護。這種加密方式適合於只在本機上進行加密備份和恢復,只需要配置好錢夾證照。證照檔案需要妥善保管不可丟失,否則以後無法恢復。
透明加密備份的操作過程如下:
a)首先在Oracle預設的指定位置建立錢夾目錄
%ORACLE_BASE%\admin\<sid>\wallet
b)檢視錢夾狀態,預設是關閉的
SQL> select * from v$encryption_wallet;
WRL_TYPE WRL_PARAMETER STATUS
---------- ------------------------------ ----------
file C:\ORACLE\ADMIN\MES\WALLET CLOSED
c)開啟錢夾,並給證照設定口令。系統可能會報ORA-28374錯誤,這是Oracle的Bug,不用理會
SQL> alter system set encryption key authenticated by "pm1234";
alter system set encryption key authenticated by "pm1234"
*
第 1 行出現錯誤:
ORA-28374: 在 Wallet 中未找到鍵入的主鍵
d)配置RMAN加密備份開啟
RMAN> configure encryption for database on;
舊的 RMAN 配置引數:
CONFIGURE ENCRYPTION FOR DATABASE OFF;
新的 RMAN 配置引數:
CONFIGURE ENCRYPTION FOR DATABASE ON;
已成功儲存新的 RMAN 配置引數
e)之後可進行正常的備份操作。
f)RMAN恢復操作前需要用正確的口令開啟錢夾
SQL> alter system set wallet open identified by "pm1234";
系統已更改。
g)之後可進行正常的恢復操作。如果錢夾未開啟,則恢復過程失敗。
h)如果要取消加密備份功能,則可將RMAN的加密配置重置為預設值
RMAN> CONFIGURE ENCRYPTION FOR DATABASE clear;
舊的 RMAN 配置引數:
CONFIGURE ENCRYPTION FOR DATABASE ON;
RMAN 配置引數已成功重置為預設值
2)口令加密
這是在備份前設定好演算法和金鑰,之後進行正常的備份。加密備份的檔案在恢復操作前需要提供正確的金鑰,否則無法恢復。
透過檢視v$rman_encryption_algorithms可以檢視RMAN支援的加密演算法,預設的加密演算法是AES128
SQL> select * from v$rman_encryption_algorithms;
ALGORITHM_ID ALGORITHM_NAME ALGORITHM_DESCRIPTIO IS_DEFAULT RESTORE_ONLY
------------ --------------- -------------------- ---------- ------------
1 AES128 AES 128-bit key YES NO
2 AES192 AES 192-bit key NO NO
3 AES256 AES 256-bit key NO NO
口令加密備份的操作過程如下:
a)檢視RMAN當前加密演算法,#default表示該項是RMAN的預設設定
RMAN> show encryption algorithm;
db_unique_name 為 MES 的資料庫的 RMAN 配置引數為:
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
b)若需要更改加密演算法,可使用以下命令,如更改為AES256
RMAN> configure encryption algorithm 'aes256';
新的 RMAN 配置引數:
CONFIGURE ENCRYPTION ALGORITHM 'aes256';
已成功儲存新的 RMAN 配置引數
c)可檢視確認加密演算法是否已更改
RMAN> show encryption algorithm;
db_unique_name 為 MES 的資料庫的 RMAN 配置引數為:
CONFIGURE ENCRYPTION ALGORITHM 'aes256';
d)如果要恢復為預設的加密演算法,可使用關鍵字clear
RMAN> configure encryption algorithm clear;
舊的 RMAN 配置引數:
CONFIGURE ENCRYPTION ALGORITHM 'aes256';
RMAN 配置引數已成功重置為預設值
e)設定金鑰並開啟加密
RMAN> set encryption on identified by 'pm1234' only;
正在執行命令: SET encryption
f)之後可開始執行正常的備份操作。
g)恢復操作前,需要提供金鑰,否則無法恢復
RMAN> set decryption identified by 'pm1234';
正在執行命令: SET decryption
h)之後便可進行正常的恢復操作。
5、歸檔備份
在Oracle術語中,歸檔備份指的是希望長時間或永久儲存的備份。通常,建立歸檔備份只是為了滿足有關記錄保留的規定。歸檔備份不理會RMAN配置的保留策略,也不會由delete obsolete命令自動刪除。
建立歸檔備份的語法如下:
backup … keep { forever | until time 'date_expr' } [ restore point rpname ];
其中forever表示永久儲存不過期,until time則指定過期的日期,二者選一。日期表示式可以是實際的日期或計算式。如下命令將生成資料庫的完整歸檔備份,因為是歸檔備份,其中也將包括歸檔日誌
RMAN> backup as compressed backupset database keep until time 'sysdate + 90' restore point quarterly_bak;
六、並行化備份操作
每次使用RMAN時,都至少會對目標資料庫啟動兩個會話,被稱為預設會話和輪詢會話。預設會話是呼叫實現RMAN的核心PL/SQL的會話,輪詢會話監視RMAN操作的進展。當RMAN讀寫磁碟或磁帶時,它將需要第三個會話:通道。透過啟動多個通道來實現備份工作的並行化,可減少備份花費的時間。
RMAN備份時可達到的並行度受通道數和輸入檔案數的限制。考慮下列指令碼
run {
allocate channel t1 type disk;
allocate channel t2 type disk;
allocate channel t3 type disk;
allocate channel t4 type disk;
backup database files per set 8;
}
指令碼中啟動了四個命名的通道,RMAN計算資料庫中的檔案數,並將它們分佈到備份集中,每個備份集不超過8個檔案。如果資料庫由100個資料檔案外加控制檔案構成,那將生成13個備份集,前12個備份集每個包含8個檔案,第13個備份集包含剩下的5個檔案,並行度為4,並行度受通道數限制。但如果資料庫只有20個資料檔案,那將只生成3個備份集,並行度為3,有一個通道閒置,此時的並行度受輸入檔案數的限制。
預設情況下,最大並行度是不會超過輸入檔案數的,因為預設同一時間內,一個通道只能對應一個檔案的讀取,但採用多段備份功能後,一個檔案可以分段同時被多個通道並行訪問。這一應用主要是針對那些單個較大檔案的備份進行的。
多段關鍵字的運用如下指令碼
run {
allocate channel t1 type disk;
allocate channel t2 type disk;
allocate channel t3 type disk;
allocate channel t4 type disk;
backup as backupset datafile 16 section size 10g;
}
該指令碼啟動4個通道,每個通道讀取資料檔案16的一個10g大小的段,每個通道將生成包含段的備份的片(單獨的物理檔案)。假定檔案大小為200G,則將生成20個備份片檔案,一次並行的生成4個。如果沒有section size關鍵字,則並行度將為1,只能用一個通道執行整個操作,而其它三個通道將閒置。
七、配置RMAN備份的預設引數
RMAN備份的預設引數往往並不適合我們的要求,在備份工作開始前可能需要配置好預設的備份引數,一旦這些引數配置好後,備份命令在未指定目標引數情況下將按設定的預設值來進行。
show命令可以檢視RMAN當前配置的預設引數,以下是在未對這些引數設定過的情況下系統的預設取值,使用show all命令顯示了所有配置引數,每一行配置語句結尾標註的#default表明該引數值是系統的預設取值
RMAN> show all;
使用目標資料庫控制檔案替代恢復目錄
db_unique_name 為 MES 的資料庫的 RMAN 配置引數為:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'C:\ORACLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\SNCFMES.ORA'; # default
要調整這些引數的預設值,可使用configure命令,如以下一些設定:
更改控制檔案的備份配置,設為自動備份,並指定備份的目標路徑。這樣在資料庫結構發生改變或做RMAN備份時會自動備份控制檔案,也會備份spfile檔案,這裡%F格式只對自動備份生效,手動備份時指定該引數是無效的
RMAN> configure controlfile autobackup on;
RMAN> configure controlfile autobackup format for device type disk to 'd:\rman_bak\mes\control_bak\%F';
更改資料檔案備份集的目標位置和命名規則
RMAN> configure channel device type disk format 'd:\rman_bak\mes\%d_%u_%c_%T';
更改備份型別由預設的backupset改為copy,使得RMAN的任何備份都不產生備份集,而產生映像副本
RMAN> configure device type disk backup type to copy;
更改預設的備份裝置型別由磁碟disk改為磁帶sbt
RMAN> configure default device type to sbt;
更改磁碟備份的並行數,以下啟動2個通道
RMAN> configure device type disk parallelism 2;
啟用備份最佳化功能,這允許RMAN如果認為有足夠的檔案副本,就不備份特定檔案。最佳化與保留策略有關。預設的保留策略為1,意味著RMAN將試圖至少儲存一個副本。備份最佳化只適用於歸檔日誌和只讀或離線表空間的資料檔案。由於聯機的可讀寫的資料檔案總是在變化,RMAN將不會認為它有相同的副本
RMAN> configure backup optimization on;
更改備份的保留策略,以下將保留策略的冗餘度設定為3,意味著RMAN將試圖儲存3個副本
RMAN> configure retention policy to redundancy 3;
可以設定兩種保留策略,冗餘級別指定應儲存的檔案副本數。另一種策略是設定恢復視窗,以下的備份設定保證可以透過執行時間點恢復回到過去90天中的任意一個時間
RMAN> configure retention policy to recovery window of 90 days;
要將配置的設定恢復為系統預設值,可使用clear命令。如下所示,首先用show命令檢視相關配置資訊,再用clear命令恢復到系統預設值
RMAN> show device type;
db_unique_name 為 MES 的資料庫的 RMAN 配置引數為:
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
RMAN> configure device type disk clear;
舊的 RMAN 配置引數:
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
RMAN 配置引數已成功重置為預設值
RMAN> show device type;
db_unique_name 為 MES 的資料庫的 RMAN 配置引數為:
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
實際上,在這些配置引數中,大多數的預設設定都不需要調整,RMAN就能很好的完成我們期望的備份效果。但要特別留意的是預設備份的目標位置並未體現在這一配置列表中。預設情況下,RMAN磁碟備份的目標位置是閃回恢復區flash_recovery_area,Oracle安裝時它的預設選定位置是在Oracle基目錄%ORACLE_BASE%中,在Oracle安裝時建議調整到其它磁碟位置以提高系統效能。
可以檢視初始化引數db_recovery_file_dest和db_recovery_file_dest_size來檢視閃回恢復區資訊,Oracle 10g中這個區域大小預設是2G,11g中則提升為4G
SQL> show parameter db_recovery_file_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string c:\oracle\flash_recovery_area
db_recovery_file_dest_size big integer 2G
如果閃回恢復區容量不夠,可以調整其大小
SQL> alter system set db_recovery_file_dest_size=4G;
採用閃回恢復區位置存放備份的好處是RMAN可以自動管理該區域,如果閃回恢復區已滿,RMAN將從中自動刪除過時的備份。
在完成以上的配置後,可以用以下一條命令完成資料庫的聯機備份
backup as compressed backupset incremental level 1 database plus archivelog delete all input;
八、管理和監視RMAN備份
一旦生成了一些備份,就需要對這些備份進行管理,如報告已經建立了哪些備份,這些備份包含的內容和狀態怎樣,哪些還需要備份,哪些備份已經無效或多餘可以刪除,如何刪除之前的備份等。
1、list、validate、restore...validate、restore...preview、report、delete和crosscheck命令
list命令列出已建立的備份。
列出備份彙總資訊
RMAN> list backup summary;
列出所有備份集
RMAN> list backupset;
以上也可以使用命令
RMAN> list backup;
檢視單個備份集
RMAN> list backupset 5;
列出所有映像副本
RMAN> list copy;
列出所有資料庫檔案備份集(不包含控制檔案、伺服器初始化引數檔案和歸檔日誌檔案)
RMAN> list backup of database;
列出包含控制檔案的備份集
RMAN> list backup of controlfile;
列出包含伺服器初始化引數檔案的備份集
RMAN> list backup of spfile;
列出所有歸檔日誌檔案備份集
RMAN> list backup of archivelog all;
列出包含日誌切換系列號為1000~1050的歸檔日誌的備份集
RMAN> list backup of archivelog from sequence 1000 until sequence 1050;
列出包含資料檔案1的備份集
RMAN> list backup of datafile 1;
列出包含USERS表空間的備份集
RMAN> list backup of tablespace users;
列出所有歸檔日誌檔案列表
RMAN> list archivelog all;
要改變list輸出資訊中的日期時間格式,可在啟動RMAN前設定作業系統的環境變數nls_date_format,如在Windows下執行命令
C:\> set nls_date_format=yyyy-mm-dd hh24:mi:ss
validate、restore...validate、restore...preview用於驗證備份集的可用性以及驗證和檢視需要的恢復內容是否在備份集中。
驗證備份集的可用性
RMAN> validate backupset 20;
驗證表空間是否在備份集中
RMAN> restore tablespace users validate;
驗證資料檔案是否在備份集中
RMAN> restore datafile 'd:\oradata\mes\system01.dbf' validate;
以上命令也可以使用檔案號來表示
RMAN> restore datafile 1 validate;
檢視恢復整個資料庫的備份是否存在
RMAN> restore database preview;
檢視恢復某個表空間所需的備份是否存在
RMAN> restore tablespace users preview;
檢視恢復某個資料檔案所需的備份是否存在
RMAN> restore datafile 5 preview;
report命令按照設定的保留策略,透過詢問目標資料庫確定哪些需要備份。
列出構成資料庫的資料檔案
RMAN> report schema;
應用保留策略,列出至少需要一個備份來滿足策略的所有資料檔案
RMAN> report need backup;
列出一週未備份的所有物件,使用這一命令將忽略配置的保留策略
RMAN> report need backup days 7;
列出備份數不足2份的資料檔案
RMAN> report need backup redundancy 2;
按照保留策略的冗餘度,列出所有多餘的不再需要而可以刪除的備份
RMAN> report obsolete;
該命令之後可以使用delete命令將多餘的備份刪除
RMAN> delete obsolete;
列出以7天為恢復視窗策略的過期備份
RMAN> report obsolete recovery window of 7 days;
該命令之後可以使用delete命令將多餘的備份刪除
RMAN> delete obsolete recovery window of 7 days;
列出以冗餘度2為冗餘策略的過期備份
RMAN> report obsolete redundancy 2;
該命令之後可以使用delete命令將多餘的備份刪除
RMAN> delete obsolete redundancy 2;
delete命令也可以一次性刪除所有的備份或有選擇性的刪除備份。
刪除所有的備份
RMAN> delete backup;
刪除所有的映像副本
RMAN> delete copy;
刪除所有的資料庫檔案備份(不包括控制檔案、伺服器初始化引數檔案和歸檔日誌檔案)
RMAN> delete backup of database;
刪除控制檔案備份
RMAN> delete backup of controlfile;
刪除初始化引數檔案備份
RMAN> delete backup of spfile;
刪除所有歸檔日誌檔案備份
RMAN> delete backup of archivelog all;
刪除指定編號的備份集
RMAN> delete backupset 36;
刪除指定標記的備份集
RMAN> delete backupset tag TAG20151006T145256;
刪除所有歸檔日誌檔案
RMAN> delete archivelog all;
list和report命令讀取的是RMAN儲存庫中的資訊,即儲存在目標資料庫控制檔案中的資料。它並不能說明備份檔案物理上實際還是否真的存在。要確認備份是否確實存在,需要使用交叉檢查crosscheck命令。
交叉檢查所有備份是否存在
RMAN> crosscheck backup;
交叉檢查資料庫檔案的備份是否存在
RMAN> crosscheck backup of database;
交叉檢查控制檔案的備份是否存在
RMAN> crosscheck backup of controlfile;
交叉檢查初始化引數檔案的備份是否存在
RMAN> crosscheck backup of spfile;
交叉檢查所有歸檔日誌檔案是否存在
RMAN> crosscheck archivelog all;
交叉檢查所有歸檔日誌檔案的備份是否存在
RMAN> crosscheck backup of archivelog all;
對於檢查結果為不存在的備份,在儲存庫中將被標記為過期失效的expired,而真實存在的備份則被標記為可用的available。標記為expired的備份資訊可以透過delete expired命令將它從RMAN儲存庫中刪除,之後將不再會被顯示在list命令結果中。它與delete obsolete命令不同,delete obsolete命令會實際刪除檔案並更新儲存庫資訊,而delete expired命令僅更新儲存庫資訊,不會從磁碟上真正刪除檔案。
刪除儲存庫中過期的所有備份資訊
RMAN> delete expired backup;
有時因為我們手工刪除了歸檔日誌,導致RMAN發現歸檔缺失而無法執行備份。此時可以應用交叉檢查命令首先檢查歸檔日誌檔案的缺失情況
RMAN> crosscheck archivelog all;
然後從RMAN儲存庫中刪除過期的歸檔日誌記錄
RMAN> delete expired archivelog all;
之後便可以執行正常的備份了。
2、關於RMAN備份的動態效能檢視
如果要更靈活的查詢RMAN備份的資訊,開發自己的報告,而不是依賴於RMAN的list命令,可以藉助以下一些檢視
v$backup_files:
備份檔案資訊(包括資料檔案、控制檔案、SPFILE、歸檔日誌檔案),未經備份的歸檔日誌也會記錄其中,它們沒有備份集編號。
col backup_type for a20
col file_type for a20
col fname for a100
col tag for a30
col df_tablespace for a20
select bs_key, backup_type, file_type, status, fname, tag, obsolete, bytes, bs_completion_time, df_tablespace, df_file#, rl_sequence# from v$backup_files;
BS_KEY BACKUP_TYPE FILE_TYPE STATUS FNAME TAG OBSOLETE BYTES BS_COMPLETION_TIME DF_TABLESPACE DF_FILE# RL_SEQUENCE#
---------- -------------------- -------------------- ---------------- ---------------------------------------------------------------------------------------------------- ------------------------------ -------- ---------- ------------------ -------------------- ---------- ------------
1 BACKUP SET ARCHIVED LOG YES 11453440 2016/12/3 23:01:40 157
1 BACKUP SET ARCHIVED LOG YES 2435072 2016/12/3 23:01:40 158
1 BACKUP SET PIECE AVAILABLE D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_ANNNN_TAG20161203T230138_D45QLN48_.BKP TAG20161203T230138 YES 5046272 2016/12/3 23:01:40
2 BACKUP SET DATAFILE D:\ORADATA\MES\INDX01.DBF NO 657506304 2016/12/3 23:03:03 INDX 7
2 BACKUP SET DATAFILE D:\ORADATA\MES\RMES01.DBF NO 772112384 2016/12/3 23:03:03 RMES 6
2 BACKUP SET DATAFILE D:\ORADATA\MES\RMES02.DBF NO 741302272 2016/12/3 23:03:03 RMES 9
2 BACKUP SET DATAFILE D:\ORADATA\MES\SYSTEM01.DBF NO 410411008 2016/12/3 23:03:03 SYSTEM 1
2 BACKUP SET DATAFILE D:\ORADATA\MES\HMES01.DBF NO 188416 2016/12/3 23:03:03 HMES 8
2 BACKUP SET DATAFILE D:\ORADATA\MES\SYSAUX01.DBF NO 216842240 2016/12/3 23:03:03 SYSAUX 3
2 BACKUP SET DATAFILE D:\ORADATA\MES\CMES01.DBF NO 15392768 2016/12/3 23:03:03 CMES 5
2 BACKUP SET DATAFILE D:\ORADATA\MES\UNDOTBS01.DBF NO 88473600 2016/12/3 23:03:03 UNDOTBS1 2
2 BACKUP SET DATAFILE D:\ORADATA\MES\USERS01.DBF NO 614400 2016/12/3 23:03:03 USERS 4
2 BACKUP SET DATAFILE D:\ORADATA\MES\INDX02.DBF NO 581894144 2016/12/3 23:03:03 INDX 10
2 BACKUP SET PIECE AVAILABLE D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_NNND1_TAG20161203T230141_D45QLOYK_.BKP TAG20161203T230141 NO 596959232 2016/12/3 23:03:03
3 BACKUP SET ARCHIVED LOG NO 609280 2016/12/3 23:03:09 159
3 BACKUP SET PIECE AVAILABLE D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_ANNNN_TAG20161203T230308_D45QOFDJ_.BKP TAG20161203T230308 NO 610816 2016/12/3 23:03:09
COPY ARCHIVED LOG AVAILABLE D:\FLASH_RECOVERY_AREA\MES\ARCHIVELOG\2016_12_04\O1_MF_1_160_D46WLOPT_.ARC NO 1951232 160
4 BACKUP SET SPFILE NO 2 2016/12/3 23:03:10
4 BACKUP SET CONTROLFILE NO 7045120 2016/12/3 23:03:10 0
4 BACKUP SET PIECE AVAILABLE D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_03\O1_MF_S_929660590_D45QOGRN_.BKP TAG20161203T230310 NO 7127040 2016/12/3 23:03:10
檢視映像副本備份
select backup_type, file_type, status, fname, tag, obsolete, bytes, df_tablespace, df_file# from v$backup_files where backup_type = 'COPY';
BACKUP_TYPE FILE_TYPE STATUS FNAME TAG OBS BYTES DF_TABLESPACE DF_FILE#
-------------------- -------------------- ---------------- ---------------------------------------------------------------------------------------------------- ------------------------------ --- ---------- -------------------- ----------
COPY DATAFILE AVAILABLE E:\FLASH_RECOVERY_AREA\MES\BACKUPSET\MES_06RMUTNJ_1_20161208 INC_COPY NO 503316480 SYSTEM 1
COPY DATAFILE AVAILABLE E:\FLASH_RECOVERY_AREA\MES\BACKUPSET\MES_07RMUTOD_1_20161208 INC_COPY NO 283115520 SYSAUX 3
COPY DATAFILE AVAILABLE E:\FLASH_RECOVERY_AREA\MES\BACKUPSET\MES_08RMUTOS_1_20161208 INC_COPY NO 26214400 UNDOTBS1 2
COPY DATAFILE AVAILABLE E:\FLASH_RECOVERY_AREA\MES\BACKUPSET\MES_09RMUTOV_1_20161208 INC_COPY NO 5242880 USERS 4
查詢尚未備份的歸檔日誌
col fname for a100
select rl_sequence#, fname, status, completion_time, obsolete from v$backup_files where backup_type = 'COPY' and file_type = 'ARCHIVED LOG';
RL_SEQUENCE# FNAME STATUS COMPLETION_TIME OBSOLETE
------------ ---------------------------------------------------------------------------------------------------- ---------------- --------------- --------
160 D:\FLASH_RECOVERY_AREA\MES\ARCHIVELOG\2016_12_04\O1_MF_1_160_D46WLOPT_.ARC AVAILABLE 2016/12/4 9:33: NO
根據備份檔名查詢其包含的備份資訊
col backup_type for a15
col file_type for a15
col fname for a100
col bs_incr_type for a15
col df_tablespace for a15
select backup_type, file_type, fname, tag, completion_time, compressed, obsolete, bs_incr_type, df_file#, df_tablespace from v$backup_files where stamp = (select stamp from v$backup_files where fname like '%O1_MF_NNND1_TAG20161204T145847_D47HO8HL_%');
BACKUP_TYPE FILE_TYPE FNAME TAG COMPLETION_TIME COMPRESSED OBSOLETE BS_INCR_TYPE DF_FILE# DF_TABLESPACE
--------------- --------------- ---------------------------------------------------------------------------------------------------- -------------------------------- --------------- ---------- -------- --------------- ---------- ---------------
BACKUP SET DATAFILE D:\ORADATA\MES\INDX01.DBF NO INCR1 7 INDX
BACKUP SET DATAFILE D:\ORADATA\MES\USERS01.DBF NO INCR1 4 USERS
BACKUP SET DATAFILE D:\ORADATA\MES\RMES01.DBF NO INCR1 6 RMES
BACKUP SET DATAFILE D:\ORADATA\MES\RMES02.DBF NO INCR1 9 RMES
BACKUP SET DATAFILE D:\ORADATA\MES\INDX02.DBF NO INCR1 10 INDX
BACKUP SET DATAFILE D:\ORADATA\MES\HMES01.DBF NO INCR1 8 HMES
BACKUP SET DATAFILE D:\ORADATA\MES\CMES01.DBF NO INCR1 5 CMES
BACKUP SET PIECE D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_04\O1_MF_NNND1_TAG20161204T145847_D47HO8HL_.BKP TAG20161204T145847 2016/12/4 14:58 YES NO INCR1
查詢按照保留策略屬於已經廢棄的備份
col fname for a100
select fname, tag from v$backup_files where file_type='PIECE' and obsolete='YES';
FNAME TAG
---------------------------------------------------------------------------------------------------- ------------------------------
D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_ANNNN_TAG20161203T230138_D45QLN48_.BKP TAG20161203T230138
D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_03\O1_MF_S_929660590_D45QOGRN_.BKP TAG20161203T230310
D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_04\O1_MF_S_929717936_D47HOJO1_.BKP TAG20161204T145856
D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_04\O1_MF_S_929739489_D484Q18P_.BKP TAG20161204T205809
D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_04\O1_MF_S_929743942_D48926C1_.BKP TAG20161204T221222
D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_04\O1_MF_S_929743973_D489355M_.BKP TAG20161204T221253
D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_04\O1_MF_S_929743988_D4893NW7_.BKP TAG20161204T221308
v$backup_set:
每個備份集一行資訊,可與檢視v$backup_files聯合查詢。
col 備份型別 for a10
col 檔名 for a100
col 標記 for a20
col 檔案型別 for a20
col 備份內容 for a20
col 增量型別 for a10
select bf.bs_key 關鍵字,
bf.backup_type 備份型別,
bf.fname 檔名,
bf.tag 標記,
bf.bytes 檔案大小,
bf.status 狀態,
bf.bs_type 備份內容,
bf.bs_incr_type 增量型別,
bs.controlfile_included 控制檔案,
bf.compressed 壓縮備份,
bf.obsolete 多餘備份,
--bs.multi_section 多段備份,
bf.keep 歸檔備份,
bf.keep_options 歸檔選項,
bf.keep_until 過期時間,
bs.start_time 開始時間,
bs.completion_time 完成時間,
bs.elapsed_seconds 花費時間
from v$backup_files bf, v$backup_set bs
where bf.bs_key = bs.recid
and bf.file_type = 'PIECE';
關鍵字 備份型別 檔名 標記 檔案大小 狀態 備份內容 增量型別 控制檔案 壓縮備份 多餘備份 歸檔備份 歸檔選項 過期時間 開始時間 完成時間 花費時間
---------- ---------- ---------------------------------------------------------------------------------------------------- -------------------- ---------- ---------------- -------------------- ---------- -------- -------- -------- -------- ------------- ----------- ----------- ----------- ----------
1 BACKUP SET D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_ANNNN_TAG20161203T230138_D45QLN48_.BKP TAG20161203T230138 5046272 AVAILABLE ARCHIVED LOG FULL NO YES YES NO 2016/12/3 2 2016/12/3 2 1
2 BACKUP SET D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_NNND1_TAG20161203T230141_D45QLOYK_.BKP TAG20161203T230141 596959232 AVAILABLE DATAFILE INCR1 NO YES NO NO 2016/12/3 2 2016/12/3 2 82
3 BACKUP SET D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_ANNNN_TAG20161203T230308_D45QOFDJ_.BKP TAG20161203T230308 610816 AVAILABLE ARCHIVED LOG FULL NO YES NO NO 2016/12/3 2 2016/12/3 2 1
4 BACKUP SET D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_03\O1_MF_S_929660590_D45QOGRN_.BKP TAG20161203T230310 7127040 AVAILABLE DATAFILE FULL YES NO NO NO 2016/12/3 2 2016/12/3 2 0
v$backup_piece:
每個備份片一行資訊,這裡面也包含了已刪除的備份。
col handle for a100
select recid, handle, tag, status, start_time, completion_time, elapsed_seconds, deleted, bytes, is_recovery_dest_file, compressed from v$backup_piece;
RECID HANDLE TAG STATUS START_TIME COMPLETION_TIME ELAPSED_SECONDS DELETED BYTES IS_RECOVERY_DEST_FILE COMPRESSED
---------- ---------------------------------------------------------------------------------------------------- -------------------------------- ------ ----------- --------------- --------------- ------- ---------- --------------------- ----------
1 D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_ANNNN_TAG20161203T230138_D45QLN48_.BKP TAG20161203T230138 A 2016/12/3 2 2016/12/3 23:01 0 NO 5046272 YES YES
2 D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_NNND1_TAG20161203T230141_D45QLOYK_.BKP TAG20161203T230141 A 2016/12/3 2 2016/12/3 23:03 82 NO 596959232 YES YES
3 D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_ANNNN_TAG20161203T230308_D45QOFDJ_.BKP TAG20161203T230308 A 2016/12/3 2 2016/12/3 23:03 0 NO 610816 YES YES
4 D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_03\O1_MF_S_929660590_D45QOGRN_.BKP TAG20161203T230310 A 2016/12/3 2 2016/12/3 23:03 0 NO 7127040 YES NO
v$backup_piece_details:
備份片詳細資訊,可以結合v$backup_piece查詢。
col handle for a100
col size_bytes_display for a10
select t1.recid,
t1.handle,
t1.tag,
t1.status,
t1.start_time,
t1.completion_time,
t1.elapsed_seconds,
t1.deleted,
t1.bytes,
t1.is_recovery_dest_file,
t1.compressed,
t2.size_bytes_display
from v$backup_piece t1 join v$backup_piece_details t2 on (t1.recid = t2.recid);
RECID HANDLE TAG STATUS START_TIME COMPLETION_TIME ELAPSED_SECONDS DELETED BYTES IS_RECOVERY_DEST_FILE COMPRESSED SIZE_BYTES
---------- ---------------------------------------------------------------------------------------------------- -------------------------------- ------ ----------- --------------- --------------- ------- ---------- --------------------- ---------- ----------
4 D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_03\O1_MF_S_929660590_D45QOGRN_.BKP TAG20161203T230310 A 2016/12/3 2 2016/12/3 23:03 0 NO 7127040 YES NO 6.80M
1 D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_ANNNN_TAG20161203T230138_D45QLN48_.BKP TAG20161203T230138 A 2016/12/3 2 2016/12/3 23:01 0 NO 5046272 YES YES 4.81M
2 D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_NNND1_TAG20161203T230141_D45QLOYK_.BKP TAG20161203T230141 A 2016/12/3 2 2016/12/3 23:03 82 NO 596959232 YES YES 569.30M
3 D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_ANNNN_TAG20161203T230308_D45QOFDJ_.BKP TAG20161203T230308 A 2016/12/3 2 2016/12/3 23:03 0 NO 610816 YES YES 596.50K
v$backup_redolog:
歸檔日誌備份資訊,可與檢視v$backup_files聯合查詢。
col bs_tag for a20
select t1.sequence#,
t2.bs_tag,
t1.resetlogs_change#,
t1.resetlogs_time,
t1.first_change#,
t1.first_time,
t1.next_change#,
t1.next_time,
t2.keep,
t2.obsolete,
t2.bs_status,
t2.bs_bytes,
t2.bs_compressed
from v$backup_redolog t1
join v$backup_files t2 on (t1.sequence# = t2.rl_sequence#);
SEQUENCE# BS_TAG RESETLOGS_CHANGE# RESETLOGS_TIME FIRST_CHANGE# FIRST_TIME NEXT_CHANGE# NEXT_TIME KEEP OBSOLETE BS_STATUS BS_BYTES BS_COMPRESSED
---------- -------------------- ----------------- -------------- ------------- ----------- ------------ ----------- ---- -------- ---------------- ---------- -------------
157 TAG20161203T230138 602121 2016/10/31 22: 3949968 2016/12/3 1 3980863 2016/12/3 2 NO YES AVAILABLE 5046272 YES
158 TAG20161203T230138 602121 2016/10/31 22: 3980863 2016/12/3 2 3982037 2016/12/3 2 NO YES AVAILABLE 5046272 YES
159 TAG20161203T230308 602121 2016/10/31 22: 3982037 2016/12/3 2 3982215 2016/12/3 2 NO NO AVAILABLE 610816 YES
v$backup_spfile:
已備份的spfile及controlfile資訊。
col fname for a100
select t.backup_type, t.file_type, t.status, t.fname, t.tag, t.completion_time, t.obsolete, t.bs_bytes from v$backup_files t where t.stamp in (select stamp from v$backup_spfile);
BACKUP_TYPE FILE_TYPE STATUS FNAME TAG COMPLETION_TIME OBSOLETE BS_BYTES
-------------------- -------------------- ---------------- ---------------------------------------------------------------------------------------------------- ------------------------------ --------------- -------- ----------
BACKUP SET SPFILE NO 7127040
BACKUP SET CONTROLFILE NO 7127040
BACKUP SET PIECE AVAILABLE D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_03\O1_MF_S_929660590_D45QOGRN_.BKP TAG20161203T230310 2016/12/3 23:03 NO 7127040
v$backup_datafile:
每個由資料檔案備份構成的一行資訊。
col name for a50
col read_radio for a10
select t1.file#, t2.name, t1.datafile_blocks, t1.blocks_read, to_char(round(t1.blocks_read / t1.datafile_blocks, 2) * 100) || '%' read_radio, t1.completion_time
from v$backup_datafile t1 join v$datafile t2 on (t1.file# = t2.file#) order by file#, completion_time;
FILE# NAME DATAFILE_BLOCKS BLOCKS_READ READ_RADIO COMPLETION_TIME
---------- -------------------------------------------------- --------------- ----------- ---------- -------------------
1 D:\ORADATA\MES\SYSTEM01.DBF 65280 65280 100% 2016-12-03 23:02:39
1 D:\ORADATA\MES\SYSTEM01.DBF 65280 1895 3% 2016-12-04 14:58:49
1 D:\ORADATA\MES\SYSTEM01.DBF 65280 1135 2% 2016-12-04 20:58:03
2 D:\ORADATA\MES\UNDOTBS01.DBF 10880 10880 100% 2016-12-03 23:02:03
2 D:\ORADATA\MES\UNDOTBS01.DBF 10880 1983 18% 2016-12-04 14:58:49
2 D:\ORADATA\MES\UNDOTBS01.DBF 10880 679 6% 2016-12-04 20:58:03
3 D:\ORADATA\MES\SYSAUX01.DBF 38400 38400 100% 2016-12-03 23:02:16
3 D:\ORADATA\MES\SYSAUX01.DBF 38400 5815 15% 2016-12-04 14:58:49
3 D:\ORADATA\MES\SYSAUX01.DBF 38400 3467 9% 2016-12-04 20:58:03
4 D:\ORADATA\MES\USERS01.DBF 640 640 100% 2016-12-03 23:02:03
4 D:\ORADATA\MES\USERS01.DBF 640 1 0% 2016-12-04 14:58:48
4 D:\ORADATA\MES\USERS01.DBF 640 255 40% 2016-12-04 20:58:03
5 D:\ORADATA\MES\CMES01.DBF 12800 12800 100% 2016-12-03 23:01:52
5 D:\ORADATA\MES\CMES01.DBF 12800 1 0% 2016-12-04 14:58:48
5 D:\ORADATA\MES\CMES01.DBF 12800 1 0% 2016-12-04 20:58:03
6 D:\ORADATA\MES\RMES01.DBF 131072 131072 100% 2016-12-03 23:03:03
6 D:\ORADATA\MES\RMES01.DBF 131072 9 0% 2016-12-04 14:58:48
6 D:\ORADATA\MES\RMES01.DBF 131072 13 0% 2016-12-04 20:58:03
7 D:\ORADATA\MES\INDX01.DBF 131072 131072 100% 2016-12-03 23:03:03
7 D:\ORADATA\MES\INDX01.DBF 131072 1 0% 2016-12-04 14:58:48
7 D:\ORADATA\MES\INDX01.DBF 131072 1 0% 2016-12-04 20:58:03
8 D:\ORADATA\MES\HMES01.DBF 64000 64000 100% 2016-12-03 23:02:38
8 D:\ORADATA\MES\HMES01.DBF 64000 1 0% 2016-12-04 14:58:48
8 D:\ORADATA\MES\HMES01.DBF 64000 1 0% 2016-12-04 20:58:03
9 D:\ORADATA\MES\RMES02.DBF 131072 131072 100% 2016-12-03 23:03:03
9 D:\ORADATA\MES\RMES02.DBF 131072 1 0% 2016-12-04 14:58:48
9 D:\ORADATA\MES\RMES02.DBF 131072 1 0% 2016-12-04 20:58:03
10 D:\ORADATA\MES\INDX02.DBF 131072 131072 100% 2016-12-03 23:03:03
10 D:\ORADATA\MES\INDX02.DBF 131072 1 0% 2016-12-04 14:58:48
10 D:\ORADATA\MES\INDX02.DBF 131072 1 0% 2016-12-04 20:58:03
v$backup_device:
用於磁帶備份,顯示已連線到RMAN的SBT裝置的名稱。
select * from v$backup_device;
DEVICE_TYPE DEVICE_NAME
----------------- -----------------------------------
SBT_TAPE
v$rman_configuration:
RMAN非預設的備份配置資訊。
col name for a50
col value for a80
select * from v$rman_configuration;
CONF# NAME VALUE
---------- -------------------------------------------------- --------------------------------------------------------------------------------
1 CONTROLFILE AUTOBACKUP ON
2 CHANNEL DEVICE TYPE DISK FORMAT 'd:\flash_recovery_area\mes\backupset\%d_%u_%c_%T'
3 CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:\flash_recovery_area\mes\autobackup\%F'
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28974745/viewspace-2151715/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle資料庫使用rman備份指令碼Oracle資料庫指令碼
- 利用RMAN備份重建資料庫資料庫
- RMAN備份恢復典型案例——資料庫卡頓資料庫
- 【RMAN】RMAN備份至ASMASM
- 【RMAN】在備庫執行rman備份時報錯RMAN-06820 ORA-17629
- 資料庫備份資料庫
- ORACLE DG從庫 Rman備份恢復Oracle
- RMAN備份概述
- 【RMAN】RMAN的備份保留策略
- 使用MySQL Workbench進行資料庫備份MySql資料庫
- 資料備份 reed-solomn 庫 的使用
- mysql 資料庫 備份MySql資料庫
- 資料庫備份策略資料庫
- MongoDB資料庫備份MongoDB資料庫
- RMAN備份恢復典型案例——RMAN備份&系統變慢
- 在DG備庫備份資料庫並恢復到一個主機上,報錯RMAN-06820資料庫
- RMAN備份進度
- rman 備份指令碼指令碼
- RMAN的備份原理
- 3.1.1.2 使用RMAN啟動資料庫資料庫
- oracle資料庫備份之exp增量備份Oracle資料庫
- RMAN備份恢復典型案例——快速檢查資料庫一致性資料庫
- oracle 備份資料庫,匯出資料庫Oracle資料庫
- 使用Mysqldump備份和恢復MySQL資料庫MySql資料庫
- SQL SERVER備份資料庫檔案(使用SSMS)SQLServer資料庫SSM
- python使用多執行緒備份資料庫Python執行緒資料庫
- 資料庫備份恢復資料庫
- SQL資料庫備份管理SQL資料庫
- innobackupex 備份MySQL資料庫MySql資料庫
- 資料庫備份指令碼資料庫指令碼
- mysqlpump 資料庫備份程式MySql資料庫
- mysqldump 資料庫備份程式MySql資料庫
- 使用NineData實現企業級資料庫備份, 資料備份告別“拆盲盒” ?資料庫
- 12 使用RMAN備份和恢復檔案
- rman如何在備庫執行一致性備份
- 使用RMAN複製資料庫 active database資料庫Database
- rman 增量備份恢復
- Oracle RMAN備份實戰Oracle