使用RMAN備份資料庫

llnnmc發表於2018-03-11

Oracle推薦的資料庫備份和恢復工具是RMAN(恢復管理器,Recovery Manager)。不是必須要使用RMANOracle支援透過使用作業系統實用程式來建立備份和執行恢復,但RMAN有著其它產品無法比擬的功能,以下列舉幾條採用RMAN備份的優點:

 

1、恢復過程是智慧的,不需要考慮用哪些備份檔案來恢復,系統自動選擇和管理;

2、支援增量備份,只備份更改的資料塊,而不用每次都去做完整備份,可以顯著減少備份花費的時間和空間;

3、支援加密備份,保證備份資料的安全性,這對於儲存在可移動裝置上的資料備份很有必要;

4、支援靈活選擇的表空間備份、資料檔案備份、控制檔案備份及歸檔日誌檔案備份等;

5、強大的管理命令和報表功能可以方便的查詢和管理備份;

6RMAN的備份恢復操作與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 level0備份,之後差異增量級別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)來實現。

 

塊改變跟蹤依賴於啟動一個額外的後臺程式:CTWRChange 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錯誤,這是OracleBug,不用理會

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)之後可進行正常的備份操作。

 

fRMAN恢復操作前需要用正確的口令開啟錢夾

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_destdb_recovery_file_dest_size來檢視閃回恢復區資訊,Oracle 10g中這個區域大小預設是2G11g中則提升為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;

 

列出包含日誌切換系列號為10001050的歸檔日誌的備份集

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

 

validaterestore...validaterestore...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;

 

listreport命令讀取的是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備份的資訊,開發自己的報告,而不是依賴於RMANlist命令,可以藉助以下一些檢視

 

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

已備份的spfilecontrolfile資訊。

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

用於磁帶備份,顯示已連線到RMANSBT裝置的名稱。

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章