RMAN說,我能備份(12)--RMAN中的恢復目錄和備份優化

junsansi發表於2010-02-09

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

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

8.5.6 是否使用RMAN恢復目錄(Recovery Catalog)

  你可能從其他人或書上聽過RMAN恢復目錄(也有可能是其他名字,RMAN Recovery Catalog的翻譯較多較雜,以下簡稱恢復目錄),旁人的表達或書中模糊不清的描述,導致很多朋友一直對其實際意義和作用感到疑惑。在我看來,可以將其視作儲存RMAN備份恢復相關資訊的資料庫(在物理形式上可以對應成Oracle中的一個SCHEMA)。

  當沒有恢復目錄時,RMAN相關的備份資訊,比如歸檔檔案路徑、備份集路徑等均儲存在目標資料庫的控制檔案中,不過考慮到控制檔案並不能無限增長,而且控制檔案也不僅僅是用來儲存與備份相關的資訊,因此RMAN也有一個專門的備份資訊儲存地,這就是恢復目錄了。當待備份的資料庫註冊到恢復目錄之後,RMAN相關的資訊除了儲存在控制檔案中外(控制檔案實際上只儲存一部分),更加詳細的資訊就都被儲存在恢復目錄中。

  提示:強烈建議不要將恢復目標資料庫放到目標資料庫中。

  建立恢復目錄非常簡單,RMAN提供了CREATE CATALOG命令,但是在建立恢復目錄之前,首先需要為該恢復目錄建立一個獨立表空間和對應的 SCHEMA ,詳細操作步驟如下:

 (1)建立一個獨立的表空間:

    SQL> CREATE TABLESPACE RMANTBS DATAFILE 'f:\oracle\oradata\bakdb\rmantbs01.dbf'  size 50m;

    Tablespace created.

  注意千萬不要將恢復目錄建立在要備份的目錄資料庫。

  由於恢復目錄通常不會太大,這裡資料檔案僅分配了50MB的空間。

  (2)建立一個獨立的 SCHEMA ,用來記錄備份資訊,並授予相關許可權:

    SQL> GRANT CONNECT,RESOURCE,RECOVERY_CATALOG_OWNER TO RMANCT IDENTIFIED BY RMANCT;

    Grant succeeded.

  (3)通過RMAN連線到新建立的恢復目錄中:

    F:\oracle> RMAN CATALOG RMANCT/RMANCT

    Recovery Manager: Release 10.2.0.1.0 - Production on Fri Apr 24 11:11:06 2009

    Copyright (c) 1982, 2007, Oracle.  All rights reserved.

    connected to recovery catalog database

  (4)在RMAN中建立 CATALOG :

    RMAN> CREATE CATALOG TABLESPACE RMANTBS;

    recovery catalog created

  這樣恢復目錄就算建立完了,一個恢復目錄資料庫可以同時為多個目標資料庫提供服務,不過要使用恢復目錄執行備份操作前,首先需要在恢復目錄中註冊該資料庫,註冊也非常簡單,一條命令即可,步驟如下:

  首先以CATALOG模式連線到目標資料庫和恢復目錄(連線恢復目錄只需要在連線時指定CATALOG引數即可):

    F:\oracle> RMAN TARGET / CATALOG RMANCT/RMANCT@BAKDB

    Recovery Manager: Release 10.2.0.1.0 - Production on Fri Apr 24 11:16:36 2009

    Copyright (c) 1982, 2007, Oracle.  All rights reserved.

    connected to target database: JSSBOOK (DBID=1419729528)

    connected to recovery catalog database

  可以通過如下命令註冊資料庫:

    RMAN>  REGISTER DATABASE;

    database registered in recovery catalog

    starting full resync of recovery catalog

    full resync complete

  這之後進行的操作,比如建立備份等操作資訊都會存入恢復目錄中。

  對於註冊到恢復目錄,是否就必須或者只能以CATALOG模式進行備份或恢復操作了呢?當然不是,恢復目錄只是RMAN中的一個可選項,而不是必選項,備份資訊是否記入CATALOG取決於執行RMAN操作時是否連線到了CATALOG,也就是說,即使目標資料庫已經註冊到恢復目錄中,但連線時沒有以CATALOG模式連線,則備份資訊仍然是隻存入目標端資料庫的控制檔案,相當於NOCATALOG模式。

  另外,已經註冊到 CATALOG 中的資料庫希望取消註冊怎麼辦呢?使用U NREGISTER 命令即可:

    RMAN> UNREGISTER DATABASE;

    database name is "JSSBOOK" and DBID is 1419729528

    Do you really want to unregister the database (enter YES or NO)? yes

    database unregistered from the recovery catalog

  如果DBA要管理的Oracle資料庫較多,那麼對於這些資料庫的備份,建議使用恢復目錄統一管理,這樣既方便備份和恢復操作,而且安全性也相對比較高(執行完備份操作後,單獨備份恢復目錄資料庫即可,無須擔心被備份的資料庫控制檔案丟失可能造成的影響)。不過如果DBA僅管理一個或者數個Oracle資料庫,那麼我想NOCATALOG模式操作起來會更加方便。

8.5.7 是否啟用備份優化

  RMAN 中的備份優化(Backup Optimization)是指在備份過程中,如果滿足特定條件,RMAN將自動跳過某些檔案,而不會再將它們包含在備份集中,以節省時間和空間。說得直白些就是能不備份的它就不備份了,不像原來甭管檔案有沒有備份過統統再備份一遍。由上可知,優化就是偷懶嘛,en,俺也要優化的幹活:)

  不過話說回來,這個懶也不是什麼時候都能偷的,哦,說錯了,是優化。通常必須在滿足如下幾個條件的情況下,才能夠啟用備份優化的功能:

  • CONFIGURE BACKUP OPTIMIZATION 引數置為 ON 。
  • 執行的BACKUP DATABASE或BACKUP ARCHIVELOG命令中帶有ALL或LIKE引數。
  • 分配的通道僅使用了一種裝置型別,也就是不能同時分配使用 SBT 與 DISK 的多個通道。

  通過如下命令開啟備份優化設定:

    RMAN> CONFIGURE BACKUP OPTIMIZATION ON;

  那麼在進行備份優化時,RMAN是如何判斷要備份的檔案是否需要被優化呢?這個演算法就相當複雜了,而且可能影響優化演算法的因素也非常多,假如某庫在上午9點被執行過一次全庫備份,等下午3點再次執行全庫備份時,備份的檔案沒有變動而且也已經被備份過時,才會跳過這部分檔案。所以理論上備份優化僅對於只讀表空間或 OFFLINE 表空間起作用。當然對於已經備份過的 ARCHIVELOG 檔案,它也會跳過(注:上述言論出自yangtingkun大牛,哎,我說老yang你能不能再多說兩句,再給我們來一段20萬字左右的簡短髮言唄,哎,你別走啊,你跑什麼呀)。

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

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

相關文章