這篇文章給大家分享的是有關(guān)如何使用RMAN備份數(shù)據(jù)庫的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名申請、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、新榮網(wǎng)站維護、網(wǎng)站推廣。
Oracle推薦的數(shù)據(jù)庫備份和恢復(fù)工具是RMAN(恢復(fù)管理器,Recovery Manager)。不是必須要使用RMAN,Oracle支持通過使用操作系統(tǒng)實用程序來創(chuàng)建備份和執(zhí)行恢復(fù),但RMAN有著其它產(chǎn)品無法比擬的功能,以下列舉幾條采用RMAN備份的優(yōu)點:
1、恢復(fù)過程是智能的,不需要考慮用哪些備份文件來恢復(fù),系統(tǒng)自動選擇和管理;
2、支持增量備份,只備份更改的數(shù)據(jù)塊,而不用每次都去做完整備份,可以顯著減少備份花費的時間和空間;
3、支持加密備份,保證備份數(shù)據(jù)的安全性,這對于存儲在可移動設(shè)備上的數(shù)據(jù)備份很有必要;
4、支持靈活選擇的表空間備份、數(shù)據(jù)文件備份、控制文件備份及歸檔日志文件備份等;
5、強大的管理命令和報表功能可以方便的查詢和管理備份;
6、RMAN的備份恢復(fù)操作與OS無關(guān),是跨平臺的。
一、RMAN備份的概念和術(shù)語
用操作系統(tǒng)命令執(zhí)行的備份被稱為用戶管理的備份,而使用RMAN執(zhí)行的備份則被稱為服務(wù)器管理的備份。在執(zhí)行服務(wù)器管理的備份前,總體上需要考慮以下三種備份策略:
關(guān)閉狀態(tài)還是打開狀態(tài)?
全部備份還是局部備份?
完整備份還是增量備份?
關(guān)閉狀態(tài)的備份在數(shù)據(jù)庫關(guān)閉期間執(zhí)行,也稱為冷備份、一致備份、脫機備份,打開狀態(tài)的備份在數(shù)據(jù)庫使用期間執(zhí)行,也稱為熱備份、非一致備份、聯(lián)機備份。打開狀態(tài)的備份只能在數(shù)據(jù)庫處于歸檔日志模式下執(zhí)行。如果數(shù)據(jù)庫處于非歸檔日志模式,則只能進行關(guān)閉狀態(tài)的備份。在大部分情況下,局部備份也必須在數(shù)據(jù)庫處于歸檔日志模式下才能進行。增量備份可以是累積增量備份(包括自上一次完整備份以來更改的所有塊)或差異增量備份(包括自上一次增量備份以來更改的所有塊)。
RMAN可備份的文件類型為:
數(shù)據(jù)文件
控制文件
服務(wù)器初始化參數(shù)文件spfile
歸檔重做日志文件
備份集片
RMAN不能備份的文件包括:
臨時文件
聯(lián)機重做日志文件
口令文件
靜態(tài)參數(shù)文件pfile
Oracle Net配置文件
RMAN可生成三類備份:
備份集(backup set):備份文件的專用格式,一個備份集文件可包含多個數(shù)據(jù)庫文件的備份;
壓縮備份集(compressed backup set):與備份集內(nèi)容相同,但RMAN在寫出到備份集時將應(yīng)用壓縮算法;
映像副本(image copy):是與輸入文件相同的備份文件,映像副本可與源內(nèi)容立即交換,與備份集文件相比,還原時不需要從備份集中提取文件。
RMAN備份和還原操作由被稱為通道(channel)的服務(wù)器進程執(zhí)行。通道可分為磁盤類型(可訪問磁盤上的備份)或SBT_TAPE類型(可訪問磁帶上的備份)。
RMAN存儲庫(repository)是有關(guān)備份的元數(shù)據(jù),存儲庫一般保存在目標數(shù)據(jù)庫的控制文件中,也可以保存在被稱為目錄數(shù)據(jù)庫中的一組表中。當(dāng)進行多個不同數(shù)據(jù)庫的備份時,可單獨構(gòu)建一個目錄數(shù)據(jù)庫來存儲RMAN備份的元數(shù)據(jù)。
RMAN操作由RMAN可執(zhí)行程序啟動、監(jiān)視和控制,可有三種連接數(shù)據(jù)庫的方式:
目標數(shù)據(jù)庫(target):需要備份、還原和恢復(fù)的數(shù)據(jù)庫;
目錄數(shù)據(jù)庫(catalog):用于備份多個目標數(shù)據(jù)庫;
輔助數(shù)據(jù)庫(auxiliary):通過目標數(shù)據(jù)庫的備份創(chuàng)建的數(shù)據(jù)庫。
二、服務(wù)器管理的脫機備份
服務(wù)器管理的脫機備份是在數(shù)據(jù)庫關(guān)閉后執(zhí)行的備份,也稱為冷備份、一致備份。對于非歸檔日志模式的數(shù)據(jù)庫,備份時只能采用此模式。
只有數(shù)據(jù)庫處于加載模式時才能執(zhí)行RMAN一致備份。其原因在于,RMAN需要讀取控制文件,以便查找數(shù)據(jù)文件。如果在加載模式下嘗試執(zhí)行用戶管理的操作系統(tǒng)備份,則將無效,因為在加載模式中,當(dāng)復(fù)制控制文件時可能已對控制文件執(zhí)行了寫操作,這樣一來副本就變的不一致了,因而失去了作用。RMAN通過獲取控制文件的讀一致性快照并對其進行備份,避免此問題的發(fā)生。
有三種使用RMAN的技術(shù):
交互界面:用于執(zhí)行即席任務(wù);
腳本接口:通過操作系統(tǒng)的調(diào)度程序運行作業(yè);
Enterprise Manager界面:用于生成腳本,定義由Enterprise Manager調(diào)度的作業(yè)。
典型的脫機-全部-完整備份的腳本如下
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:數(shù)據(jù)庫ID;
%u:產(chǎn)生唯一的文件名稱;
%c:第幾份備份;
%T:備份時間。
該腳本首先關(guān)閉數(shù)據(jù)庫實例并重啟到加載模式,之后分配一個磁盤備份的通道(disk表示是磁盤通道,另外還有一種備份通道是磁帶sbt_tape),然后啟動壓縮備份命令完成全庫備份(包括數(shù)據(jù)文件、控制文件和spfile文件的備份),并指定了備份文件的目標位置和文件名格式,備份完畢后打開數(shù)據(jù)庫。
如將其保存為腳本文件offline_full_whole.rman,則可調(diào)度如下操作系統(tǒng)命令運行該腳本
rman target sys/hznj2010@mes @offline_full_whole.rman
注意,命令格式中,腳本文件名前面要加上@符號,target表示是連接到目標數(shù)據(jù)庫。
也可以分兩步,先用RMAN連接到目標數(shù)據(jù)庫,再執(zhí)行腳本文件
C:\Users\Administrator>rman target /
RMAN> @d:\offline_full_whole.rman
在目標位置將生成了兩個備份集文件,備份集中包含了所有數(shù)據(jù)文件、控制文件和spfile文件的內(nèi)容。
三、服務(wù)器管理的聯(lián)機備份
在進行打開狀態(tài)的備份時,RMAN可能會在DBWn進程寫入塊時嘗試復(fù)制文件塊,這將導(dǎo)致斷裂塊。斷裂塊在備份中可能是無用的,因為在其更新時復(fù)制它會導(dǎo)致副本內(nèi)部不一致。RMAN會檢測出現(xiàn)的斷裂塊,并重試塊復(fù)制,直至獲得一致的版本為止。為獲取控制文件的讀一致性版本,RMAN創(chuàng)建控制文件的讀一致性快照副本,這是實際備份的內(nèi)容。
在創(chuàng)建備份集時,RMAN不會備份未使用的塊,這會節(jié)省大量的空間。
典型的聯(lián)機-全部-完整備份的腳本如下
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命令備份整個數(shù)據(jù)庫(數(shù)據(jù)文件、控制文件及spfile文件),第二個backup命令備份所有的歸檔日志文件,并在備份后將其從磁盤中刪除,進而可以釋放磁盤空間。結(jié)果將生成三個備份集文件,備份集中包含了所有數(shù)據(jù)文件、控制文件、spfile文件和歸檔日志文件的內(nèi)容,并且備份完成后自動刪除不必再保留的歸檔日志文件。
RMAN的有些命令可以是即席的,即可以直接在RMAN命令提示符下執(zhí)行,而有些命令則只能在RUN腳本塊中執(zhí)行,如allocate channel命令需要放入腳本塊中執(zhí)行。
備份也可以只針對部分內(nèi)容進行,如一個表空間、一個單獨的文件等。
備份一個表空間
RMAN> backup as backupset format 'd:\rman_bak\mes\%d_%u_%c_%T' tablespace cmes;
備份一個數(shù)據(jù)文件,可以指定文件號或文件名
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備份。
執(zhí)行增量級別0備份的RMAN命令如下,備份集將包含所有使用過的塊
RMAN> backup as backupset incremental level 0 database;
以下命令執(zhí)行差異增量級別1備份,該命令提取自上一個級別1備份以來更改的所有塊,如果沒有運行過級別0備份,則第一次執(zhí)行級別1的增量備份實際是執(zhí)行級別0備份
RMAN> backup as backupset incremental level 1 database;
以下命令執(zhí)行累積增量級別1備份,該命令提取自級別0備份以來更改的所有塊
RMAN> backup as backupset incremental level 1 cumulative database;
可以指定大于1的增量級別,但它們沒有效果,支持它們只是為了與老版本的RMAN兼容,因此現(xiàn)在可以不必再使用。
在很多情況下,可能希望增量備份能快一些,這可以通過啟用塊改變跟蹤(block change tracking)來實現(xiàn)。
塊改變跟蹤依賴于啟動一個額外的后臺進程:CTWR(Change Tracking Writer,改變跟蹤寫入器)。這個進程在改變跟蹤文件中記錄每個已更改的塊的地址。如果啟用了塊改變跟蹤,RMAN將在執(zhí)行增量備份時讀取改變跟蹤文件以確定哪些塊需要備份。這比掃描整個數(shù)據(jù)文件要快的多。
改變跟蹤文件默認位置可在初始化參數(shù)db_create_file_dest中指定。它的初始大小為10MB,并以10MB的增量增長。改變跟蹤文件是位圖格式,每位包含32個數(shù)據(jù)塊。啟用塊改變跟蹤會有一個最低的性能開銷,經(jīng)驗表明這并不重要。要啟用塊改變跟蹤并指定跟蹤文件的名稱和位置,可使用以下命令
alter database enable block change tracking using file 'd:\oradata\mes\change_tracking.dbf';
要監(jiān)視塊變更跟蹤的有效性,可查詢視圖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反映的是數(shù)據(jù)文件的大小,BLOCKS_READ和READ_RADIO則顯示了每次增量備份讀取的塊數(shù)和讀塊比率,如果每次備份這個比率在持續(xù)增加,則應(yīng)考慮更頻繁的執(zhí)行增量備份。
要查看是否啟用了塊改變跟蹤,并檢查跟蹤文件的位置和大小,可查詢視圖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服務(wù)器進程(改變跟蹤寫入器),可查詢視圖v$process
select program from v$process where program like '%CTWR%';
PROGRAM
----------------------------------------------------------------
ORACLE.EXE (CTWR)
如果要取消塊改變跟蹤,則命令為
alter database disable block change tracking;
五、其它備份方式
1、映像副本
文件的映像副本是與數(shù)據(jù)文件、控制文件或歸檔日志文件完全相同的副本。結(jié)果就好像文件是用操作系統(tǒng)程序復(fù)制的,但機制是不同的,RMAN讀寫Oracle塊,而不是操作系統(tǒng)塊。映像副本備份方式的優(yōu)點是還原非??焖?,因為不需要從備份集中提取文件。
映像副本可由數(shù)據(jù)文件、控制文件或歸檔日志文件組成,但不能由spfile文件組成。
映像副本的備份命令使用關(guān)鍵字copy,如使用以下命令備份整個數(shù)據(jù)庫,在沒有更改默認配置的情況下,將啟動一個磁盤通道,將所有數(shù)據(jù)文件和控制文件復(fù)制到閃回恢復(fù)區(qū)(同時還會自動生成一個spfile文件的備份集)
RMAN> backup as copy database;
如要將所有歸檔日志移入閃回恢復(fù)區(qū),則命令為
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關(guān)鍵字,如下命令將完成數(shù)據(jù)庫和歸檔日志的壓縮備份
RMAN> backup as compressed backupset database plus archivelog;
3、保護備份
RMAN支持多重方式的備份,使用關(guān)鍵字copies,如下命令將在默認磁盤目標位置生成數(shù)據(jù)庫及歸檔日志的兩套備份集
RMAN>backup as backupset device type disk copies 2 database plus archivelog;
也可以對備份集進行備份,如用以下命令可以將備份集轉(zhuǎn)移備份到其它目標設(shè)備上,并將原來位置的備份刪除
RMAN>backup device type disk format 'd:\shift_bak\%d_%u_%c_%T' backupset all delete all input;
4、加密備份
在有些環(huán)境下可能希望需要加密的備份,因為這些備份可能存儲在DBA幾乎無法控制的可移動設(shè)備上。
加密有透明加密和口令加密兩種方式。
1)透明加密
這是RMAN采用的默認方式,基于錢夾(wallet)的使用。這是一個包含用于加密和解密數(shù)據(jù)的密鑰文件,其本身用口令保護。這種加密方式適合于只在本機上進行加密備份和恢復(fù),只需要配置好錢夾證書。證書文件需要妥善保管不可丟失,否則以后無法恢復(fù)。
透明加密備份的操作過程如下:
a)首先在Oracle默認的指定位置創(chuàng)建錢夾目錄
%ORACLE_BASE%\admin\<sid>\wallet
b)查看錢夾狀態(tài),默認是關(guān)閉的
SQL> select * from v$encryption_wallet;
WRL_TYPE WRL_PARAMETER STATUS
---------- ------------------------------ ----------
file C:\ORACLE\ADMIN\MES\WALLET CLOSED
c)打開錢夾,并給證書設(shè)置口令。系統(tǒng)可能會報ORA-28374錯誤,這是Oracle的Bug,不用理會
SQL>alter system set encryption key authenticated by "pm1234";
alter system set encryption key authenticated by "pm1234"
*
第 1 行出現(xiàn)錯誤:
ORA-28374: 在 Wallet 中未找到鍵入的主鍵
d)配置RMAN加密備份開啟
RMAN> configure encryption for database on;
舊的 RMAN 配置參數(shù):
CONFIGURE ENCRYPTION FOR DATABASE OFF;
新的 RMAN 配置參數(shù):
CONFIGURE ENCRYPTION FOR DATABASE ON;
已成功存儲新的 RMAN 配置參數(shù)
e)之后可進行正常的備份操作。
f)RMAN恢復(fù)操作前需要用正確的口令打開錢夾
SQL>alter system set wallet open identified by "pm1234";
系統(tǒng)已更改。
g)之后可進行正常的恢復(fù)操作。如果錢夾未打開,則恢復(fù)過程失敗。
h)如果要取消加密備份功能,則可將RMAN的加密配置重置為默認值
RMAN> CONFIGURE ENCRYPTION FOR DATABASE clear;
舊的 RMAN 配置參數(shù):
CONFIGURE ENCRYPTION FOR DATABASE ON;
RMAN 配置參數(shù)已成功重置為默認值
2)口令加密
這是在備份前設(shè)置好算法和密鑰,之后進行正常的備份。加密備份的文件在恢復(fù)操作前需要提供正確的密鑰,否則無法恢復(fù)。
通過視圖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當(dāng)前加密算法,#default表示該項是RMAN的默認設(shè)置
RMAN> show encryption algorithm;
db_unique_name 為 MES 的數(shù)據(jù)庫的 RMAN 配置參數(shù)為:
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
b)若需要更改加密算法,可使用以下命令,如更改為AES256
RMAN> configure encryption algorithm 'aes256';
新的 RMAN 配置參數(shù):
CONFIGURE ENCRYPTION ALGORITHM 'aes256';
已成功存儲新的 RMAN 配置參數(shù)
c)可查看確認加密算法是否已更改
RMAN> show encryption algorithm;
db_unique_name 為 MES 的數(shù)據(jù)庫的 RMAN 配置參數(shù)為:
CONFIGURE ENCRYPTION ALGORITHM 'aes256';
d)如果要恢復(fù)為默認的加密算法,可使用關(guān)鍵字clear
RMAN> configure encryption algorithm clear;
舊的 RMAN 配置參數(shù):
CONFIGURE ENCRYPTION ALGORITHM 'aes256';
RMAN 配置參數(shù)已成功重置為默認值
e)設(shè)置密鑰并開啟加密
RMAN> set encryption on identified by 'pm1234' only;
正在執(zhí)行命令: SET encryption
f)之后可開始執(zhí)行正常的備份操作。
g)恢復(fù)操作前,需要提供密鑰,否則無法恢復(fù)
RMAN> set decryption identified by 'pm1234';
正在執(zhí)行命令: SET decryption
h)之后便可進行正常的恢復(fù)操作。
5、歸檔備份
在Oracle術(shù)語中,歸檔備份指的是希望長時間或永久保存的備份。通常,創(chuàng)建歸檔備份只是為了滿足有關(guān)記錄保留的規(guī)定。歸檔備份不理會RMAN配置的保留策略,也不會由delete obsolete命令自動刪除。
創(chuàng)建歸檔備份的語法如下:
backup … keep { forever | until time 'date_expr' } [ restore point rpname ];
其中forever表示永久保存不過期,until time則指定過期的日期,二者選一。日期表達式可以是實際的日期或計算式。如下命令將生成數(shù)據(jù)庫的完整歸檔備份,因為是歸檔備份,其中也將包括歸檔日志
RMAN>backup as compressed backupset database keep until time 'sysdate+90' restore point quarterly_bak;
六、并行化備份操作
每次使用RMAN時,都至少會對目標數(shù)據(jù)庫啟動兩個會話,被稱為默認會話和輪詢會話。默認會話是調(diào)用實現(xiàn)RMAN的內(nèi)核PL/SQL的會話,輪詢會話監(jiān)視RMAN操作的進展。當(dāng)RMAN讀寫磁盤或磁帶時,它將需要第三個會話:通道。通過啟動多個通道來實現(xiàn)備份工作的并行化,可減少備份花費的時間。
RMAN備份時可達到的并行度受通道數(shù)和輸入文件數(shù)的限制??紤]下列腳本
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計算數(shù)據(jù)庫中的文件數(shù),并將它們分布到備份集中,每個備份集不超過8個文件。如果數(shù)據(jù)庫由100個數(shù)據(jù)文件外加控制文件構(gòu)成,那將生成13個備份集,前12個備份集每個包含8個文件,第13個備份集包含剩下的5個文件,并行度為4,并行度受通道數(shù)限制。但如果數(shù)據(jù)庫只有20個數(shù)據(jù)文件,那將只生成3個備份集,并行度為3,有一個通道閑置,此時的并行度受輸入文件數(shù)的限制。
默認情況下,最大并行度是不會超過輸入文件數(shù)的,因為默認同一時間內(nèi),一個通道只能對應(yīng)一個文件的讀取,但采用多段備份功能后,一個文件可以分段同時被多個通道并行訪問。這一應(yīng)用主要是針對那些單個較大文件的備份進行的。
多段關(guān)鍵字的運用如下腳本
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個通道,每個通道讀取數(shù)據(jù)文件16的一個10g大小的段,每個通道將生成包含段的備份的片(單獨的物理文件)。假定文件大小為200G,則將生成20個備份片文件,一次并行的生成4個。如果沒有section size關(guān)鍵字,則并行度將為1,只能用一個通道執(zhí)行整個操作,而其它三個通道將閑置。
七、配置RMAN備份的默認參數(shù)
RMAN備份的默認參數(shù)往往并不適合我們的要求,在備份工作開始前可能需要配置好默認的備份參數(shù),一旦這些參數(shù)配置好后,備份命令在未指定目標參數(shù)情況下將按設(shè)定的默認值來進行。
show命令可以查看RMAN當(dāng)前配置的默認參數(shù),以下是在未對這些參數(shù)設(shè)置過的情況下系統(tǒng)的默認取值,使用show all命令顯示了所有配置參數(shù),每一行配置語句結(jié)尾標注的#default表明該參數(shù)值是系統(tǒng)的默認取值
RMAN> show all;
使用目標數(shù)據(jù)庫控制文件替代恢復(fù)目錄
db_unique_name 為 MES 的數(shù)據(jù)庫的 RMAN 配置參數(shù)為:
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
要調(diào)整這些參數(shù)的默認值,可使用configure命令,如以下一些設(shè)置:
更改控制文件的備份配置,設(shè)為自動備份,并指定備份的目標路徑。這樣在數(shù)據(jù)庫結(jié)構(gòu)發(fā)生改變或做RMAN備份時會自動備份控制文件,也會備份spfile文件,這里%F格式只對自動備份生效,手動備份時指定該參數(shù)是無效的
RMAN> configurecontrolfileautobackupon;
RMAN> configurecontrolfileautobackupformatfordevicetypediskto 'd:\rman_bak\mes\control_bak\%F';
更改數(shù)據(jù)文件備份集的目標位置和命名規(guī)則
RMAN> configurechanneldevicetypediskformat 'd:\rman_bak\mes\%d_%u_%c_%T';
更改備份類型由默認的backupset改為copy,使得RMAN的任何備份都不產(chǎn)生備份集,而產(chǎn)生映像副本
RMAN> configure device type disk backup type to copy;
更改默認的備份設(shè)備類型由磁盤disk改為磁帶sbt
RMAN> configure default device type to sbt;
更改磁盤備份的并行數(shù),以下啟動2個通道
RMAN> configure device type disk parallelism 2;
啟用備份優(yōu)化功能,這允許RMAN如果認為有足夠的文件副本,就不備份特定文件。優(yōu)化與保留策略有關(guān)。默認的保留策略為1,意味著RMAN將試圖至少保存一個副本。備份優(yōu)化只適用于歸檔日志和只讀或脫機表空間的數(shù)據(jù)文件。由于聯(lián)機的可讀寫的數(shù)據(jù)文件總是在變化,RMAN將不會認為它有相同的副本
RMAN> configure backup optimization on;
更改備份的保留策略,以下將保留策略的冗余度設(shè)置為3,意味著RMAN將試圖保存3個副本
RMAN> configure retention policy to redundancy 3;
可以設(shè)置兩種保留策略,冗余級別指定應(yīng)保存的文件副本數(shù)。另一種策略是設(shè)置恢復(fù)窗口,以下的備份設(shè)置保證可以通過執(zhí)行時間點恢復(fù)回到過去90天中的任意一個時間
RMAN> configure retention policy to recovery window of 90 days;
要將配置的設(shè)置恢復(fù)為系統(tǒng)默認值,可使用clear命令。如下所示,首先用show命令查看相關(guān)配置信息,再用clear命令恢復(fù)到系統(tǒng)默認值
RMAN> show device type;
db_unique_name 為 MES 的數(shù)據(jù)庫的 RMAN 配置參數(shù)為:
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
RMAN> configure device type disk clear;
舊的 RMAN 配置參數(shù):
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
RMAN 配置參數(shù)已成功重置為默認值
RMAN> show device type;
db_unique_name 為 MES 的數(shù)據(jù)庫的 RMAN 配置參數(shù)為:
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
實際上,在這些配置參數(shù)中,大多數(shù)的默認設(shè)置都不需要調(diào)整,RMAN就能很好的完成我們期望的備份效果。但要特別留意的是默認備份的目標位置并未體現(xiàn)在這一配置列表中。默認情況下,RMAN磁盤備份的目標位置是閃回恢復(fù)區(qū)flash_recovery_area,Oracle安裝時它的默認選定位置是在Oracle基目錄%ORACLE_BASE%中,在Oracle安裝時建議調(diào)整到其它磁盤位置以提高系統(tǒng)性能。
可以查看初始化參數(shù)db_recovery_file_dest和db_recovery_file_dest_size來查看閃回恢復(fù)區(qū)信息,Oracle 10g中這個區(qū)域大小默認是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 integer2G
如果閃回恢復(fù)區(qū)容量不夠,可以調(diào)整其大小
SQL> alter system set db_recovery_file_dest_size=4G;
采用閃回恢復(fù)區(qū)位置存放備份的好處是RMAN可以自動管理該區(qū)域,如果閃回恢復(fù)區(qū)已滿,RMAN將從中自動刪除過時的備份。
在完成以上的配置后,可以用以下一條命令完成數(shù)據(jù)庫的聯(lián)機備份
backup as compressed backupset incremental level 1 database plus archivelog delete all input;
八、管理和監(jiān)視RMAN備份
一旦生成了一些備份,就需要對這些備份進行管理,如報告已經(jīng)創(chuàng)建了哪些備份,這些備份包含的內(nèi)容和狀態(tài)怎樣,哪些還需要備份,哪些備份已經(jīng)無效或多余可以刪除,如何刪除之前的備份等。
1、list、validate、restore...validate、restore...preview、report、delete和crosscheck命令
list命令列出已創(chuàng)建的備份。
列出備份匯總信息
RMAN> list backup summary;
列出所有備份集
RMAN> list backupset;
以上也可以使用命令
RMAN> list backup;
查看單個備份集
RMAN> list backupset 5;
列出所有映像副本
RMAN> list copy;
列出所有數(shù)據(jù)庫文件備份集(不包含控制文件、服務(wù)器初始化參數(shù)文件和歸檔日志文件)
RMAN> list backup of database;
列出包含控制文件的備份集
RMAN> list backup of controlfile;
列出包含服務(wù)器初始化參數(shù)文件的備份集
RMAN> list backup of spfile;
列出所有歸檔日志文件備份集
RMAN> list backup of archivelog all;
列出包含日志切換系列號為1000~1050的歸檔日志的備份集
RMAN> list backup of archivelog from sequence 1000 until sequence 1050;
列出包含數(shù)據(jù)文件1的備份集
RMAN> list backup of datafile 1;
列出包含USERS表空間的備份集
RMAN> list backup of tablespace users;
列出所有歸檔日志文件列表
RMAN> list archivelog all;
要改變list輸出信息中的日期時間格式,可在啟動RMAN前設(shè)置操作系統(tǒng)的環(huán)境變量nls_date_format,如在Windows下執(zhí)行命令
C:\> set nls_date_format=yyyy-mm-dd hh34:mi:ss
validate、restore...validate、restore...preview用于驗證備份集的可用性以及驗證和查看需要的恢復(fù)內(nèi)容是否在備份集中。
驗證備份集的可用性
RMAN> validate backupset 20;
驗證表空間是否在備份集中
RMAN> restore tablespace users validate;
驗證數(shù)據(jù)文件是否在備份集中
RMAN> restore datafile 'd:\oradata\mes\system01.dbf' validate;
以上命令也可以使用文件號來表示
RMAN>restore datafile 1 validate;
查看恢復(fù)整個數(shù)據(jù)庫的備份是否存在
RMAN> restore database preview;
查看恢復(fù)某個表空間所需的備份是否存在
RMAN> restore tablespace users preview;
查看恢復(fù)某個數(shù)據(jù)文件所需的備份是否存在
RMAN> restore datafile 5 preview;
report命令按照設(shè)定的保留策略,通過詢問目標數(shù)據(jù)庫確定哪些需要備份。
列出構(gòu)成數(shù)據(jù)庫的數(shù)據(jù)文件
RMAN> report schema;
應(yīng)用保留策略,列出至少需要一個備份來滿足策略的所有數(shù)據(jù)文件
RMAN> report need backup;
列出一周未備份的所有對象,使用這一命令將忽略配置的保留策略
RMAN> report need backup days 7;
列出備份數(shù)不足2份的數(shù)據(jù)文件
RMAN> report need backup redundancy 2;
按照保留策略的冗余度,列出所有多余的不再需要而可以刪除的備份
RMAN> report obsolete;
該命令之后可以使用delete命令將多余的備份刪除
RMAN> delete obsolete;
列出以7天為恢復(fù)窗口策略的過期備份
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;
刪除所有的數(shù)據(jù)庫文件備份(不包括控制文件、服務(wù)器初始化參數(shù)文件和歸檔日志文件)
RMAN> delete backup of database;
刪除控制文件備份
RMAN> delete backup of controlfile;
刪除初始化參數(shù)文件備份
RMAN> delete backup of spfile;
刪除所有歸檔日志文件備份
RMAN> delete backup of archivelog all;
刪除指定編號的備份集
RMAN> delete backupset 36;
刪除
網(wǎng)站題目:如何使用RMAN備份數(shù)據(jù)庫
本文網(wǎng)址:http://jinyejixie.com/article26/ppsjjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、用戶體驗、網(wǎng)站制作、全網(wǎng)營銷推廣、微信公眾號、移動網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)