Oracle Secure Backup管理員指南 第1章 基本概念

作者: 不剪發(fā)的Tony老師
畢業(yè)于北京航空航天大學,十多年數(shù)據(jù)庫管理與開發(fā)經(jīng)驗,目前在一家全球性的金融公司從事數(shù)據(jù)庫架構(gòu)設(shè)計。CSDN學院簽約講師以及GitChat專欄作者。csdn上的博客收藏于以下地址:https://tonydong.blog.csdn.net


1.1 Oracle安全備份特性

Oracle安全備份提供了保護文件系統(tǒng)數(shù)據(jù)和Oracle數(shù)據(jù)庫文件的可靠、集中式磁帶備份管理。使用Oracle安全備份的SBT接口可以通過恢復管理器RMAN備份與還原數(shù)據(jù)庫文件。Oracle安全備份幾乎支持SAN與SCSI環(huán)境中的各種磁帶驅(qū)動器和磁帶庫。

Oracle安全備份可以完成以下操作:

    集中管理分布式、混合平臺環(huán)境中的磁帶備份與還原操作。不需要使用NFS或者CIFS,可以在網(wǎng)絡(luò)的任何位置訪問本地與遠程文件系統(tǒng),以及任何磁帶設(shè)備
    在Linux與Windows平臺上備份數(shù)據(jù)到OCFS或者從OCFS還原數(shù)據(jù)
    加密所有存儲數(shù)據(jù)
    使用通配符和排除列表指定需要備份的數(shù)據(jù)
    執(zhí)行多級增量備份
    執(zhí)行數(shù)據(jù)庫雙工備份,將相同數(shù)據(jù)備份到多個磁帶設(shè)備??梢詾槊總€數(shù)據(jù)副本指定不同的介質(zhì)簇或者磁帶設(shè)備
    創(chuàng)建跨越多個帶卷的備份。帶卷是介質(zhì)的單位,例如8mm磁帶
    通過自動磁帶驅(qū)動器共享優(yōu)化磁帶資源
    快速數(shù)據(jù)恢復。Oracle安全備份使用直接塊定位與直接存取恢復,避免了定位文件時不必要的磁帶塊讀取。它在恢復目錄中維護了所有備份數(shù)據(jù)的磁帶位置記錄,用于快速檢索
    維護安全并限制可執(zhí)行數(shù)據(jù)管理操作的用戶的權(quán)限。默認使用SSL在管理域中進行主機認證和通信
    管理介質(zhì)從一個位置轉(zhuǎn)向另一個位置的輪轉(zhuǎn)
    使用用戶定義的策略自動執(zhí)行磁帶復制

1.2 管理域、目錄數(shù)據(jù)與配置文件

管理域是為了執(zhí)行備份與還原操作而作為一個共同單元進行管理的主機網(wǎng)絡(luò)。Oracle安全備份在管理服務(wù)器的OSB主目錄中將管理域的信息組織成一個分層文件結(jié)構(gòu)。OSB主目錄是指Oracle安全備份的安裝目錄。

圖1-1顯示了一個Oracle安全備份主目錄的結(jié)構(gòu)。該目錄結(jié)構(gòu)在所有平臺上都相同,但是UNIX和Linux上默認的主目錄為/usr/local/oracle/backup,Windows上默認為C:\Program Files\Oracle\Backup。

圖1 管理服務(wù)上的目錄

Oracle安全備份管理數(shù)據(jù)包含管理域內(nèi)的每個實體的配置數(shù)據(jù),例如用戶類、磁帶設(shè)備或者介質(zhì)簇。如圖1-1所示,配置目錄包含幾個子目錄,每個目錄代表OSB維護的對象。在每個對象目錄內(nèi),OSB維護了描述相應(yīng)對象屬性的文件。

Oracle安全備份目錄包含備份相關(guān)的信息。目錄admin/history/host目錄包含以管理域主機命名的子目錄。每個子目錄存在一個存儲備份目錄數(shù)據(jù)的文件。OSB支持大于2GB的備份目錄文件。該支持僅限于支持大于2GB文件的操作系統(tǒng)和文件系統(tǒng)。

本地主機和NDMP主機備份目錄占用的空間大小不同。以下三個部分之和可以估算本地備份的備份目錄空間預期增長,單位為字節(jié):

    (新建文件和目錄的數(shù)量)*(43 + 文件名稱平均長度)
    (被修改的已有文件數(shù)量)*(27字節(jié),用于統(tǒng)計記錄)
    (未修改的已有文件數(shù)量)* 0.5

 

以下三個部分之和可以估算第三方NDMP文件備份的備份目錄空間預期增長,單位為字節(jié):

 

    (新建文件和目錄的數(shù)量)*(53 + 文件名稱平均長度)
    (被修改的已有文件數(shù)量)*(27字節(jié),用于統(tǒng)計記錄)
    (未修改的已有文件數(shù)量)* 0.5

NDMP的每個備份文件還會在NDMP位置文件中占用16字節(jié),無論該文件是新建文件、被修改文件或者未修改文件。

注釋:Oracle安全備份在備份過程中會創(chuàng)建一個臨時的目錄副本。計劃管理服務(wù)器存儲空間時必須考慮該臨時副本。

