RMAN duplicate from active database 複製資料庫

壹頁書發表於2014-10-28
RMAN基於備份的duplicate非常麻煩
首先,源庫需要一個完整的備份,包括資料檔案,控制檔案,spfile和歸檔日誌。
其次,需要將備份傳輸到目的資料庫一模一樣的位置上

Oracle11g推出了duplicate from active database
他可以在沒有備份的情況下,直接複製資料庫,簡化了很多操作。

基於備份的duplicate有如下的步驟
1.配置兩臺伺服器的監聽器和tnsnames
2.源庫建立密碼檔案,傳輸至目的資料庫
3.源庫建立pfile,傳輸至目的資料庫
4.將源庫的備份傳輸至目的資料庫,要求備份的位置和源庫的位置一模一樣.(因為備份的位置記錄在了控制檔案)
5.在目的資料庫建立相應的目錄
6.在目的資料庫啟動輔助例項
7.在源庫使用rman開始複製

其中基於備份的duplicate,一定要注意,備份需要包括歸檔日誌

而duplicate from active database則簡單很多
1.配置兩臺伺服器的監聽器和tnsnames
2.源庫建立密碼檔案,傳輸至目的資料庫
3.在目的資料庫建立相應的目錄
4.在目的資料庫建立一個pfile,啟動輔助例項.(pfile僅有一個引數就是db_name)
5.在源庫使用rman開始複製

實驗環境如下
資料庫版本:11.2.0.3
源庫:192.168.1.1
源庫sid:orcl
目的庫:192.168.1.2 僅安裝資料庫軟體,沒有安裝任何例項

實驗目的
將192.168.1.1的資料庫複製到192.168.1.2

1.配置兩臺伺服器的監聽器和tnsnames
兩臺伺服器的tnsnames.ora都是一樣的配置
SOURCE =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )
TARGET =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

源庫的監聽器配置(目的資料庫修改監聽的IP地址)
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME = orcl)
    )
  )

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
  )

ADR_BASE_LISTENER = /home/oracle/app/oracle

2.源庫建立密碼檔案,傳輸至目的資料庫
在源庫的$ORACLE_HOME/dbs目錄下建立金鑰檔案
金鑰檔案的命名必須是 orapw+sid

[oracle@master dbs]$ pwd
/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs
[oracle@master dbs]$ orapwd file=orapworcl password=123456

一定要注意,在源庫生成金鑰檔案,再透過scp傳輸到目的資料庫
不能以相同的密碼在目的資料庫建立金鑰檔案,否則在duplicate的時候報錯.

3.在目的資料庫建立相應的目錄
查詢源庫的引數檔案,將裡面涉及的目錄,在目的資料庫建立.
[oracle@slaveOne ~]$ mkdir -p /home/oracle/app/oracle/admin/orcl/adump
[oracle@slaveOne ~]$ mkdir -p /home/oracle/app/oracle/oradata/orcl/
[oracle@slaveOne ~]$ mkdir -p /home/oracle/app/oracle/fast_recovery_area/orcl/


4.在目的資料庫建立一個pfile,啟動輔助例項.(pfile僅有一個引數就是db_name)

5.在源庫使用rman開始複製
[oracle@master ~]$ rman target / auxiliary sys/123456@target
Recovery Manager: Release 11.2.0.3.0 - Production on Tue Oct 28 19:18:17 2014
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: ORCL (DBID=1388624007)
connected to auxiliary database: ORCL (not mounted)

RMAN> duplicate target database to orcl from active database nofilenamecheck PASSWORD FILE SPFILE;

輔助例項的密碼就是金鑰檔案中設定的密碼,
如果源庫和目標庫的檔案位置一樣,則需要nofilenamecheck 忽略檔案檢查
如果源庫和目標庫的檔案位置不一樣,則需要用db_file_name_convert引數指定目錄.

參考:
http://blog.csdn.net/tianlesoftware/article/details/6230498


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

相關文章