您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關如何使用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 hh34: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'
感謝各位的閱讀!關于“如何使用RMAN備份數據庫”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。