Oracle安全備份自動保護備份目錄內(nèi)容和配置文件。在安裝過程中,Oracle安全備份調(diào)度必要的備份作業(yè)以備份這些文件。如果丟失了備份目錄數(shù)據(jù),例如磁盤失敗,可以從磁帶還原最近備份的目錄數(shù)據(jù),然后還原其他的數(shù)據(jù)。

 

通常,應(yīng)該通過obtool或者Oracle安全備份Web工具訪問配置數(shù)據(jù)和備份目錄。避免通過文件系統(tǒng)直接訪問包含這些數(shù)據(jù)的文件。

 
 

1.3 Oracle安全備份后臺進程

Oracle安全備份后臺進程是執(zhí)行Oracle安全備份操作的后臺處理程序。一些后臺進程一直在運行,另外一些則只在執(zhí)行特定作業(yè)時運行,并在完成后退出。

注釋:在Windows操作系統(tǒng)中,只有后臺服務(wù)進程是一個Windows服務(wù)。其他后臺進程不是服務(wù)。
 

1.3.1 后臺進程類型

管理域使用各種后臺進程執(zhí)行備份、還原以及配置任務(wù)。在Linux或者UNIX中,后臺進程位于Oracle安全備份主目錄的etc子目錄中;在Windows中,后臺進程位于bin子目錄中。

表1-1列出了Oracle安全備份后臺進程以及它們運行與何種角色的主機中。

表1-1 按主機類型分布的Oracle安全備份后臺進程
 

 

1.3.1.1 后臺服務(wù)進程

服務(wù)進程observiced提供多種服務(wù)。它在管理服務(wù)器、介質(zhì)服務(wù)器以及客戶端上持續(xù)運行。

在管理服務(wù)器中,observiced響應(yīng)后臺調(diào)度進程的請求運行作業(yè),清除日志文件和記錄文件,并且為其他主機提供Oracle安全備份配置數(shù)據(jù)的訪問。observiced還用作認證中心,接受主機認證簽名請求,并返回簽名認證。observiced在初始化時啟動調(diào)度進程和Apache網(wǎng)絡(luò)服務(wù)進程。

當在介質(zhì)服務(wù)器或者客戶端運行時,observiced代表管理域中的成員,允許執(zhí)行主機的遠程管理,并處理認證操作。發(fā)送請求的主機的身份證書用于驗證它允許調(diào)用相應(yīng)操作。

在所有主機上,后臺服務(wù)進程通常作為系統(tǒng)啟動的一部分啟動。在UNIX和Linux上,通常使用/etc/init.d中的項啟動,而在Windows系統(tǒng)中,服務(wù)通過服務(wù)控制管理器啟動。
 

1.3.1.2 后臺調(diào)度進程

調(diào)度進程obscheduled是Oracle安全備份的調(diào)度器。調(diào)度進程在管理服務(wù)器上持續(xù)運行。

調(diào)度進程管理每個計劃備份,維護一個包含所有可用磁帶設(shè)備的列表,在磁帶設(shè)備可用時為它們分配備份作業(yè)。該進程接收來自obtool用戶以及響應(yīng)RMAN命令的SBT接口的作業(yè)創(chuàng)建請求。

調(diào)度器策略控制如何安排備份請求。
 

1.3.1.3 后臺索引進程

索引進程obixd管理每個客戶端的備份目錄。索引進程在管理服務(wù)器上間斷運行。

索引進程在任何備份結(jié)束時啟動,將obtar生成的索引數(shù)據(jù)導入備份目錄中。此外,obixd在還原或者瀏覽操作必須訪問備份目錄時啟動。
 

1.3.1.4 Apache網(wǎng)絡(luò)服務(wù)進程

網(wǎng)絡(luò)服務(wù)進程obhttpd為Oracle安全備份提供Web工具。該進程在管理服務(wù)器上持續(xù)運行。

網(wǎng)絡(luò)服務(wù)進程由observiced進程啟動,服務(wù)進程observiced通常作為系統(tǒng)啟動的一部分啟動。
 

1.3.1.5 后臺NDMP進程

后臺NDMP進程obndmpd實現(xiàn)了NDMP磁帶服務(wù)并且提供了介質(zhì)服務(wù)器與客戶端之間的數(shù)據(jù)通信。該進程運行在客戶端和介質(zhì)服務(wù)器中。它將數(shù)據(jù)連接控制傳遞給一個子進程,以便能夠保持響應(yīng)由obtar發(fā)送的控制消息。

在活動備份或者還原操作期間存在兩個運行的obndmpd實例。如果同一個主機既是介質(zhì)服務(wù)器又是客戶端,則存在三個obndmpd實例:一個作為控制器、一個作為數(shù)據(jù)服務(wù),還有一個作為搬運器。
 

1.3.1.6 后臺機械手進程

機械手進程obrobotd操作磁帶庫中的磁帶。該進程在介質(zhì)服務(wù)器上間斷運行。

當Oracle安全被組件,例如obtar,必須與磁帶庫交互時,它請求介質(zhì)服務(wù)器上的observiced啟動一個obrobotd實例。機械手進程執(zhí)行所有的磁帶目錄操作,介質(zhì)移動,等等。每次obrobotd調(diào)用管理一個磁帶庫。obrobotd在磁帶庫的所有用戶關(guān)閉連接后退出。
 

1.3.1.7 后臺代理進程

代理進程obproxyd為SBT備份和還原操作驗證用戶訪問。代理進程在操作期間運行在包含SBT庫訪問的主機上。代理進程的調(diào)用與平臺相關(guān)。

