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所在伺服器目錄中。
筆者本次就選取第二種方法進行實驗。
更多詳情見請繼續閱讀下一頁的精彩內容: