使用RMAN Duplicate方法搭建異名資料庫實驗

來源:互聯網
上載者:User

Oracle RMAN工具工作環境一共有三個資料庫來源物件:target、catalog和auxiliary。

target就是進行備份操作的來源資料庫,我們進行備份還原的對象都是在這個庫上進行。預設情況下,備份組合資訊是儲存在controlfile,catalog是一個可選資料庫,備份中繼資料可以單獨放在catalog資料庫中儲存。auxiliary是作為輔助操作進行的,一些與備份還原相關的操作,都可以利用auxiliary上完成。
 
本篇從10g資料庫入手,實驗在相同host上構建不同名clone資料庫。注意:在其他主機上進行clone操作完全相同。

推薦閱讀:

RMAN 配置歸檔日誌刪除策略

Oracle基礎教程之通過RMAN複製資料庫

RMAN備份策略制定參考內容

RMAN備份學習筆記

OracleDatabase Backup加密 RMAN加密  

1、環境介紹

 

我們選擇Oracle 10gR2進行測試,Linux環境主機。

 

SQL> select * from v$version;

BANNER

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

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

PL/SQL Release 10.2.0.1.0 - Production

CORE    10.2.0.1.0      Production

TNS for Linux: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0 – Production

 

2、TargetDatabase Backup

 

當前資料庫沒有選擇catalog,採用controlfile進行備份檔案。資料庫執行個體名稱為oratest,作為資料來源。此時備份資訊如下:

 

RMAN> list backup;

 

List of Backup Sets

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

BS Key  Type LV Size      Device Type Elapsed Time Completion Time

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

13      Full    595.90M    DISK        00:00:30    05-MAR-14     

        BP Key: 13  Status: AVAILABLE  Compressed: NO  Tag: TAG20140305T111526

        Piece Name: /u01/app/oracle/flash_recovery_area/ORATEST/backupset/2014_03_05/o1_mf_nnndf_TAG20140305T111526_9kf5pgf2_.bkp
 
 

(篇幅原因,有省略……)

BS Key  Size      Device Type Elapsed Time Completion Time

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

15      15.07M    DISK        00:00:02    05-MAR-14     

        BP Key: 15  Status: AVAILABLE  Compressed: NO  Tag: TAG20140305T112405

        Piece Name: /u01/app/oracle/flash_recovery_area/ORATEST/backupset/2014_03_05/o1_mf_annnn_TAG20140305T112405_9kf66ppv_.bkp
 
 

  List of Archived Logs in backup set 15

  Thrd Seq    Low SCN    Low Time  Next SCN  Next Time

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

  1    2      576174    04-MAR-14 578638    05-MAR-14

  1    3      578638    05-MAR-14 578643    05-MAR-14

  1    4      578643    05-MAR-14 578677    05-MAR-14

 

BS Key  Type LV Size      Device Type Elapsed Time Completion Time

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

16      Full    6.80M      DISK        00:00:01    05-MAR-14     

        BP Key: 16  Status: AVAILABLE  Compressed: NO  Tag: TAG20140305T112407

        Piece Name: /u01/app/oracle/flash_recovery_area/ORATEST/autobackup/2014_03_05/o1_mf_s_841404247_9kf66qvs_.bkp
 
  Control File Included: Ckp SCN: 578684      Ckp time: 05-MAR-14

  SPFILE Included: Modification time: 05-MAR-14

 

注意:在備份過程中,一定要有一個單獨的backup archivelog all的過程,將歸檔日誌作為單獨備份組合儲存。如果不進行這個操作,在進行duplicate過程中會出現錯誤。
 
 

RMAN> backup archivelog all;

 

Starting backup at 05-MAR-14

(篇幅原因,有省略……)

Starting Control File and SPFILE Autobackup at 05-MAR-14

piece handle=/u01/app/oracle/flash_recovery_area/ORATEST/autobackup/2014_03_05/o1_mf_s_841404247_9kf66qvs_.bkp comment=NONE
 
Finished Control File and SPFILE Autobackup at 05-MAR-14

 

在進行duplicate操作過程中,target資料庫最好維持mount狀態!

 

3、網路設定

 

無論是在本機還是異地進行duplicate構建,保證target和auxiliary互聯是重要的。所以在TNS串連方面,要進行配置過程。

Oracle Net配置三個檔案,listener.ora、tnsnames.ora和sqlnet.ora。起碼要保證tnsnames.ora的互聯配置。

 

[oracle@SimpleLinuxUp admin]$ cat tnsnames.ora

# tnsnames.ora Network Configuration File: /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
 
# Generated by Oracle configuration tools.

 

ORATEST = --target

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = oratest)

    )

  )

 

ORAAUX = --目標auxiliary

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = oraaux)

    )

  )

 

一些文獻(包括官方MOS文章)都推薦額外進行listener.ora的配置,將兩個服務作為靜態註冊註冊進監聽程式listener。這樣做的基礎是這樣的:在進行duplicate過程中,如果我們是從target端進行操作,就需要通過auxiliary端的監聽器訪問auxiliary。而此時auxiliary只有一個執行個體對象,雖然可以動態註冊,但是註冊狀態是blocked。
 
 

Service "oraaux" has 1 instance(s).

  Instance "oraaux", status BLOCKED, has 1 handler(s) for this service...

 

從9i到11g,Blocked狀態是不允許進行遠程連入的。當我們試圖通過監聽器連入的時候,是會報錯。

 

MAN> connect auxiliary sys/oracle@oraaux

 

RMAN-00571: =============================

RMAN-00569: ========= ERROR MESSAGE STACK FOLLOWS =====

RMAN-00571: ============================

RMAN-04006: error from auxiliary database: ORA-12528: TNS:listener: all appropriate instances are blocking new connections
 
 

解決方案有兩個:一個就是放棄使用動態註冊方法,就需要手工修改listener.ora檔案。也就是為什麼很多網路同仁文章中推薦這個步驟。另一種方法就是從auxiliary端進行duplicate操作,這樣使用/匿名登入是沒有問題的。第二種方法的缺點是一些時候需要將備份組合傳遞到auxiliary所在伺服器目錄中。
 
筆者本次就選取第二種方法進行實驗。

 

更多詳情見請繼續閱讀下一頁的精彩內容:

  • 1
  • 2
  • 3
  • 下一頁

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.