代理進程使用調(diào)用SBT庫的進程的操作系統(tǒng)用戶標識以及本地主機名決定用于備份操作的Oracle安全備份賬戶。如果存在該操作系統(tǒng)用戶和主機的預授權(quán),相關(guān)的Oracle安全備份用戶允許執(zhí)行RMAN備份,并且該登錄被通過。
 

1.3.2 文件系統(tǒng)備份時的后臺進程交互

圖1-2提供了一個管理服務(wù)器、介質(zhì)服務(wù)器以及客戶端上后臺進程之間關(guān)系的簡單圖形說明。

圖1-2 管理域中的后臺進程


圖1-2中的介質(zhì)服務(wù)器顯示了一個obtar實例,但是obtar自身不是一個后臺進程。它是備份或者還原操作期間操作數(shù)據(jù)和磁帶服務(wù)的Oracle安全備份底層引擎。當用戶在obtool或者Web工具中提交命令時,Oracle安全備份在內(nèi)部將它們翻譯成obtar命令。

假設(shè)observiced進程運行在所有主機上,管理服務(wù)器上的observiced進程已經(jīng)啟動了obscheduled和obhttpd進程,并且一個客戶端文件系統(tǒng)備份作業(yè)已經(jīng)創(chuàng)建并調(diào)度。Oracle安全備份后臺進程與obtar的交互如下:

    在管理服務(wù)器上,obscheduled發(fā)送一個運行備份作業(yè)的請求到observiced。
    管理服務(wù)器上的observiced發(fā)送一個裝載所需帶卷的請求到介質(zhì)服務(wù)器上的obrobotd。
    管理服務(wù)器上的observiced發(fā)送一個調(diào)用obtar的請求到介質(zhì)服務(wù)器上的observiced。
    介質(zhì)服務(wù)器上的obtar建立一個客戶端上obndmpd和介質(zhì)服務(wù)器上bondmpd之間的數(shù)據(jù)連接。備份數(shù)據(jù)通過數(shù)據(jù)連接進行傳輸并寫入磁帶。obtar通常運行在介質(zhì)服務(wù)器上。如果介質(zhì)服務(wù)器沒有運行Oracle安全備份軟件,則obtar運行在管理服務(wù)器上。一個介質(zhì)服務(wù)器沒有運行Oracle安全備份的示例就是基于NDMP的數(shù)據(jù)存儲設(shè)備。
    obtar發(fā)送備份目錄信息到管理服務(wù)器上的obixd,然后終止。
    在管理服務(wù)器上,observiced發(fā)送一個作業(yè)狀態(tài)更新到obscheduled。

 

1.4 預設(shè)值與策略

Oracle安全備份預設(shè)值和策略(defaults and policies)控制管理域內(nèi)的操作方式。策略的設(shè)置在管理服務(wù)器中進行維護。

Oracle安全備份策略分為幾個策略類。每個策略類包含了描述特定部分操作的策略。與管理備份和還原功能相關(guān)的策略類如下:

    備份加密策略。這些策略控制磁帶備份的加密。例如,可以指定是否強制加密備份、密鑰長度以及密鑰管理。
    后臺進程策略。這些策略控制后臺進程和服務(wù)的行為特性。例如,可以指定是否審計登錄和控制索引進程如何更新備份目錄。
    設(shè)備策略。這些策略控制在設(shè)備搜索時如何自動檢測設(shè)備。
    索引策略。這些策略控制Oracle安全備份如果生成和管理備份目錄。例如,可以指定清除備份目錄的時間間隔。
    日志策略。這些策略控制管理域中的歷史日志。例如,可以指定哪些時間應(yīng)該在活動日志中進行記錄:全部、僅備份操作、僅還原操作,等等。
    介質(zhì)策略。這些策略控制管理域范圍內(nèi)的介質(zhì)管理。例如,可以為介質(zhì)簇null中的成員磁帶指定一個保留期。
    NDMP策略。這些策略指定NDMP預設(shè)值。例如,可以指定一個用于認證Oracle安全備份到每個NDMP服務(wù)器的口令。
    操作策略。這些策略控制各種備份與還原操作。例如,可以設(shè)置調(diào)度隊列中的RMAN備份作業(yè)等待資源可用的時間。
    安全策略。這些策略控制管理域的安全。
    調(diào)度器策略。這些策略控制調(diào)度器的行為。例如,可以指定調(diào)度器分派備份作業(yè)的頻率。
    Vaulting策略。這些策略控制作為數(shù)據(jù)保護策略一部分的磁帶流轉(zhuǎn)方式。
    帶卷復制策略。這些策略控制帶卷復制的方式。例如,可以控制帶卷是否應(yīng)該通過網(wǎng)絡(luò)進行或者僅在一個本地主機上進行。

 

1.5 備份映像與介質(zhì)

要理解Oracle安全備份,必須理解物理備份文件與存儲文件的備份介質(zhì)之間的關(guān)系。圖1-3描述了備份文件與帶卷的關(guān)系。概念如下:

    數(shù)據(jù)塊是每次寫入操作寫入介質(zhì)的數(shù)據(jù)量。
    帶卷是介質(zhì)的單位,例如一個8mm磁帶。
    備份片段是位于物理帶卷上的備份映像的一部分。
    備份映像是一次備份操作的結(jié)果。


圖1-3 備份映像、備份片段與帶卷

 

