RMAN的活動資料庫複製

fengpinDBA發表於2013-11-28

RMAN的活動資料庫複製

1. 活動資料複製的準備工作

在活動資料庫複製中,RMAN連線到作為目標的源資料庫例項和輔助例項。RMAN通過網路拷貝源資料庫到輔助例項,由此建立輔助資料庫,這並不需要先建立源資料庫備份。

實際的複製工作是源資料庫和複製例項通過它們之間的網路完成的,源資料庫和輔助例項之間的網路由Oracle Net實現。

執行資料庫複製操作,源資料庫和複製資料庫必須是相同的平臺,相同作業系統的32位和64位版本屬於相同平臺。DUPLICATE命令要求至少連線到一個輔助例項執行復制工作。在執行活動資料庫複製操作之前要完成以下準備工作:

?  資料空間要求

確保目標主機有足夠的儲存空間存放源資料庫的資料

?  源和目的地主機通過LAN或者WAN進行連線

WAN中活動資料庫複製的效能可能比LAN(本地區域網路)更慢。如果WAN的效能不可接受,那麼基於備份的複製可能變成唯一可用的選項了。如果必須在多使用者活動期間複製資料庫,可能導致網路吞吐量下降,這種情況最好也選擇基於備份的複製。

?  複製檔案的命令策略

當複製資料庫時,RMAN為複製控制檔案、資料檔案、臨時檔案和聯機Redo日誌檔案生成名稱。因此,必須制定這些檔案的命名策略。

Oracle推薦簡單的複製策略,配置與源資料庫相同的名稱。使用相同的名稱要符合如下要求:

l   如果源資料庫使用ASM磁碟組,那麼複製資料庫必須使用相同名稱的ASM磁碟組。

l   如果源資料庫檔案是Oracle管理的檔案(OMF),那麼輔助例項必須設定DB_FILE_CREATE_DEST引數,指定與源資料庫相同的目錄位置。源和目的地主機的目錄是相同的,Oracle資料庫為複製檔案建立相應的名稱。

l   源資料庫和複製資料庫要求有相同的路徑存放資料庫檔案。

?  Oracle Net連通性

要確保源資料庫到輔助例項之間的Oracle Net的連通性。如果源資料庫是RAC資料庫,確保RAC資料庫的所有節點都可以建立與輔助例項之間的連通性。

             所謂Oracle Net連通性指的是在源資料庫所有節點配置到輔助例項的本地服務名。

?  為輔助例項建立密碼檔案

可使用如下方法建立密碼檔案:

1.        手動建立密碼檔案

活動複製要求源資料庫和輔助例項使用相同的密碼,預設使用的是SYS使用者。

2.        duplicate … from active database命令明確指定password file選項。

明確指定password file選項,RMAN會拷貝源資料庫密碼檔案到目的地主機,執行復制命令時覆蓋輔助例項存在的密碼檔案。

?  建立初始化引數檔案

可以選擇一下方式為輔助例項建立初始化引數檔案:

1.        手動建立初始化引數檔案

在初始化引數檔案預設的位置,遵循初始化引數檔案的命名規則為輔助例項建立基於文字的初始化引數檔案。

2.        duplicate命令中明確指定spfile選項

明確指定了spfile選項,在RMAN複製期間,會自動從源資料庫拷貝伺服器引數檔案到輔助例項,在此之前要建立臨時的引數檔案。

?  確保源資料庫處於正常的狀態

複製源資料庫必須確保在MOUNT或開啟的狀態

2. 活動資料複製

步驟1 RMAN連線到必要的資料庫例項上

針對活動資料庫的複製,RMAN必須作為TARGET連線到源資料庫,作為AUXILIARY連線到輔助例項。必須為兩個例項使用相同的SYSDBA密碼,根據RMAN後設資料的儲存位置選擇是否連線恢復目錄資料庫。以下的例子同時連線到源資料庫、輔助例項和恢復目錄資料庫。

1)   連線到源資料庫

RMAN> connect target sys/sysdba@prod;

2)   連線到輔助例項

RMAN> connect auxiliary sys/sysdba@dupdb;

3)   連線到恢復目錄資料庫:

RMAN> connect catalog rman/rman@catdb;

        步驟2 切換歸檔Redo日誌

           如果源資料庫在開啟的狀態,那麼源資料庫必須是歸檔模式。即使沒有複製操作提供明確的時間點,RMAN活動資料庫複製技術也會執行資料庫的時間點恢復,但是由於連線Redo日誌不能應用到複製資料庫,所以不能將資料庫恢復到最新狀態,也就是說,活動資料庫的複製過程會將複製資料庫恢復到執行復制工作之前最近的歸檔時間點。為了複製較新的資料,可以在執行duplicate命令之前先做一個日誌切換:

        RMAN> run {

        2> sql ‘alter system archive log current’;

         Duplicate …

        3> sql ‘alter system archive log current’;

        }

        步驟3 執行duplicate命令複製活動的資料庫

            duplicate命令中明確指定NOFILENAMECHECK選項。執行下面命令複製源資料庫、密碼檔案和引數檔案到輔助例項相同目錄結構:

        RMAN> duplicate target database to ractest

               from active database

               password file

               spfile

               nofilenamecheck;

            成功執行上面命令必須確保源資料在歸檔模式,以及至少產生一次歸檔,並且沒有使用spfile啟動輔助例項。Password file選項明確RMAN拷貝密碼檔案到目的地主機。Spfile子句明確RMAN拷貝伺服器引數檔案目的地主機,使用伺服器引數檔案啟動輔助例項。

            整個複製過程通過網路拷貝所有必要的資料檔案和歸檔Redo日誌到目的地主機,自動完成複製資料的還原和恢復操作,最後,RMAN使用resetlog選項開啟資料庫,建立新的聯機Redo日誌。

    3. DUMPLICATE命令的自動優化功能

           RMAN自動優化duplicate命令,可以繼續之前失敗的duplicate命令。重啟啟動duplicate命令資料庫不再拷貝之前成功拷貝的資料檔案,這適用於所有形式的複製,包括基於備份或者活動資料庫的複製,當在複製一個非常大的資料庫時發生失敗,duplicate命令的自動優化功能特別有用。

            如果duplicate操作失敗,只需要將之前的duplicate命令在執行一次,第二次duplicate操作會執行以下的工作:

       步驟1 找出上一次的duplicate命令成功複製的資料檔案。

       步驟2 針對每個資料檔案顯示一下類似資訊,表示不再需要複製相應的檔案:

       RMAN-05560

       步驟3 只複製錯誤或未完成的資料檔案,由此避開重新拷貝或還原所有的資料檔案。

       嘗試恢復一個失敗的duplicate操作之前,必須重新啟動輔助例項到nomount模式之後再次執行相同的duplicate命令。如果不需要RMAN從失敗的duplicate操作中自動優化,明確指定noresume關鍵字禁用這個功能。可能在第一次呼叫duplicate的時候就使用noresume關鍵字,防止後來的duplicate命令使用自動化功能。

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

相關文章