Oracle Secure Backup管理員指南 第4章 結合使用RMAN與Oracle安全備份
作者: 不剪發(fā)的Tony老師
畢業(yè)于北京航空航天大學,十多年數(shù)據(jù)庫管理與開發(fā)經(jīng)驗,目前在一家全球性的金融公司從事數(shù)據(jù)庫架構設計。CSDN學院簽約講師以及GitChat專欄作者。csdn上的博客收藏于以下地址:https://tonydong.blog.csdn.net
本章介紹如何結合使用恢復管理器(RMAN)與Oracle安全備份。文章假設用戶已經(jīng)熟悉了RMAN概念與操作。
4.1、關于RMAN與Oracle安全備份
Oracle安全備份相當于RMAN通過SBT接口進行備份時的一個介質(zhì)管理層。Oracle安全備份和第三方備份工具可以與RMAN的SBT接口API結合使用。
雖然Oracle安全備份支持早期的數(shù)據(jù)庫版本,主要功能從Oracle Database 10G R2開始支持。以下的集成增強為Oracle安全備份專有,對于其他介質(zhì)管理產(chǎn)品不可用:
Oracle Database 10G R2 -- Oracle EM為RMAN和Oracle安全備份提供統(tǒng)一接口。另外,使用Oracle EM管理磁帶、介質(zhì)服務器以及磁帶設備為Oracle安全備份專有;Oracle安全備份SBT庫是唯一支持RMAN直接加密備份到磁帶的接口。如果嘗試使用其他SBT庫執(zhí)行加密RMAN備份,將會提示以下錯誤信息:ORA-19916: encrypted backups to tertiary storage require Oracle Secure Backup;直接備份到磁帶時的未使用塊壓縮為Oracle安全備份專有。如果使用Oracle安全備份執(zhí)行磁盤備份或者直接到磁帶的備份,可以使用未使用塊優(yōu)化。如果使用第三方介質(zhì)管理產(chǎn)品直接備份到磁帶,不能使用該功能。
Oracle Database 11G -- SBT和磁帶使用一個共享的緩沖區(qū)以優(yōu)化SBT緩沖區(qū)分配。這樣減少了從SBT緩沖區(qū)到磁帶緩沖區(qū)的復制過程,可以減少CPU負載;增強了回滾表空間的備份,排除了已提交的回滾信息,減少了磁帶消耗并提高了性能。
4.1.1、RMAN環(huán)境
RMAN是一個用于備份Oracle數(shù)據(jù)庫文件的工具。RMAN環(huán)境包含以下基本組件:
RMAN客戶端。RMAN客戶端隨Oracle數(shù)據(jù)庫軟件自動安裝,可以啟動數(shù)據(jù)庫備份和恢復。RMAN客戶端可以備份和恢復任何本地訪問的數(shù)據(jù)庫文件,或者滿足兼容性需求的Oracle Net訪問的數(shù)據(jù)庫文件。
RMAN目標數(shù)據(jù)庫。RMAN目標數(shù)據(jù)庫是RMAN備份或者還原操作的數(shù)據(jù)庫。RMAN用于管理備份和恢復的元數(shù)據(jù)存儲在目標數(shù)據(jù)庫的控制文件中,或者存儲在RMAN恢復目錄中。
RMAN恢復目錄。RMAN恢復目錄是一個可選的數(shù)據(jù)庫模式,用作RMAN元數(shù)據(jù)的二級存儲庫??梢栽谝粋€數(shù)據(jù)庫中為多個目標數(shù)據(jù)庫創(chuàng)建一個集中的恢復目錄。
4.1.2、數(shù)據(jù)庫備份
Oracle安全備份為RMAN提供了一個數(shù)據(jù)庫文件磁帶備份的SBT接口。在Oracle安全備份管理域中,SBT備份通過RMAN命令行或者Oracle EM啟動,而文件系統(tǒng)備份通過Oracle安全備份Web工具或者obtool命令行提交。
4.1.2.1、RMAN備份集與Oracle安全備份映像
RMAN數(shù)據(jù)庫文件備份的結果是一個備份集。備份集是物理文件的組合,每個物理文件被稱為一個備份片。
使用Oracle安全備份將數(shù)據(jù)庫備份到磁帶時,每個備份片被看作一個Oracle安全備份映像。圖4-1說明了備份片與備份映像之間的關系。單個備份映像可以跨越多盒磁帶。Oracle安全備份可以在同一盒磁帶中寫入數(shù)據(jù)庫備份映像(RMAN備份片)和文件系統(tǒng)備份映像。
圖4-1 備份集與備份映像
4.1.2.2、數(shù)據(jù)庫備份存儲選擇器
定義Oracle安全備份中的RMAN備份存儲參數(shù)可以通過以下操作之一完成:
在一個用于Oracle安全備份的RMAN腳本中定義參數(shù)
定義Oracle安全備份數(shù)據(jù)庫備份存儲選擇器
Oracle推薦定義一個或者多個數(shù)據(jù)庫備份存儲選擇器,以自動選擇磁帶存儲。在需要不同的存儲介質(zhì),而不是使用存儲選擇器的非重復執(zhí)行的備份中,可以使用RMAN存儲參數(shù)覆蓋數(shù)據(jù)庫備份存儲選擇器中的設置。
Oracle安全備份使用數(shù)據(jù)庫備份存儲選擇器中封裝的信息與RMAN進行交互。Oracle安全備份使用存儲選擇器代表標識數(shù)據(jù)庫文件的備份屬性。
數(shù)據(jù)庫備份存儲選擇器必須指定以下信息:
唯一標識數(shù)據(jù)庫的數(shù)據(jù)庫名稱或者DBID
數(shù)據(jù)庫主機名稱
用于RMAN備份的介質(zhì)簇名稱
數(shù)據(jù)庫備份存儲選擇器還可以指定以下信息:
備份的內(nèi)容或者類型,例如,是否是完全備份或者增量備份
雙工備份的拷貝數(shù)量
備份能夠使用的磁帶設備限制
備份Oracle數(shù)據(jù)庫文件時,RMAN將數(shù)據(jù)庫名稱、內(nèi)容類型以及拷貝數(shù)傳遞給Oracle安全備份。Oracle安全備份使用這些信息決定相應的數(shù)據(jù)庫備份存儲選擇器。存儲選擇器指定了該備份使用的磁帶設備以及介質(zhì)簇(如果指定了的話)。
可以創(chuàng)建多個數(shù)據(jù)庫備份存儲選擇器。例如,可以創(chuàng)建一個數(shù)據(jù)庫存儲選擇器用于管理域中的所有數(shù)據(jù)庫的數(shù)據(jù)文件備份,創(chuàng)建另一個選擇器用于管理域中的所有數(shù)據(jù)庫的歸檔日志備份??梢詾閿?shù)據(jù)文件備份指定一個磁帶庫,為歸檔日志備份指定另一個磁帶庫。
數(shù)據(jù)庫存儲選擇器必須唯一。除了通配符(*)之外,更通用的設置可以匹配具體的設置。例如,假設創(chuàng)建了一個--dbname為db_1和db_2的存儲選擇器,就不能再創(chuàng)建一個--dbname為db_1,并且其他所有屬性與前一個選擇器相同的存儲選擇器。但是,如果創(chuàng)建了一個--dbname為全部(*)的存儲選擇器,可以再創(chuàng)建一個--dbname為db_1,并且其他所有屬性與前一個選擇器相同的存儲選擇器。
當使用SBT接口執(zhí)行RMAN備份時,Oracle安全備份檢查數(shù)據(jù)庫備份存儲選擇器以決定它是否匹配備份作業(yè)的屬性。當備份存儲選擇器的每個屬性都匹配備份作業(yè)相應的屬性時,被認為匹配。如果多個存儲選擇器匹配該作業(yè),Oracle安全備份選擇屬性更加具體的選擇器。例如,數(shù)據(jù)庫名設置為db_1的備份存儲選擇器在數(shù)據(jù)庫名設置為全部(*)的備份存儲選擇器之前匹配。
Oracle安全備份在管理服務器的Oracle安全備份主目錄下的admin/ssel子目錄中維護存儲選擇器信息。
4.1.3、數(shù)據(jù)庫還原與恢復
通過RMAN執(zhí)行的還原操作被稱為Oracle數(shù)據(jù)庫還原操作。
4.1.4、管理數(shù)據(jù)庫備份與恢復的接口
4.1.4.1、RMAN命令行客戶端
rman可執(zhí)行文件位于ORACLE_HOME/bin目錄中。RMAN客戶端可以從任何Oracle主目錄中運行,不論該計算機是否是Oracle安全備份管理域中的成員。目標數(shù)據(jù)庫主機必須是管理域中的成員。目標數(shù)據(jù)庫使用目標主機上的Oracle安全備份SBT與管理域進行交互。
4.1.4.2、Oracle EM DC 10g與11g
可以通過Oracle Enterprise Manager Database Control管理單實例數(shù)據(jù)庫操作,包括備份與恢復。Database Control控制臺、目標數(shù)據(jù)庫以及Oracle安全備份管理服務器必須位于同一主機中。
4.1.4.3、Oracle EM GC 10g
可以使用Oracle Enterprise Manager Grid Control管理多個數(shù)據(jù)庫。Grid Control控制臺可以運行在管理域中的任何數(shù)據(jù)庫主機中。與Oracle Enterprise Manager Database Control不同,Grid Control不需要運行在管理服務器中。
可以通過Grid Control管理Oracle安全備份管理域中所有數(shù)據(jù)庫的SBT備份??梢栽诎珿rid Control資料庫的數(shù)據(jù)庫中創(chuàng)建一個集中的RMAN恢復目錄。
使用Grid Control 10.2.0.2版時,如果Enterprise Manager資料庫位于一個Oracle 10.2版數(shù)據(jù)庫中,可以使用運行Oracle 10.1或者更早版本的主機上的Oracle安全備份軟件。
4.1.5、RMAN與Oracle安全備份管理域
單主機管理域
在單主機管理域中,一個主機同時擔任管理服務器、介質(zhì)服務器以及客戶端的角色。Oracle數(shù)據(jù)庫位于該主機中。圖4-2演示了典型的單主機場景。
圖4-2 單主機管理域數(shù)據(jù)庫備份
由于數(shù)據(jù)庫安裝在管理服務器中,可以使用Enterprise Manager Database Control控制臺執(zhí)行Oracle安全備份數(shù)據(jù)庫備份與還原操作。
多主機管理域
在多主機管理域中,管理服務器、介質(zhì)服務器以及客戶端主機可能相互獨立,或者每個數(shù)據(jù)庫服務器還同時作為一個介質(zhì)服務器。后一個配置可以最小化基于網(wǎng)絡的備份操作。一個管理域只能包含一個管理服務器,但是能夠包含多個介質(zhì)服務器和客戶端。
圖4-3演示了一個典型的多主機管理域,每個客戶端主機運行一個Oracle數(shù)據(jù)庫。在這個例子中,管理服務器和介質(zhì)服務器不運行數(shù)據(jù)庫。Windows上的數(shù)據(jù)庫包含一個存儲管理域所有數(shù)據(jù)庫備份元數(shù)據(jù)的集中恢復目錄。
圖4-3 多主機管理域數(shù)據(jù)庫備份
由于目標數(shù)據(jù)庫不位于管理服務器中,不能使用Oracle Enterprise Manager Database Control執(zhí)行Oracle安全備份SBT備份。但是,可以使用客戶端上的Grid Control執(zhí)行SBT備份操作。
4.1.6、RMAN如何訪問Oracle安全備份
無論管理域配置和管理備份與恢復的前端接口如何,RMAN與Oracle安全備份SBT庫的交互過程是相同的。圖4-4顯示了使用Oracle安全備份SBT的RMAN備份會還原操作的基本組成。
圖4-4 RMAN與Oracle安全備份SBT接口
使用Oracle安全備份的RMAN備份與還原操作基本過程如下:
Oracle安全備份用戶通過命令行或者Oracle EM控制臺啟動RMAN客戶端。
該Oracle安全備份用戶分配一個SBT通道并運行RMAN的BACKUP或者RESTORE命令。分配通道時,在Oracle數(shù)據(jù)庫中打開一個服務器會話。
數(shù)據(jù)庫主機中的服務器會話通過Oracle安全備份SBT庫提交備份或者還原作業(yè)請求。
Oracle安全備份創(chuàng)建備份或者還原作業(yè),并為它指定一個唯一的標識符,例如sbt/15。
對于RMAN備份操作,Oracle安全備份立即嘗試預訂并啟動適當?shù)馁Y源。如果資源不可用,Oracle安全備份將作業(yè)放入隊列,等待資源可用。可以通過以下設置控制作業(yè)等待的時間:操作策略rmanresourcewaittime,該策略默認為forever。備份存儲選擇器或者RMAN參數(shù)設置可以覆蓋該策略;在obtool的mkssel或者chssel命令中指定--waittime選項;RMAN參數(shù)OB_RESOURCE_WAIT_TIME。
對于RMAN還原操作,起始時間取決于操作策略類中的rmanrestorestartdelay策略的設置。
RMAN創(chuàng)建或者還原備份片。
對于備份,Oracle安全備份在Oracle安全備份目錄中存儲關于RMAN備份片的元數(shù)據(jù)。Oracle安全備份目錄的存儲與管理完全同RMAN恢復目錄獨立。Oracle安全備份存儲每個備份片和相應的元數(shù)據(jù)。
4.1.7、非統(tǒng)一訪問內(nèi)存(NUMA)支持
從Oracle安全備份10.4.0.1開始,支持NUMA架構。在NUMA系統(tǒng)中,處理器被分組到成為節(jié)點或者區(qū)域的更小的系統(tǒng)中。每個節(jié)點擁有自己的處理器和共用內(nèi)存。節(jié)點中的所有處理器共享共用內(nèi)存。訪問這些本地內(nèi)存區(qū)域更快,因此提高了可用性和性能。
在數(shù)據(jù)庫備份或者還原操作中,Oracle影子進程管理Oracle安全備份與Oracle數(shù)據(jù)庫之間的交互。影子進程裝載SBT庫并啟動客戶端的Oracle安全備份數(shù)據(jù)服務(obndmpd),執(zhí)行網(wǎng)絡I/O。Oracle影子進程和Oracle安全備份數(shù)據(jù)服務使用共用的內(nèi)存區(qū)域交換數(shù)據(jù)。
在NUMA機器中,Oracle安全備份確保Oracle影子進程和Oracle安全備份數(shù)據(jù)服務運行在同一個節(jié)點上,訪問相同的共用內(nèi)存。
4.2、配置Oracle安全備份以使用RMAN
在Oracle安全備份中執(zhí)行以下配置步驟,以結合使用RMAN:
配置RMAN訪問Oracle安全備份SBT。如果使用Enterprise Manager Database Control,該步驟包括在EM中注冊管理服務器。
創(chuàng)建一個用于RMAN操作的預授權的Oracle安全備份用戶。這是一個必須執(zhí)行的步驟。
Oracle建議創(chuàng)建用于數(shù)據(jù)文件和歸檔重做日志的介質(zhì)簇。如果沒有創(chuàng)建介質(zhì)簇,RMAN默認使用RMAN-DEFAULT介質(zhì)簇。
可以選擇性地配置數(shù)據(jù)庫備份存儲選擇器或者RMAN介質(zhì)管理參數(shù)。這些設置可以更細粒度地控制備份存儲選擇。
可選擇性地將OB_IGNORE_NUMA設置為0,以禁用NUMA識別。該參數(shù)默認為1,使得Oracle安全備份能夠識別NUMA。
可以通過任何Oracle安全備份接口執(zhí)行以上配置任務。如果可能,本節(jié)將解釋如何通過Enterprise Manager Database Control控制臺執(zhí)行這些配置。
4.2.1、配置RMAN訪問Oracle安全備份SBT庫
可以使用Enterprise Manager Database Control配置RMAN訪問Oracle安全備份。只需要指定Oracle安全備份主目錄,RMAN自動查找SBT庫。
默認情況下,RMAN在一個與平臺相關的默認位置查找SBT庫。在Linux和UNIX中,默認庫文件名為/lib/libobk.so,擴展名隨著平臺變化:.so,.sl,.a等等。在Windows中,默認庫文件名為%WINDIR%\System32\orasbt.dll。
在Linux和UNIX上安裝Oracle安全備份是,安裝程序自動將SBT庫復制到Oracle安全備份主目錄的lib子目錄中,并在/lib或者/usr/lib目錄中創(chuàng)建一個到SBT庫的符號鏈接。
默認情況下,RMAN在分配SBT通道時搜索標準路徑并裝載SBT庫??梢栽诜峙渫ǖ阑蛘吲渲猛ǖ罆r,通過SBT_LIBRARY介質(zhì)管理參數(shù)覆蓋SBT庫位置。
4.2.2、創(chuàng)建預授權的Oracle安全備份用戶
Oracle安全備份只信任預授權用戶提交的SBT請求。該預授權的Oracle安全備份用戶必須滿足兩種需求。首先,用戶必須映射到能夠訪問被備份或者還原的文件的系統(tǒng)權限。該用戶只能從可以訪問這些文件的主機上執(zhí)行RMAN操作。其次,該用戶必須被賦予一個擁有以下權限的Oracle安全備份用戶類:access Oracle backups(設置為owner、class或者all);perform. Oracle backups and restores。
在一個主機上,只能有一個Oracle安全備份用戶被預授予RMAN備份與還原操作權限。數(shù)據(jù)庫可以擁有多個執(zhí)行備份或者還原操作的RMAN用戶,但是Oracle安全備份只能擁有一個預授權的用戶用于該服務器。
也可以預授權一個Oracle安全備份用戶用于命令行(obtool)操作。這在使用備份和還原腳本時非常有用。
4.2.2.1、Oracle安全備份如何預授權SBT備份
圖4-5演示了一個預授權在特定主機上執(zhí)行RMAN操作的Oracle安全備份用戶提交備份或者還原操作到Oracle安全備份的基本過程。
圖4-5 預授權的數(shù)據(jù)庫備份與還原操作
執(zhí)行過程如下:
啟動RMAN并分配一個SBT通道,Oracle數(shù)據(jù)庫啟動一個服務器會話。
服務器會話使用SBT庫與本機上的obproxyd后臺進程進行交互。
本地obproxyd后臺進程確定運行服務器會話的操作系統(tǒng)用戶。假設本例中操作系統(tǒng)用戶為oracle,運行在Linux主機brhost2中。
本地obproxyd后臺進程同管理服務器的observiced后臺進程檢查該操作系統(tǒng)用戶信息。如果此主機和操作系統(tǒng)的該用戶被預授予一個Oracle安全備份用戶,成功登錄Oracle安全備份。例如,假設主機brhost2上的oracle操作系統(tǒng)用戶被預授予Oracle安全備份用戶obuser。同時假設obuser是oracle用戶類(默認賦予了perform. Oracle backups and restores權限)的成員。
服務器會話使用Oracle安全備份用戶備份或者還原文件。通過SBT提交的Oracle安全備份操作使用定義的操作系統(tǒng)用戶訪問主機文件。在圖4-5示例中,備份與還原操作以主機brhost2的oracle操作系統(tǒng)賬戶運行。
4.2.2.2、配置RMAN預授權
可以在安裝Oracle安全備份軟件的過程中,或者在安裝之后使用Oracle安全備份Web工具或obtool的mkuser命令,配置一個擁有執(zhí)行Oracle數(shù)據(jù)庫文件磁帶備份的預授權的Oracle安全備份用戶。
在Linux或者UNIX中,要在安裝過程中創(chuàng)建一個預授權的Oracle安全備份用戶,必須設置一個obparameters參數(shù)為create preauthorized oracle user。
在Windows中,要在安裝過程中創(chuàng)建一個預授權的Oracle安全備份用戶,必須在選擇管理服務器特性時啟用Create “oracle” user功能。
要在安裝之后配置一個預授權的Oracle安全備份用戶,使用Web工具或者obtool的mkuser命令。示例4-1使用mkuser創(chuàng)建一個名為preauth_user的用戶,并指定了oracle用戶類。示例使用--preauth將preauth_user映射到主機brhost2上的Linux或者UNIX用戶oracle。
示例4-1 預授權操作系統(tǒng)用戶以執(zhí)行RMAN備份
mkuser preauth_user --class oracle --preauth brhost2:oracle+rman
4.2.3、創(chuàng)建RMAN備份的介質(zhì)簇
Oracle建議為RMAN操作創(chuàng)建專用的介質(zhì)簇,否則,Oracle安全備份將會使用默認的介質(zhì)簇。
RMAN使用的默認介質(zhì)簇為RMAN-DEFAULT。不能刪除或者重命名RMAN-DEFAULT介質(zhì)簇,但是能夠通過Web工具或者obtool修改它的某些屬性。
為歸檔日志和數(shù)據(jù)文件備份集創(chuàng)建不同的介質(zhì)簇是有益處的??梢允褂肊M、Oracle安全備份Web工具或者obtool的mkmf命令創(chuàng)建介質(zhì)簇。
創(chuàng)建介質(zhì)簇時,指定一個帶卷過期策略,它決定了該介質(zhì)簇中的帶卷何時能夠被復寫和重用。一個介質(zhì)簇中帶卷可以使用內(nèi)容管理的過期策略或者時間管理的過期策略。
內(nèi)容管理的帶卷只能用于RMAN操作。時間管理的帶卷可以同時用于RMAN和文件系統(tǒng)備份與還原操作。因此,時間管理的帶卷可能包含文件系統(tǒng)備份和RMAN備份片的混合。
注意:如果將RMAN備份存儲到時間管理的帶卷中,有可能帶卷過期并重用,而RMAN資料庫報告該帶卷上的備份片仍然可用。此時,必須使用RMAN的CROSSCHECK命令解決這種差異問題。
4.2.4、在EM中創(chuàng)建數(shù)據(jù)庫備份存儲選擇器
可以使用Oracle Enterprise Manager Database Control創(chuàng)建數(shù)據(jù)庫備份存儲選擇器。Database Control賦予選擇器一個系統(tǒng)定義的名稱。要為存儲器指定自定義的名稱,使用obtool的mkssel命令。
4.2.5、設置RMAN中的介質(zhì)管理參數(shù)
如果使用了Oracle安全備份數(shù)據(jù)庫存儲選擇器,不需要在RMAN中設置介質(zhì)管理參數(shù)。但是,在某些情況下,可能想要通過RMAN參數(shù)覆蓋數(shù)據(jù)庫存儲選擇器的設置。
可以通過以下方式設置RMAN介質(zhì)管理參數(shù):
環(huán)境變量,通過CONFIGURE或者ALLOCATE CHANNEL命令的PARMS選項的ENV參數(shù)指定
RMAN的SEND命令
可以在RMAN備份和還原作業(yè)中使用以下Oracle安全備份參數(shù):
OB_MEDIA_FAMILY[ _n ],定義備份作業(yè)能夠使用的介質(zhì)簇。
OB_DEVICE[ _n ],定義備份能夠使用的磁帶驅(qū)動器。
OB_RESOURCE_WAIT_TIME,指定備份或者還原作業(yè)等待資源可用的時間長度。
OB_ENCRYPTION,控制Oracle安全備份加密。
OB_RESTORE_DEVICE,指定還原操作使用的磁帶設備。如果指定設備沒有定義,Oracle安全備份將會使用任何可用的設備。
OB_IGNORE_NUMA,控制NUMA識別。默認值為1,即允許NUMA。參見4.1.7。
一般來說,介質(zhì)管理參數(shù)會覆蓋數(shù)據(jù)庫備份存儲選擇器中相應的設置。
執(zhí)行以下操作設置RMAN數(shù)據(jù)庫備份的介質(zhì)管理參數(shù):
完成“4.4 結合RMAN與Oracle安全備份執(zhí)行備份”中的步驟1至步驟9。
點擊Edit RMAN Script。出現(xiàn)Schedule Customized Backup:Review:Edit RMAN Script頁面。
在主窗口中,修改腳本以使用介質(zhì)管理參數(shù)。例如,假設備份腳本如下:
backup device type sbt database include current controlfile;
backup device type sbt archivelog all not backed up;
要配置備份使用my_mf介質(zhì)簇,可以修改腳本如下:
run
{
allocate channel c1 device type sbt
parms 'ENV=(OB_MEDIA_FAMILY=my_mf)';
backup database include current controlfile;
backup archivelog all not backed up;
}
點擊Submit Job。出現(xiàn)Status頁面。
4.3、RMAN備份主作業(yè)與從屬作業(yè)
當開始數(shù)據(jù)庫備份作業(yè)時,Oracle安全備份解釋RMAN命令并為數(shù)據(jù)庫創(chuàng)建一個從屬作業(yè)。所有的Oracle安全備份RMAN備份至少包含一個從屬作業(yè)。但是如果需要生成單獨的作業(yè),Oracle安全備份將會創(chuàng)建多個從屬作業(yè)。例如,將數(shù)據(jù)庫備份兩個相同的副本到單獨的驅(qū)動器,則主作業(yè)將會產(chǎn)生兩個從屬作業(yè)。
以下示例演示了一個數(shù)據(jù)庫備份作業(yè)和它的兩個從屬備份作業(yè)。此時存在兩個備份副本被寫入單獨的磁帶驅(qū)動器。
Recovery Manager: Release 10.2.0.2.0 - Production on Wed Jun 25 12:18:32 2008
Copyright (c) 1982, 2008, Oracle. All rights reserved.
RMAN-06568: connected to target database: TSTVW1 (DBID=1586108579, not open)
RMAN-06009: using target database control file instead of recovery catalog
RMAN> run {
2> set backup COPIES 2 ;
3> backup tablespace tbs_mult ;
4> }
5>
RMAN-03023: executing command: SET BACKUP COPIES
RMAN-03090: Starting backup at 25-JUN-08
RMAN-08030: allocated channel: ORA_SBT_TAPE_1
RMAN-08500: channel ORA_SBT_TAPE_1: sid=93 devtype=SBT_TAPE
RMAN-08526: channel ORA_SBT_TAPE_1: Oracle Secure Backup
RMAN-08008: channel ORA_SBT_TAPE_1: starting full datafile backupset
RMAN-08010: channel ORA_SBT_TAPE_1: specifying datafile(s) in backupset
RMAN-08522: input datafile fno=00004 name=/jfersten_tstvw1/oracle/dbs/tbs_mult.dat
RMAN-08038: channel ORA_SBT_TAPE_1: starting piece 1 at 25-JUN-08
RMAN-08053: channel ORA_SBT_TAPE_1: finished piece 1 at 25-JUN-08 with 2 copies
and tag TAG20080625T121838
RMAN-08503: piece handle=06jjqgcu_1_1 comment=API Version 2.0,MMS Version 10.2.0.0
RMAN-08503: piece handle=06jjqgcu_1_2 comment=API Version 2.0,MMS Version 10.2.0.0
RMAN-08540: channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:11:06
RMAN-03091: Finished backup at 25-JUN-08
Recovery Manager complete.
主作業(yè)為sbt/8:
ob> lsj -l --log sbt/8
sbt/8:
Type: database tstvw1 (dbid=1586108579)
Scheduled time: none
State: completed successfully at 2008/06/25.12:29
Priority: 100
Privileged op: no
Run on host: (administrative server)
Attempts: 0
Log:
2008/06/25.12:29:37 Job completed successfully.
從屬作業(yè)為sbt/8.1和sbt/8.2:
ob> lsj -l sbt/8.1
sbt/8.1:
Type: datafile backup
Backup piece: 06jjqgcu_1_1
Family: verylongmediafamilyname
Encryption: off
Scheduled time: none
State: completed successfully at 2008/06/25.12:29
Priority: 100
Privileged op: no
Run on host: brhost3
Attempts: 1
ob> lsj -l sbt/8.2
sbt/8.2:
Type: datafile backup
Backup piece: 06jjqgcu_1_2
Family: verylongmediafamilyname
Encryption: off
Scheduled time: none
State: completed successfully at 2008/06/25.12:29
Priority: 100
Privileged op: no
Run on host: brhost3
Attempts: 1
在作業(yè)描述中,Oracle安全備份根據(jù)RMAN備份類型決定作業(yè)名稱。有效的類型包括歸檔日志、數(shù)據(jù)庫、數(shù)據(jù)文件以及控制文件。Oracle安全備份為每個RMAN作業(yè)指定一個標識符,前綴為主作業(yè)ID,加上一個點號(.),然后是一個唯一的小數(shù)字。例如,15.1可能是計劃作業(yè)15的一個從屬作業(yè)。以下示例顯示了一個典型的lsj命令輸出,包含各種Oracle安全備份RMAN備份:
sbt/1.1 none archivelog backup completed successfully at 2008/06/25.12:04
sbt/2 none database tstvw1 completed successfully at 2008/06/25.12:04
sbt/2.1 none controlfile autobackup completed successfully at 2008/06/25.12:04
sbt/3 none database tstvw1 completed successfully at 2008/06/25.12:05
sbt/3.1 none datafile backup completed successfully at 2008/06/25.12:05
sbt/4 none database tstvw1 completed successfully at 2008/06/25.12:06
sbt/4.1 none restore piece '03jgj1_1' completed successfully at 2008/06/25.12:06
sbt/5 none database tstvw1 completed successfully at 2008/06/25.12:06
sbt/5.1 none incremental backup completed successfully at 2008/06/25.12:06
sbt/6 none database tstvw1 completed successfully at 2008/06/25.12:12
sbt/6.1 none datafile backup completed successfully at 2008/06/25.12:12
sbt/7 none database tstvw1 completed successfully at 2008/06/25.12:17
sbt/7.1 none restore piece '05jgj0_1' completed successfully at 2008/06/25.12:17
sbt/8 none database tstvw1 completed successfully at 2008/06/25.12:29
sbt/8.1 none datafile backup completed successfully at 2008/06/25.12:29
sbt/8.2 none datafile backup completed successfully at 2008/06/25.12:29
4.4、結合RMAN與Oracle安全備份執(zhí)行備份
配置完RMAN之后,執(zhí)行RMAN備份的過程與Oracle數(shù)據(jù)庫備份與恢復用戶指南中的過程相同。本節(jié)描述如何使用EM通過Oracle安全備份SBT執(zhí)行數(shù)據(jù)庫備份。
執(zhí)行以下操作通過Database Control備份數(shù)據(jù)庫:
使用擁有數(shù)據(jù)庫管理員權限的Oracle安全備份用戶登錄Oracle Enterprise Manager Database Control。
點擊Availability。出現(xiàn)Availability子頁面。
在Manage部分,點擊Schedule Backup。出現(xiàn)Database Instance:database_name > Schedule Backup頁面。
執(zhí)行以下操作:在Customized Backup部分,選擇Whole Database。該選項指定一個數(shù)據(jù)庫文件和歸檔日志的在線備份;在Host Credentials部分,在Username和Password項輸入能夠訪問目標數(shù)據(jù)庫的一個Oracle安全備份用戶的認證信息;如果想要Database Control記住認證信息,選擇Save as Preferred Credential;點擊Schedule Customized Backup。出現(xiàn)Schedule Customized Backup:Options頁面。
在Backup Type部分選擇Full Backup。
要想使用RMAN加密(非Oracle安全備份加密)進行備份加密,選擇Secure the backup using Recovery Manager encryption。執(zhí)行以下操作:在Encryption Algorithm列表中選擇一個加密算法;選擇一個加密模式。同時選擇兩種加密模式能夠在還原備份時靈活使用Oracle數(shù)據(jù)庫加密錢夾或者口令。如果選擇口令保護加密,在Password和Confirm Password項輸入一個口令。
對于RMAN加密,數(shù)據(jù)庫管理加密密鑰。對于Oracle安全備份加密,Oracle安全備份管理文件系統(tǒng)和數(shù)據(jù)庫備份的密鑰。
點擊Next。出現(xiàn)Schedule Customized Backup:Settings頁面。
點擊View Default Settings查看當前備份的設置。點擊Override Current Settings進入備份設置頁面,修改當前的磁帶驅(qū)動器數(shù)量和磁帶備份類型設置。點擊備份設置頁面的Override按鈕修改當前備份的介質(zhì)簇和/或磁帶驅(qū)動器。
選擇Tape選項并點擊Next。出現(xiàn)Schedule Customized Backup:Schedule頁面。
在Job部分,該頁面在Job Name項顯示了一個作業(yè)名稱,在Job Description項顯示了備份類型。選擇一個計劃類型,可選項包括:
One Time(Immediately)
One Time(Later)
Repeating
點擊Next。出現(xiàn)Schedule Customized Backup:Review頁面。
檢查備份特性,并點擊Submit Job。出現(xiàn)Status頁面。
點擊View Job監(jiān)控備份進度。出現(xiàn)Execution:database_name頁面。刷新該頁面直到出現(xiàn)Backup鏈接。
點擊Backup。出現(xiàn)Step:Backup頁面。刷新頁面以顯示該備份作業(yè)的RMAN輸出。
4.5、結合RMAN與Oracle安全備份執(zhí)行恢復
配置完RMAN之后,還原數(shù)據(jù)庫文件的過程與Oracle數(shù)據(jù)庫備份與恢復用戶指南中的過程相同。關于使用Oracle Database Control還原與恢復完整數(shù)據(jù)庫的逐步指導,參見以下URL:http://www.oracle.com/technology/obe/11gr1_2day_dba/backup/backup.htm#t6。
4.6、RMAN與Oracle安全備份加密
使用Oracle安全備份時可以通過以下兩種方式之一進行數(shù)據(jù)庫備份加密:
使用RMAN備份加密,可以加密數(shù)據(jù)庫中的數(shù)據(jù)。該選項可以用于Oracle數(shù)據(jù)庫10.2之后的版本。
使用Oracle安全備份加密,可以加密RMAN通過SBT傳輸?shù)絆racle安全備份之后的數(shù)據(jù)。該選項從Oracle 9i之后可用。由于加密發(fā)生在數(shù)據(jù)庫之外,數(shù)據(jù)在通過網(wǎng)絡傳輸或者寫入本地附屬磁帶設備之前,在服務器中進行加密。Oracle安全備份可以用于RMAN以及文件系統(tǒng)備份。
4.7、Oracle安全備份中的RMAN備份元數(shù)據(jù)
Oracle安全備份維護了關于所有RMAN備份與文件系統(tǒng)備份的元數(shù)據(jù)。本節(jié)描述如何訪問Oracle安全備份目錄中的RMAN元數(shù)據(jù)。
4.7.1、關于RMAN與Oracle安全備份元數(shù)據(jù)
Oracle安全備份在管理服務器中維護了一份關于Oracle安全備份作業(yè)的元數(shù)據(jù)目錄??梢允褂肳eb工具顯示關于每個備份片,即Oracle安全備份Web工具中的備份映像,的目錄元數(shù)據(jù)。還可以使用obtool中的lsjob、catxcr以及l(fā)spiece命令。
4.7.1.1、RMAN磁帶備份的過期策略
可以將RMAN備份存儲到使用內(nèi)容管理或者時間管理的過期策略的帶卷中。如果使用內(nèi)容管理的帶卷,需要使用RMAN的DELETE OBSOLETE命令在RMAN資料庫中將備份片標記為已刪除。作為響應,Oracle安全備份將會更新目錄,以指示備份片已刪除。這樣RMAN資料庫和Oracle安全備份目錄都會顯示備份片已刪除。
注意:如果使用內(nèi)容管理的帶卷,RMAN保留策略決定了何時過期。如果使用控制文件作為RMAN資料庫,記錄保留時間參數(shù)必須大于等于備份需要保留的時間。
Oracle不推薦使用Oracle安全備份的rmpiece命令刪除磁帶中的備份片,因為這樣的話,RMAN元數(shù)據(jù)不能正確反映磁帶內(nèi)容。這種差異也可能由于時間管理的帶卷中的RMAN備份片過期,或者強制重寫帶卷而產(chǎn)生。使用RMAN的CROSSCHECK命令解決Oracle安全備份目錄與RMAN資料庫的差異問題。
4.7.2、顯示Oracle安全備份中的RMAN作業(yè)信息
使用Oracle安全備份SBT執(zhí)行的RMAN備份可以被所有Oracle安全備份作業(yè)管理命令控制。
使用RMAN備份或者還原數(shù)據(jù)庫時,作業(yè)包含了數(shù)據(jù)庫名稱。示例4-2顯示了關于數(shù)據(jù)庫orcl的備份與還原作業(yè)的輸出樣例。示例中的作業(yè)ID包含了oracle,因為作業(yè)由oracle用戶執(zhí)行。
示例4-2 數(shù)據(jù)庫備份與還原作業(yè)
ob> lsjob --all
Job ID Sched time Contents State
---------------- ----------- ------------------------------ ---------------------------------------
oracle/1 none database orcl (dbid=1091504057) completed successfully at 2008/08/11.11:29
oracle/1.1 none datafile backup completed successfully at 2008/08/11.11:29
oracle/2 none database orcl (dbid=1091504057) completed successfully at 2008/08/11.11:56
oracle/2.1 none datafile backup completed successfully at 2008/08/11.11:56
oracle/3 none database orcl (dbid=1091504057) completed successfully at 2008/08/11.11:57
oracle/3.1 none restore piece '06grqejs_1_1' completed successfully at 2008/08/11.11:57
4.7.2.1、顯示作業(yè)記錄
作業(yè)記錄(Job Transcripts)包含了關于Oracle安全備份作業(yè)的詳細信息。示例4-3顯示了一個規(guī)定日志備份的部分記錄。該備份使用了RMAN-DEFAULT介質(zhì)簇。
示例4-3 一個歸檔日志備份作業(yè)的記錄
ob> catxcr --head 22 sbt/6.1
2008/06/28.13:01:04 ______________________________________________________________________
2008/06/28.13:01:04
2008/06/28.13:01:04 Transcript. for job sbt/6.1 running on brhost1
2008/06/28.13:01:04
Volume label:
Volume tag: ADE202
Volume ID: RMAN-DEFAULT-000002
Volume sequence: 1
Volume set owner: root
Volume set created: Tue Jun 28 13:01:30 2008
Media family: RMAN-DEFAULT
Volume set expires: never; content manages reuse
Archive label:
File number: 1
File section: 1
Owner: root
Client host: brhost1
Backup level: 0
S/w compression: no
Archive created: Tue Jun 28 13:01:30 2008
4.7.2.2、顯示SBT錯誤
如果SBT會話產(chǎn)生了錯誤,Oracle安全備份嘗試將錯誤描述發(fā)送到管理服務器,存儲到作業(yè)記錄中。數(shù)據(jù)庫將SBT錯誤寫入跟蹤文件sbtio.log中,或者用戶定義的文件中。通常,sbtio.log位于Oracle主目錄的rdbms/log子目錄中。
4.7.3、顯示備份片信息
Oracle安全備份在備份片級別上維護了RMAN備份信息??梢酝ㄟ^Oracle安全備份Web工具的備份映像,或者obtool命令查看這些信息。雖然Oracle安全備份能夠查看備份片信息,但是備份集(備份片的邏輯組合)信息只能通過RMAN獲得。
Oracle安全備份中的一個RMAN備份片代表一個備份映像??梢允褂胦btool的lspiece命令顯示Oracle安全備份目錄中記錄的備份片信息。示例4-4顯示了lspiece的輸出示例。
示例4-4 顯示備份片
ob> lspiece --long
Backup piece OID: 104
Database: ob
Database ID: 1566254457
Content: archivelog
Copy number: 0
Created: 2008/06/28.13:01
Host: brhost1
Piece name: 05go3tgd_1_1
Backup piece OID: 105
Database: ob
Database ID: 1566254457
Content: archivelog
Copy number: 0
Created: 2008/06/28.13:02
Host: brhost1
Piece name: 06go3ti5_1_1
4.8、在Oracle RAC環(huán)境中結合使用RMAN與Oracle安全備份
可以結合使用Oracle安全備份SBT庫與RMAN備份Oracle RAC集群數(shù)據(jù)庫。
4.8.1、在Oracle RAC環(huán)境中安裝Oracle安全備份
Oracle推薦在集群的每個節(jié)點上都安裝Oracle安全備份,將節(jié)點配置為客戶端和/或介質(zhì)服務器。將所有節(jié)點加入管理域可以保護節(jié)點的本地文件。Oracle安全備份處理RAC客戶端的文件系統(tǒng)備份與處理其他客戶端主機的備份相同。
圖4-6顯示了一個包含三節(jié)點RAC系統(tǒng)的管理域示例,每個節(jié)點配置為一個客戶端。在RAC環(huán)境中,RMAN能夠還原備份片到安裝了Oracle安全備份軟件的任一節(jié)點中,無論備份片由哪一個節(jié)點創(chuàng)建。
圖4-6 在RAC集群環(huán)境中結合使用RMAN與Oracle安全備份
4.8.2、網(wǎng)絡備份與本地備份
為了性能考慮,區(qū)分Oracle RAC環(huán)境下的網(wǎng)絡備份與本地備份的配置是非常重要的。在RAC環(huán)境下的RMAN備份能夠根據(jù)工作負載分布動態(tài)進行分配。該技術在Oracle RAC數(shù)據(jù)庫使用Oracle安全備份通過網(wǎng)絡進行備份時有效,因為Oracle安全備份無論在哪一個節(jié)點執(zhí)行客戶端備份都相同。
如果RAC環(huán)境中的一個節(jié)點是介質(zhì)服務器,使用該節(jié)點在本地訪問的磁帶設備上創(chuàng)建備份將會更加高效。該技術避免了網(wǎng)絡帶寬的分配,而在配置為客戶端的RAC節(jié)點上執(zhí)行備份時需要網(wǎng)絡帶寬。
可以配置RMAN備份從指定節(jié)點執(zhí)行。Oracle推薦執(zhí)行RMAN永久配置,這樣只需要配置一次,并且能夠影響該數(shù)據(jù)庫的所有備份與還原操作。
在以下示例中,有3個磁帶驅(qū)動器附屬于主機hostA,另外2個磁帶驅(qū)動器附屬于hostB。配置步驟如下:
連接到RAC環(huán)境中的任一節(jié)點以配置RMAN參數(shù)。
設置并行度。
配置通道(3個)/connect/SID hostA。
配置通道(3個)/connect/SID hostB。
在以上示例中,建立了所需的6個通道,每個主機3個。該配置應用于每個備份與還原操作,除非覆蓋該設置??梢赃B接到RAC環(huán)境中的任何節(jié)點啟動RMAN操作,操作只在兩個已配置主機上執(zhí)行。
4.8.3、雙工備份
可以雙工備份操作,每個使用一個單獨的卷組,保留一個卷組在場以便使用,另一個卷組離場存儲用于災難恢復。為了便于管理,每個雙工的備份操作可以由它自己的數(shù)據(jù)庫存儲選擇器定義,并且寫入自己單獨的介質(zhì)簇。
數(shù)據(jù)庫備份存儲選擇器是用戶定義的用于Oracle數(shù)據(jù)庫備份的Oracle安全備份介質(zhì)策略。它們定義了介質(zhì)簇、磁帶設備、資源等待時間以及備份的副本數(shù)量。一個數(shù)據(jù)庫存儲選擇器可以用于管理域中的所有數(shù)據(jù)庫的備份,也可以為每個數(shù)據(jù)庫定義多個存儲選擇器。
在以下示例中,創(chuàng)建了名為ssel_1和ssel_2的兩個數(shù)據(jù)庫存儲選擇器。它們都備份主機host_name上的所有數(shù)據(jù)庫的全部內(nèi)容。但是ssel_1使用介質(zhì)簇mf_1,而ssel_2使用介質(zhì)簇mf_2:
ob> mkssel --dbid * --host host_name --content * --family mf_1 -- copynum 1 ssel_1
ob> mkssel --dbid * --host host_name --content * --family mf_2 -- copynum 2 ssel_2
如果使用RMAN雙工備份和PARALLELISM,可用磁帶驅(qū)動器數(shù)量必須滿足并發(fā)的2個備份副本。如果在上例中的通道配置將PARALLELSIM設置為2,備份操作需要4個磁帶驅(qū)動器(2個備份副本乘以PARALLELSIM)。
如果一個備份副本的磁帶驅(qū)動器不可用,另一個副本也不能執(zhí)行。此外,如果一個備份副本的備份流失敗,另一個副本也會失敗。
這種情況下還原操作只需要2個磁帶驅(qū)動器,因為還原操作不是雙工的。