圖1-4描述了卷組與介質(zhì)簇之間的關(guān)系。概念如下:

 

    卷組是一個備份映像跨越的一個或者多個物理卷組成的邏輯組。
    介質(zhì)簇是共享相同屬性的帶卷的邏輯分類。例如,一個介質(zhì)簇中的帶卷共享相同的命名模式以及寫入數(shù)據(jù)和保留數(shù)據(jù)的策略。

圖1-4 帶卷、卷組與介質(zhì)簇

使用Oracle安全備份執(zhí)行文件備份時,將會生成一個卷組,擁有一些共同的特性,由備份關(guān)聯(lián)的介質(zhì)簇進行定義。
 

1.5.1 數(shù)據(jù)塊與塊因子

通常,磁帶驅(qū)動器按塊寫入數(shù)據(jù)。磁帶驅(qū)動器每次操作寫入一個塊,在塊之間存在間隙。磁帶在寫入操作期間持續(xù)運行。

數(shù)據(jù)塊的塊大小就是寫入時的塊大小,單位為字節(jié)。在一次備份或者還原操作期間的所有讀寫塊具有相同的塊大小。數(shù)據(jù)塊的塊因子表示該塊包含的521字節(jié)記錄的數(shù)量。例如,Oracle安全備份默認的塊因子(128)表示128*512字節(jié)或者64KB的磁帶塊大小。

最大塊因子是塊因子的上限值。該上限主要用于還原操作,此時Oracle安全備份必須在不清楚磁帶實際塊大小時選擇一個初始塊大小。最大塊因子將初始塊大小限制為磁帶設(shè)備和底層操作系統(tǒng)都允許的值。

當Oracle安全備份開始執(zhí)行備份時,基于幾個因素決定使用的塊大小。按照優(yōu)先級順序,包括:

    使用obtar -b選項指定的塊因子。該選項也可以被指定為operations/backuooptions策略的一部分。如果指定了該選項,將會覆蓋其他因素。
    磁帶驅(qū)動器的配置??梢栽谂渲么艓?qū)動器時指定使用的塊因子和最大塊因子。
    通過media/blockingfactor策略與media/maxblockingfactor策略設(shè)置的管理域范圍內(nèi)的塊因子和最大塊因子。
    默認的塊因子(128)和最大塊因子(128),也就是64KB的塊大小。

當通過以上因素指定塊因子時,必須通過以下測試:

 

    塊大小必須小于等于最大塊大小。
    塊大小必須是磁帶驅(qū)動器和附屬點支持的大小。

 

當Oracle安全備份開始執(zhí)行還原操作時,它不知道需要使用的塊大小。由于讀取過小的塊將會導致錯誤和磁帶復位,Oracle安全備份首次讀取時總是讀取最大可能的塊大小。該值由media/maxblockingfactor策略或者磁帶驅(qū)動器配置進行設(shè)置。因此,最大塊因子,必須總是大于等于要還原的最大塊大小。

在首次讀取備份映像后,Oracle安全備份比較請求的數(shù)據(jù)與實際的塊大小,并調(diào)整隨后的讀取塊大小以匹配磁帶。
 

1.5.2 備份映像與備份片段

每次備份操作都會產(chǎn)生一個備份映像。如圖1-5,備份映像是由至少一個備份片段組成的文件。

圖1-5 備份映像與備份片段

備份映像通過備份ID進行唯一標識。同樣,備份片段通過備份片段ID唯一標識。示例1-1顯示了lsbu命令輸出的ID為1的備份映像的結(jié)果。

示例1-1 備份映像

ob> lsbu 1
      Backup       Backup  Volume            Volume          File Sect Backup
   Date and Time       ID  ID                Tag                #    #  Level
2008/07/13.11:56:58     1  VOL000003              ADE203        1    1      0

示例1-2顯示了lssection命令輸出的屬于示例1-1的備份映像的備份片段。

示例1-2 備份片段

ob> lssection --vid VOL000003 --file 1
   BSOID  Volume         File Sect  Level  Client        Created     Attributes
     107  VOL000003         1 1         0  brhost2       07/13.11:56 never expires
 

1.5.3 帶卷

帶卷(volume)是物理的介質(zhì)塊,例如一盒磁帶。Oracle安全備份通過唯一的帶卷ID標識每個帶卷,獲取帶卷ID的方式參考下文。

除了帶卷ID之外,帶卷還可以擁有帶卷標簽(volume tag)。帶卷標簽是一個字母數(shù)字字符,最多31個字符,通常來自磁帶盒上的UPC條形碼標簽。許多磁帶庫配有條形碼閱讀器,以便Oracle安全備份不需要裝載并閱讀卷標(volume label)就可以識別一個磁帶。Oracle安全備份記錄了卷標簽與它包含的備份鏡像之間的關(guān)系。
 

1.5.3.1 備份映像與卷標

卷標(volume label)通常包含一個帶卷ID,例如lev0-0001,以及一個帶卷標簽(volume tag),即條形碼。這兩個屬性唯一標識一個磁帶。Oracle安全備份通常在第一次寫入磁帶時創(chuàng)建一個卷標。備份映像的第一個塊被稱為備份映像標簽(backup image label)。它包哈文件號、片段號以及備份映像的擁有者。

顯示卷標時,帶卷相關(guān)的信息顯示在標題Volume label下,備份映像相關(guān)的信息顯示在標題Backup Image label下。這些信息屬于單個卷標的不同部分。

