RMAN說,我能備份(11)--RMAN中的備份集屬性

junsansi發表於2010-02-05

塗抹ORACLE試閱章節:第8章-Rman說,我能備份

===========================================================================

8.5.5 是否設定備份集屬性

  對於備份集(或備份片段),RMAN直接提供了方式支援定義備份片段的檔名、備份片段大小及備份集標籤。

8.5.5.1 設定備份片段檔名

  預設情況下執行 BACKUP 命令進行備份時不需要為備份片段指定名稱,RMAN會自動為每個備份片段生成一個唯一的名稱,相當先進是吧,其實RMAN沒有這麼智慧,之所於預設情況下也能確保生成的檔名唯一,是因為RMAN預設通道分配時指定了一個引數值為%F的FORMAT引數。

  FORMAT 引數的使用也非常靈活,你既可以分配通道時指定該引數,也可以在執行備份命令時指定,例如:

  分配通道時指定備份片段命名格式:

    RMAN>  RUN {

    2>  ALLOCATE CHANNEL C1 DEVICE TYPE DISK FORMAT  ' f:\oracle\backup\cn_%U ' ;

    3>  BACKUP TABLESPACE USERS;

    4> }

    using target database control file instead of recovery catalog

    allocated channel: c1

    channel c1: sid=142 devtype=DISK

    Starting backup at 14-APR-09

    channel c1: starting full datafile backupset

    channel c1: specifying datafile(s) in backupset

    input datafile fno=00004 name=F:\ORACLE\ORADATA\JSSBOOK\USERS01.DBF

    channel c1: starting piece 1 at 14-APR-09

    channel c1: finished piece 1 at 14-APR-09

    piece handle=F:\ORACLE\BACKUP\CN_0UKCFQH7_1_1 tag=TAG20090414T205047 comment=NONE

    channel c1: backup set complete, elapsed time: 00:00:02

    Finished backup at 14-APR-09

    released channel: c1

    執行備份命令時指定備份片段命名格式:

    RMAN>  BACKUP TABLESPACE USERS FORMAT   'f:\oracle\backup\cn_%U' ;

    Starting backup at 15-APR-09

    using channel ORA_DISK_1

    channel ORA_DISK_1: starting full datafile backupset

    channel ORA_DISK_1: specifying datafile(s) in backupset

    input datafile fno=00004 name=F:\ORACLE\ORADATA\JSSWEB\USERS01.DBF

    channel ORA_DISK_1: starting piece 1 at 15-APR-09

    channel ORA_DISK_1: finished piece 1 at 15-APR-09

    piece handle=F:\ORACLE\BACKUP\CN_07KCHO6S_1_1 tag=TAG20090415T142324 comment=NONE

    channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01

    Finished backup at 15-APR-09

  友情提示:更多關於FORMAT引數的詳細說明請參考本章外傳。

8.5.5.2 設定備份集標籤

  備份時可以直接給備份集指定一個名稱,RMAN管這個叫TAG,實際上每個備份集都有TAG標籤,不過這個東西並不是必須指定,如果你在執行備份操作時沒有指定TAG,RMAN會按照自己的規則為該備份集生成TAG標籤(預設格式為:TAG yyyymmdd T hhmmss ,TAG和T是固定字元, yyyymmddhhmmss 對應執行備份操作的時間)。

  當然自己指定也可以,語法非常簡單,執行備份命令時指定 TAG 關鍵字後跟一個名字,注意名稱的長度不要超過30個字元,例如:

    RMAN>  BACKUP TABLESPACE USERS TAG TBS_USERSBAK;

    Starting backup at 14-APR-09

    allocated channel: ORA_DISK_1

    channel ORA_DISK_1: sid=149 devtype=DISK

    channel ORA_DISK_1: starting full datafile backupset

    channel ORA_DISK_1: specifying datafile(s) in backupset

    input datafile fno=00004 name=F:\ORACLE\ORADATA\JSSBOOK\USERS01.DBF

    channel ORA_DISK_1: starting piece 1 at 14-APR-09

    channel ORA_DISK_1: finished piece 1 at 14-APR-09

    piece handle=F:\ORACLE\BACKUP\BAK_0SKCELJ9_1_1  tag=TBS_USERSBAK comment=NONE

    channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01

    Finished backup at 14-APR-09

  TAG 標籤也可以視為備份集的別名,如果你的備份策略設計得足夠用心,並且你對其也足夠熟悉,理論上TAG還是能起到一定作用,比如執行RESTORE/CHANGE命令時就可以通過指定TAG標籤來限定具體的備份集了。

