複製目標數據庫

首先,rman設置運行時(runtime)參數,如duplicate命令中的until time字句。然後rman基於這些參數檢查目標數據庫控制文件或恢復目錄,確定適當的備份。隨後rman構建訪問備份(包括如何訪問及訪問哪些備份)的遠程過程調用,但是並不是在目標數據庫上執行代碼,反之,rman在輔助實例上創建一個稱爲輔助信道的信道進程,rman向這個信道傳遞對DBMS_BACKUP_RESTORE數據包的調用,最後,輔助實例訪問備份和還原所有必需的數據文件。

1.輔助信道配置

  爲了執行復制操作,rman必須在輔助輔助實例上分配一個或多個信道進程。
  從oracle9i開始,由於使用目標實例控制文件中存儲的永久配置參數可以自動創建輔助信道,所有不必在複製時手動地分配輔助信道。

2.將數據文件還原到不同的文件位置

  加載新的控制文件後,rman就可以開始還原數據文件(如果在駐留目標數據庫的相同服務器上覆制數據庫,就必須修改數據文件還原的位置,
  即使將數據文件還原到不同服務器上,加載點和目錄結構中的差異也要求使用新的文件位置)

  有3種方法修改複製進程的數據文件還原步驟以指向新的文件位置

   (1)configure命令,爲需要配置新位置的所有數據文件配置auxname,這個配置存儲在目標數據庫的控制文件中。
        configure auxname for datafile '/u01/oradata/aux1/system01.dbf'
        configure auxname for datafile '/u01/oradata/aux1/undo01.dbf'
   (2)在run命令中指定新的數據文件名
       run{ allocate channel c1 type 'sbt_tape';
       set newname for datafile 1 to '/u01/oradata/aux1/system01.db';
       set newname for datafile 2 to '/u01/oradata/aux1/undo01.db';
       duplicate target database to aux1;
         }
   (3)DB_FILE_NAME_CONVERT,LOG_FILE_NAME_CONVERT 第一個字符串是數據文件在目標數據庫上的原始位置,第二個字符串是數據文件在輔助實例中的新位置

3.創建新的控制文件
     還原所有文件後,複製操作會爲輔助實例創建新的控制文件,使用duplicate命令中概述的各種參數,rman在輔助實例上執行create controlfile命令。
     創建控制文件後,則可以加載這個輔助數據庫,此時,rman執行切換操作切換到新的文件,這個切換操作可以使rman修改輔助站點上的新控制文件以指向新的數據文件的位置。    

4.恢復和歸檔日誌
     還原和切換文件後,就能夠對數據庫執行恢復操作

5.修改數據庫ID(DBID)

6.在輔助站點上創建日誌文件
  在完成複製進程並執行最後一條open resetlogs命令時,rman必須爲輔助數據庫構建全新的日誌文件


--------------------------------------------------------------
複製的位置
 1.複製到相同的服務器
(1)內存問題
  在同一個系統中執行復制操作時,必須將輔助實例init.ora文件中的DB_NAME參數值修改爲與目標實例不同的數據庫名。
(2)文件位置問題
  存在兩個數據庫都嘗試寫入相同文件位置的問題
   I  控制文件
  II  數據文件
  III 重做日誌文件
(3)複製到相同服務器的不同ORACLE_HOME目錄
 2.複製到遠程服務器
(1)內存問題
(2)文件位置問題
    如果沒有修改文件位置,就必須在duplicate命令中指定nofilenamecheck參數,該參數通知複製操作不必在執行還原操作前確認文件名時不同的。
(3)備份位置爲磁盤

  在不同服務器上執行還原操作的複雜性在於要提供訪問不同服務器上備份的輔助信道進程的訪問
  有3種方法複製磁盤備份:
        1.將備份從目標主機複製到輔助主機的相同位置。
        2.從輔助主機中NFS加載目標主機上的備份位置。只有當加載目標的位置與RMAN將使用的加載點名稱相同的情況下,才能執行復制操作。
(4)備份位置爲磁帶
------------------------------------------------------------------

1.在相同服務器上覆制
  在相同的服務器上覆制磁盤備份
(1)構建輔助數據庫目錄
(2)將目標數據庫的init.ora文件複製到輔助數據庫的相應位置
(3)根據需要修改init.ora文件
(4)未輔助實例創建口令文件
(5)以未加載模式啓動aux1實例
 startup nomount pfile=/u01/../init.ora
(6)配置連接aux1實例的網絡文件
(7)從rman連接到目標手裏和輔助實例,並且運行duplicate命令
rman>connect auxiliary sys/oracle@aux1
rman>duplicate target database to aux1 pfile=/u01/../init.ora
logfile
'/u01/app/oracle/product/oradata/aux1/redo01.dbf' size 100m;
'/u01/app/oracle/product/oradata/aux1/redo02.dbf' size 100m;
'/u01/app/oracle/product/oradata/aux1/redo03.dbf' size 100m;

2.在遠程服務器上覆制

  在遠程服務器上覆制磁盤備份
(1)構建輔助數據庫目錄
(2)在目標數據庫生成init.ora副本。
(3)將目標數據庫的生成的init.ora副本複製到輔助數據庫(也需要一個位於目標數據庫上的init.ora文件副本,RMAN在duplicate命令中引用該副本)
(4)以未加載模式啓動輔助實例
     startup nomount pfile=/u01/../init.ora
(5)在輔助站點上配置listener.ora  在目標數據庫上配置tnsname.ora文件
(6)輔助實例創建口令文件
(7)將fra文件從目標數據庫移動到輔助數據庫
(8)從目標系統運行duplicate命令
rman>connect auxiliary sys/oracle@aux1
rman>duplicate target database to aux1 pfile=/u01/../init.ora
logfile
'/u01/app/oracle/product/oradata/aux1/redo01.dbf' size 100m;
'/u01/app/oracle/product/oradata/aux1/redo02.dbf' size 100m;
'/u01/app/oracle/product/oradata/aux1/redo03.dbf' size 100m;
發佈了51 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章