對于Oracle安全備份調(diào)度系統(tǒng)生成的帶卷,還可以看到例如介質(zhì)簇和帶卷過期策略的信息項。

Oracle安全備份的備份映像遵從IEEE POSIX.1數(shù)據(jù)歸檔格式。Oracle安全備份在一個標記的卷組中記錄每個備份映像的文件編號,從1開始。

當Oracle安全備份在一個帶卷中寫入多個備份映像時,它在每個備份映像之后放置一個磁帶文件標記。在最后一個備份映像之后,寫入一個磁帶文件標記,然后是一個數(shù)據(jù)結(jié)束(EOD)標記,再加2個磁帶文件標記。圖1-6演示了包含2個備份映像的帶卷的格式。

圖1-6 一個帶卷上的兩個備份映像


備份映像、卷標以及特殊的End of Data/End of Volume標簽具有共同的格式,并且包含了帶卷和備份映像的數(shù)據(jù)。卷標具有雙重角色,即是帶卷的標記,也是帶卷中第一個備份映像的標簽。同樣備份映像標簽包含關(guān)于下一個備份映像的信息和一個來自卷標的卷信息副本。因此,Oracle安全備份不必倒帶讀取卷標就可以獲取卷信息。

假設(shè)圖1-6中的帶卷即是卷組中的第一個卷。第一個備份映像的卷標可能如示例1-3所示。

示例1-3 備份映像1

Volume label:
 Volume ID:         VOL000014
 Owner:             jane
 Host:              chicago
 File number:       1
 Section:           1
 Sequence number:   1
...

第二個備份映像的卷標可能如示例1-4所示。

示例1-4 備份映像2

Volume label:
 Volume ID:         VOL000014
 Owner:             jane
 Host:              chicago
 File number:       2
 Section:           1
 Sequence number:   1
...

在Oracle安全備份創(chuàng)建一個備份映像之后,它指向該卷中的的EOD標簽之前。EOD標簽包含前一個備份映像標簽數(shù)據(jù)的副本,除了按1遞增的文件號之外。Oracle安全備份使用EOD標簽為下一個備份映像提供卷ID、備份映像文件號以及序號,不需要倒回帶卷。

在Oracle安全備份讀取一個備份映像之后,它指向該卷中剛剛讀取的備份映像后面的磁帶文件標記之后,下一個備份映像的卷標之前。
 

1.5.4 卷組

Oracle安全備份允許單個備份映像跨越多個帶卷。卷組(volume set)是一個或者多個帶卷的組合,第一個帶卷延續(xù)到第二個帶卷,第二個帶卷延續(xù)到第三個帶卷,等等。

卷組中的每個帶卷擁有一個比前一個帶卷大1的帶卷序號。因此,在單個連接會話中可以備份或者還原大量的數(shù)據(jù)。

當Oracle安全備份讀寫多個帶卷時,它使用以下數(shù)據(jù)記錄卷組中帶卷的正確順序:

    EOV標簽。如果一個備份映像跨越了一個帶卷并延伸到隨后的帶卷,Oracle安全備份使用一個特殊的EOV標簽結(jié)束第一個帶卷。該標簽包含下一個帶卷的卷ID。在一個卷組中,除了最后一個帶卷外,每個帶卷以一個EOV標簽結(jié)束。最后一個帶卷以一個EOD標簽結(jié)束。
    序號。序號,記錄在卷標中,表示帶卷在卷組中的順序。第一個帶卷的序號為1。
    片段號。片段號,記錄在卷標中,表示跨越多個帶卷的備份映像的各個片段的順序。

圖1-7描述了一個包含3個備份映像的卷組。備份映像2跨越了2個帶卷。

圖1-7 跨越多個帶卷的單個備份映像


第一個備份映像的部分卷標可能如示例1-5所示。

示例1-5 備份映像1,片段1

Volume label:
 Volume ID:         VOL000014
 Owner:             jane
 Host:              chicago
 File number:       1
 Section:           1
 Sequence number:   1

第二個備份映像的第一個片段的部分卷標可能如示例1-6所示。

示例1-6 備份映像2,片段1

Volume label:
 Volume ID:         VOL000014
 Owner:             jane
 Host:              chicago
 File number:       2
 Section:           1
 Sequence number:   1

第二個備份映像的第二個片段的部分卷標可能如示例1-7所示。

示例1-7 備份映像2,片段2

Volume label:
 Volume ID:         VOL000015
 Owner:             jane
 Host:              chicago
 File number:       2
 Section:           2
 Sequence number:   2

第三個備份映像的第一個片段的部分卷標可能如示例1-8所示。

示例1-8 備份映像3,片段1

Volume label:
 Volume ID:         VOL000015
 Owner:             jane
 Host:              chicago
 File number:       3
 Section:           1
 Sequence number:   2
 

1.5.5 介質(zhì)簇

介質(zhì)簇(Media Family)是卷組的一個命名分類。分類使得創(chuàng)建時間不同的帶卷共享相同的屬性。這樣可以將一個介質(zhì)簇映射到一種典型的備份操作。
 

1.5.5.1 介質(zhì)簇屬性

