1. 程式人生 > >Oracle Duplicate database

Oracle Duplicate database

                               Oracle Duplicate database

duplicate分為2種模式,1.直接從active狀態的庫直接複製;2.從目標庫的備份檔案來複制;現在兩種方法都介紹下,直接上乾貨。

試驗環境(2臺機器):

        target db:TESTA

        aux db:TESTA(db_name可修改)

一、備份方式複製

       步驟:1.檢查是否為archivelog模式(mount狀態下alter database archivelog)。

                   2.切換日誌(alter system switch logfile;)。

                   3.RMAN備份資料庫及歸檔日誌,生成備份檔案(這裡要在rman中把控制檔案自動備份功能開啟,不然要就在備份雨中加上備份控制檔案的子句)。

                   4.copy target db的pfile和備份檔案到aux機器上(並修改pfile的中引數,如db_name或檔案路徑不一致時)。

                   5.aux庫設定ORACLE_SID引數。                   

                   6.aux建立密碼檔案。

                   7.aux建立spfile並startup nomount。

                   8.rman duplicate database。

      實施:

                1.檢查是否為archivelog模式

                    

                這裡可以看到是archive mode的。

                2.切換日誌

                  

                3.備份

可以看到這裡生成了4個檔案。

      4.複製target db的pfile和備份檔案到aux db上

       我這裡aux的例項名和路徑都是一樣的,所以不用修改引數檔案(如果不一樣則修改pfile中的db_name或用                   

        db_file_name_convert和log_file_name_convert引數進行修改)

       5.aux庫設定ORACLE_SID引數

          

       6.在aux庫建立密碼檔案(sys密碼最好與target 庫的保持一致)    

           

       7.aux建立spfile並startup nomount

         

      8.rman duplicate database。

        

 

  

           這是aux db已經複製完成,檢查狀態。 

 

 

二、active模式複製

        步驟同一種大致一樣,

          1.不同的部分為第三步的備份動作不需要,改成配置tnsnames.ora檔案。 檔案路徑   

             $ORACLE_HOME/network/admin/tnsnames.ora

            

           紅色塗改部分為target db和aux db主機的IP。target和aux 報紙tnsnames.ora一樣即可。

       2.duplicate語句不同,改為

          duplicate target database to TESTA from active database;

     PS:一定要注意ORACLE_SID變數的值,資料檔案所在的路徑目錄是否都存在等