8.5.5.3 設定備份片段/備份集大小

  在預設情況下,一種型別的檔案在備份集中都會存成一個備份片段。不過考慮到如果檔案較大,生成的備份片段可能也較大,甚至超出作業系統限制(不稀奇,比如Windows平臺下FAT32檔案系統,單個檔案最大不能超過4GB),鑑於一名優秀DBA必須具備的全面考慮問題的能力,在你真正建立備份策略之前,備份片段檔案大小顯然也得在考慮範圍之內。

  RMAN 在分配通道時有一個引數MAXPIECESIZE,就是專門用來指定備份片段大小的,例如,備份SYSTEM表空間,指定單個備份片段最大不能超過10MB:

    RMAN>  RUN {

    2>  ALLOCATE CHANNEL C1 DEVICE TYPE DISK MAXPIECESIZE =10m  FORMAT  ' f:\oracle\backup\bak_%U ' ;

    3>  BACKUP TABLESPACE SYSTEM;

    4> }

    allocated channel: c1

    channel c1: sid=140 devtype=DISK

    Starting backup at 13-APR-09

    channel c1: starting full datafile backupset

    channel c1: specifying datafile(s) in backupset

    input datafile fno=00001 name=F:\ORACLE\ORADATA\JSSBOOK\SYSTEM01.DBF

    channel c1: starting piece 1 at 13-APR-09

    channel c1: finished piece 1 at 13-APR-09

    piece handle=F:\ORACLE\BACKUP\BAK_0QKCDDGU_1_1 tag=TAG20090413T225630 comment=NONE

    channel c1: starting piece 2 at 13-APR-09

    channel c1: finished piece 2 at 13-APR-09

    piece handle=F:\ORACLE\BACKUP\BAK_0QKCDDGU_2_1 tag=TAG20090413T225630 comment=NONE

    channel c1: starting piece 3 at 13-APR-09

    channel c1: finished piece 3 at 13-APR-09

    ...... 

    channel c1: starting piece 13 at 13-APR-09

    channel c1: finished piece 13 at 13-APR-09

    piece handle=F:\ORACLE\BACKUP\BAK_0QKCDDGU_13_1 tag=TAG20090413T225630 comment=NONE

    channel c1: backup set complete, elapsed time: 00:00:22

    channel c1: starting full datafile backupset

    channel c1: specifying datafile(s) in backupset

    including current control file in backupset

    including current SPFILE in backupset

    channel c1: starting piece 1 at 13-APR-09

    channel c1: finished piece 1 at 13-APR-09

    piece handle=F:\ORACLE\BACKUP\BAK_0RKCDDHK_1_1 tag=TAG20090413T225630 comment=NONE

    channel c1: backup set complete, elapsed time: 00:00:02

    Finished backup at 13-APR-09

    released channel: c1

  在F:\oracle\backup 目錄中檢視會發現共生成了14個檔案,其中1個為自動建立的控制檔案備份,其他13個就是 SYSTEM 表空間的備份片段實際指向檔案,每個檔案均不超過10MB。

  使用 LIST BACKUP OF TABLESPACE 命令檢視,也能確認這點:

    RMAN>   LIST BACKUP OF TABLESPACE SYSTEM;

    List of Backup Sets

    ===================

    BS Key  Type LV Size       Device Type Elapsed Time Completion Time

    -------   ---- -- ---------- ----------- ------------ ---------------

    23   Full    129.36M    DISK        00:00:20     13-APR-09

      List of Datafiles in backup set 23

      File LV Type    Ckp SCN Ckp Time  Name

      ---- -- ---- ---------- --------- ----

         1    Full     719880 13-APR-09 F:\ORACLE\ORADATA\JSSBOOK\SYSTEM01.DBF

      Backup Set Copy #1 of backup set 23

      Device Type Elapsed Time Completion Time Compressed Tag

      ----------- ------------ --------------- ---------- ---

      DISK        00:00:20     13-APR-09       NO         TAG20090413T225630

        List of Backup Pieces for backup set 23 Copy #1

         BP Key  Pc# Status      Piece Name

        -------  --- ----------- ----------

             35    1 AVAILABLE   F:\ORACLE\BACKUP\BAK_0QKCDDGU_1_1

             36    2 AVAILABLE   F:\ORACLE\BACKUP\BAK_0QKCDDGU_2_1

             37    3 AVAILABLE   F:\ORACLE\BACKUP\BAK_0QKCDDGU_3_1

             38    4 AVAILABLE   F:\ORACLE\BACKUP\BAK_0QKCDDGU_4_1

             39    5 AVAILABLE   F:\ORACLE\BACKUP\BAK_0QKCDDGU_5_1

             40    6 AVAILABLE   F:\ORACLE\BACKUP\BAK_0QKCDDGU_6_1

             41    7 AVAILABLE   F:\ORACLE\BACKUP\BAK_0QKCDDGU_7_1

             42    8 AVAILABLE   F:\ORACLE\BACKUP\BAK_0QKCDDGU_8_1

             43    9 AVAILABLE   F:\ORACLE\BACKUP\BAK_0QKCDDGU_9_1

             44   10 AVAILABLE   F:\ORACLE\BACKUP\BAK_0QKCDDGU_10_1

             45   11 AVAILABLE   F:\ORACLE\BACKUP\BAK_0QKCDDGU_11_1

             46   12 AVAILABLE   F:\ORACLE\BACKUP\BAK_0QKCDDGU_12_1

             47   13 AVAILABLE   F:\ORACLE\BACKUP\BAK_0QKCDDGU_13_1

  不僅能夠指定備份片段的大小,甚至連備份集的大小也可以指定,單個備份集的最大值可以在執行備份命令(或分配通道)時通過 MAXSETSIZE 引數指定,比如:

    RMAN>  BACKUP DATABASE MAXSETSIZE =100m;

  MAXSETSIZE 引數指定的是單個備份集的最大值,與備份片段無關,不過預設情況下,一個備份集對應一個備份片段,因此也相當於指定了備份片段的大小,但是直接指定 MAXSETSIZE 引數限定備份集大小並非在所有情況下都適用,如果要備份的資料檔案中,任意一個資料檔案超出了指定引數值,則備份就會失敗(前面示例命令執行肯定失敗,因為預設情況下 SYSTEM 表空間資料檔案就接近300MB)。因此,對於在實際應用中需要限制生成檔案大小的情況,更多還是會通過 MAXPIECESIZE 引數限制備份片段,而不會直接限制備份集。

=================================================

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-626921/,如需轉載,請註明出處,否則將追究法律責任。

相關文章