一個介質(zhì)簇中的每個帶卷共享以下屬性:

    帶卷標識序列。Oracle安全備份在以下情況時為帶卷寫入一個唯一標識:第一次寫入帶卷;從頭開始覆蓋帶卷。帶卷ID由一個固定部分,通常是介質(zhì)簇的名稱,以及一個序號組成。例如,假設(shè)介質(zhì)簇為full_backup,帶卷ID可能為full_backup-000029。默認序第一個列號為1。每一個連續(xù)的帶卷序號按1遞增。但是,如果刪除了一個介質(zhì)簇并創(chuàng)建了一個同名的介質(zhì)簇,帶卷序號重置為1。
    帶卷過期策略。過期策略(expiration policy)定義了帶卷何時可以被覆蓋和回收。介質(zhì)簇可以擁有以下互斥的過期策略之一:內(nèi)容管理的過期策略,使用RMAN保留期參數(shù)決定的帶卷過期策略,用于Oracle數(shù)據(jù)庫備份。這種介質(zhì)簇只能存儲Oracle數(shù)據(jù)庫備份;時間管理的過期策略,借助用戶定義的保留期。時間管理的介質(zhì)簇既可以存儲數(shù)據(jù)庫備份,也可以存儲文件系統(tǒng)備份。對于文件系統(tǒng)備份,如果沒有指定介質(zhì)簇,默認使用介質(zhì)簇null。對于RMAN備份,默認使用介質(zhì)簇RMAN-DEFAULT。Oracle安全備份首先寫入一個帶卷時,為帶卷賦予與備份操作關(guān)聯(lián)的介質(zhì)簇。帶卷可能未到期并存在未使用的膠帶。只有同一介質(zhì)簇的備份能夠添加到該帶卷中。每次備份都添加到介質(zhì)簇中最近使用的帶卷中。如果該帶卷已滿或者關(guān)閉,則寫入另一個帶卷。Oracle安全備份也可以選擇一個可循環(huán)的帶卷用于備份。當一個卷組過期時,Oracle安全備份自動將其中的每個帶卷看作可覆蓋和可循環(huán)的。如果卷組是內(nèi)容管理的,一個帶卷可以在其他帶卷之前過期。
    寫入窗口。寫入窗口時卷組允許更新而保持打開的時間段,通常是用于添加另一個備份映像。寫入窗口在第一個帶卷的帶卷創(chuàng)建時間打開,并且在寫入窗口期到達后關(guān)閉。如果備份在寫入窗口關(guān)閉時寫入磁帶,備份將會執(zhí)行,但是以后的備份不能寫入磁帶。在寫入窗口關(guān)閉時間之后,Oracle安全備份不允許更新卷組,直到卷組過期,或者手動去標簽(unlabel)。
    流轉(zhuǎn)策略。流轉(zhuǎn)策略定義了備份在整個介質(zhì)生命周期內(nèi)的物理管理。它決定了帶卷從被寫入的初始活動位置轉(zhuǎn)移值另一個位置,再到下一個位置,直到重新使用的順序和時間。

介質(zhì)簇的屬性在帶卷創(chuàng)建時間被應(yīng)用到帶卷。介質(zhì)簇屬性是帶卷屬性的一部分。第一次寫入數(shù)據(jù)后,不能再更改帶卷屬性,除非重寫帶卷。如果更改了介質(zhì)簇屬性,這些更改不會應(yīng)用到已經(jīng)創(chuàng)建的帶卷。
 

1.5.5.2 介質(zhì)簇中的帶卷

創(chuàng)建介質(zhì)簇時,指定了如何產(chǎn)生帶卷ID。

當Oracle安全備份為帶卷打標簽(label)時,基于帶卷序列文件的內(nèi)容指定帶卷ID。該文件位于管理服務(wù)器中,位置由帶卷的介質(zhì)簇決定。通常,該文件位于Oracle安全備份主目錄下的admin/state/general子目錄中。

定義介質(zhì)簇時,可以通過以下方式指導Oracle安全備份分配帶卷ID:

    介質(zhì)簇的默認帶卷序列文件。大多數(shù)情況下應(yīng)該使用該文件。每個介質(zhì)簇的帶卷序列文件位于admin/state/family/family_name目錄中。例如,定義了一個名為new_data的介質(zhì)簇,則文件位于admin/state/family/new_data目錄中。Oracle安全備份創(chuàng)建帶卷ID的規(guī)則為介質(zhì)簇名稱,加上一個破折號,再加上一個6位序列號,第一個序列號為000001。例如,定義了一個名稱為new_data的介質(zhì)簇,Oracle安全備份創(chuàng)建一個名為vol-sequence帶卷序列文件。該文件的第一個帶卷ID為new_data-000001。每次指定一個ID時,按1遞增。也即是說,下一個帶卷ID為new_data-000002,以此類推。
    用戶定義的帶卷序列文件。Oracle安全備份在安裝過程中創(chuàng)建一個默認的帶卷序列文件,位于管理服務(wù)器的admin/state/general子目錄中。該文件的第一個帶卷ID為VOL000001。每次分配一個ID后,按1遞增。也就是說,下一個分配的帶卷ID為VOL000002,依次類推。如果指定了自己的帶卷序列文件,Oracle安全備份忽略默認的帶卷序列文件,而使用用戶定義的文件。可以指定該文件的完整路徑。Oracle安全備份不會自動創(chuàng)建該文件,必須手動進行創(chuàng)建。可以使用文本編輯器定義帶卷ID的前綴。每個帶卷ID文件可以包含單個帶卷ID。帶卷ID最大長度為31個字符。可以指定開頭的幾個字符以幫助帶卷分類。例如,可以指定以下前綴:前綴8mm標識一個磁帶設(shè)備創(chuàng)建的帶卷,DAT標識另一個磁帶設(shè)備創(chuàng)建的帶卷;前綴INCR或者FULL標識用于完全備份或者增量備份的帶卷;操作人員姓名的縮寫,例如la。如果用戶定義的序列號不包含任何數(shù)字,Oracle安全備份在序列號后添加一個1,并且每次使用之后遞增1。
    用戶定義的帶卷ID??梢允褂胢kmf命令的--vidunique選項指定一個明確的帶卷ID。例如,可以為先前創(chuàng)建的部分不可讀的磁帶創(chuàng)建自定義的帶卷ID??梢栽俅螆?zhí)行備份,并且使用--vidunique選項指定一個按順序排列的帶卷ID。同樣可以使用restore命令的--vid選項以確保讀取了正確的帶卷。

 

1.5.5.3 帶卷過期策略

創(chuàng)建介質(zhì)簇時,可以指定帶卷過期策略,它決定了帶卷何時可以被覆蓋和重用。如圖1-8所示,帶卷可以使用內(nèi)容管理的過期策略或者時間管理的過期策略。

圖1-8 帶卷過期策略

1.5.5.3.1 內(nèi)容管理的過期策略

RMAN備份可以使用基于內(nèi)容管理的過期策略的帶卷,但是文件系統(tǒng)備份不能使用這種帶卷。內(nèi)容管理的帶卷的過期由備份片(backup piece)的屬性決定。當帶卷上的每個備份片都被標記為已刪除,帶卷可以復用。內(nèi)容管理的卷組中的帶卷可以在其它帶卷未過期時過期。

由于內(nèi)容管理的帶卷使用用戶定義的RMAN保留設(shè)置,RMAN指示Oracle安全備份何時將備份片標記為已刪除。實際的備份片不會從帶卷中刪除,只是更新了Oracle安全備份目錄中的屬性值。

如圖1-8所示,可以通過RMAN或者Oracle安全備份接口刪除備份片。使用Oracle安全備份工具刪除備份片會導致RMAN資料庫中元數(shù)據(jù)與磁帶內(nèi)容不一致。如果RMAN備份被Oracle安全備份刪除,或者由于其他原因?qū)е聜浞莶豢捎没騺G失,應(yīng)該立即使用RMAN的CROSSCHECK命令更新資料庫。

1.5.5.3.2 時間管理的過期策略

時間管理的介質(zhì)簇中的帶卷在到達帶卷過期時間后過期。此時,Oracle安全備份自動將卷組中的每個帶卷看作可被覆蓋的。

如圖1-8所示,Oracle安全備份通過以下內(nèi)容相加計算帶卷過期時間:

    卷組中第一個帶卷的創(chuàng)建時間。這是Oracle安全備份在第一個帶卷寫入文件號為1的備份映像的時間。
    寫入窗口期。這是用戶定義的帶卷可被寫入的時間段。卷組中的帶卷共享相同的寫入窗口。
    保留期。這是用戶定義的帶卷不能被覆蓋的時間段。卷組中的帶卷共享相同的保留期。如果沒有配置寫入窗口,保留期從第一個磁帶寫入開始;如果配置了寫入窗口,保留期從寫入窗口關(guān)閉開始。保留期的設(shè)置阻止覆蓋介質(zhì)簇中的帶卷,直到指定時間之后。如果一個帶卷已滿,并且Oracle安全備份繼續(xù)寫入隨后的帶卷,這些帶卷具有相同的保留期。

例如,設(shè)置一個介質(zhì)簇的寫入窗口為7天,保留期為14天,則卷組中的所有帶卷數(shù)據(jù)從寫入窗口關(guān)閉后保留14天。如果Oracle安全備份在1月1日中午首次寫入第一個帶卷,并且隨后寫入了20個其它的帶卷,則所有的21個帶卷在1月22日中午過期。

文件系統(tǒng)備份和RMAN備份都可以寫入時間管理的帶卷。也就是說,時間管理的帶卷可以包含文件系統(tǒng)備份和RMAN備份片的混合。如果將RMAN備份寫入時間管理的帶卷,時間慣了的過期策略將會覆蓋RMAN中的保留設(shè)置。
 

1.6 作業(yè)與請求

在Oracle安全備份中,備份或者還原請求(request)與作業(yè)(job)不同。請求是一個本地存儲的備份或還原操作描述,它還不能運行。作業(yè)是一個已經(jīng)提交到調(diào)度進程的請求,它能夠運行。

調(diào)度程序策略決定了調(diào)度程序如何處理備份和還原作業(yè)。

注釋:本節(jié)描述文件系統(tǒng)備份與還原作業(yè)。關(guān)于數(shù)據(jù)庫備份與還原作業(yè),參考“第4章 使用RMAN與Oracle安全備份”。

圖1-9顯示了Oracle安全備份用戶創(chuàng)建一個請求式備份或者還原作業(yè)的過程。

圖1-9 備份與還原請求與作業(yè)


圖1-9描述的過程包含以下步驟:

    用戶創(chuàng)建一個文件系統(tǒng)備份或者還原請求。例如,用戶提交一個備份客戶主機brhost2的/home目錄的請求。Oracle安全備份在用戶的Web工具或者obtool會話中維護一個備份與還原請求的隊列。用戶可以查看或者修改該隊列。當用戶終止會話時,未發(fā)送到調(diào)度程序的請求將會丟棄。
    如果需要,用戶可以修改隊列中的請求。例如,用戶可以刪除一個作業(yè)請求。
    用戶將備份請求發(fā)送到管理服務(wù)器上的調(diào)度程序(obscheduled)。當用戶發(fā)送一個文件系統(tǒng)備份或者還原請求到調(diào)度程序后,該請求成為一個作業(yè)。每個作業(yè)被賦予一個唯一名稱。
    在預定時間,后臺服務(wù)進程運行該作業(yè)。

 

1.6.1 創(chuàng)建作業(yè)

本節(jié)進一步描述如何創(chuàng)建一個請求式或者預定的文件系統(tǒng)備份與還原作業(yè)。以下事件導致Oracle安全備份創(chuàng)建作業(yè):

    Oracle安全備份默認每五分鐘檢查一次各個備份計劃中定義的觸發(fā)器。對于當天觸發(fā)的每個觸發(fā)器,為計劃中列出的每個數(shù)據(jù)集創(chuàng)建一個作業(yè)。注釋:可以通過調(diào)度程序的applybackupsfrequency策略更改檢查觸發(fā)器的頻率。在作業(yè)描述中,Oracle安全備份將其指定為一個數(shù)據(jù)集作業(yè),為它賦予一個數(shù)字作業(yè)標識符,例如15。
    每次創(chuàng)建一個請求式請求并點擊“Go”按鈕或者在obtool中使用backup --go命令將請求發(fā)送到調(diào)度程序時,Oracle安全備份創(chuàng)建一個數(shù)據(jù)集作業(yè)。它使用用戶名作為前綴,賦予該作業(yè)一個標識符,例如,admin/15。
    在數(shù)據(jù)集作業(yè)的預定開始時間,Oracle安全備份讀取數(shù)據(jù)集,然后為它包含的每一個主機創(chuàng)建一個從屬作業(yè)。在作業(yè)描述中,Oracle安全備份將其稱為一個備份作業(yè)。Oracle安全備份賦予每個備份作業(yè)一個標識符,前綴為父作業(yè)(數(shù)據(jù)集)ID,加上一個點號(.),然后是一個唯一的小數(shù)字。例如,15.1可能是計劃作業(yè)15的一個從屬作業(yè)。
    每次顯式請求Oracle安全備份還原數(shù)據(jù)并點擊“Go”按鈕或者在obtool中使用restore --go命令將請求發(fā)送到調(diào)度程序時,Oracle安全備份為每個需要讀取的備份映像創(chuàng)建一個還原作業(yè)。Oracle安全備份為每個作業(yè)賦予一個標識符,例如admin/15。如果Oracle安全備份為一次還原請求創(chuàng)建了多個作業(yè),它會將每個作業(yè)標記為依賴于前一個作業(yè)的成功執(zhí)行,除了第一個作業(yè)外。這樣做的結(jié)果就是,如果一個作業(yè)失敗了,依賴于它的后續(xù)作業(yè)也被標記為失敗。

到達執(zhí)行作業(yè)的時候,調(diào)度程序決定執(zhí)行作業(yè)最重要的準則是用戶指定的調(diào)度優(yōu)先級。調(diào)度程序優(yōu)先調(diào)度更高優(yōu)先級的作業(yè),假如該作業(yè)所需資源全部可用的話。例如,如果調(diào)度程序擁有20個就緒的作業(yè),Oracle安全備份運行具有最小優(yōu)先級數(shù)字的作業(yè)(數(shù)字越小,優(yōu)先級越高)。
 

1.6.2 作業(yè)日志

Oracle安全備份為每個作業(yè)維持一個日志。該日志描述了高層級別的事件,例如作業(yè)的創(chuàng)建、調(diào)度以及完成時間??梢酝ㄟ^Oracle安全備份Web工具或者obtool查看日志。
 

1.6.3 作業(yè)記錄

Oracle安全備份為每個作業(yè)維護一個運行記錄(Transcript)。該記錄描述了作業(yè)操作的詳細信息。Oracle安全備份在第一次調(diào)度作業(yè)時創(chuàng)建該記錄,并在作業(yè)處理過程中更新記錄。當作業(yè)需要操作人員的協(xié)助時,Oracle安全備份使用該記錄提示幫助請求。
 

1.6.4 作業(yè)匯報

作業(yè)匯報(Job Summary)是Oracle安全備份產(chǎn)生的,用于描述文件系統(tǒng)備份與還原作業(yè)狀態(tài)的文本文件報告。每個報告包含4個部分,通過作業(yè)狀態(tài)進行區(qū)分:

    作業(yè)當前可以運行(但還沒有開始)
    作業(yè)正在運行
    作業(yè)成功完成
    作業(yè)被取消、被廢棄或者失敗

可以創(chuàng)建一個作業(yè)匯報計劃,用于Oracle安全備份生成多個報告,每個包含不同時間段或者活動內(nèi)容。創(chuàng)建作業(yè)匯報計劃時,可以選擇以下選項:

    作業(yè)匯報的唯一名稱
    生成作業(yè)匯報的日期
    作業(yè)匯報發(fā)送郵件的接收者
    作業(yè)匯報跨越的時間段起始時間。結(jié)束時間總是匯報的生成時間
    作業(yè)匯報的內(nèi)容