RMAN duplicate資料庫,rmanduplicate
使用RMAN的duplicate命令來建立一個次要資料庫,該次要資料庫一但建立成功就和來源資料庫脫離了關係,可以使用次要資料庫做一些實驗。
本文利用來源資料庫在原生其他目錄中建立一個次要資料庫。
來源資料庫:
SID = ORCL
次要資料庫:
SID = DUP
來源資料庫和次要資料庫的物理檔案目錄見下面initDUP.ora.
步驟一. 建立次要資料庫的秘鑰檔案。
執行orapwd命令來建立秘鑰檔案,遠程登入資料庫時就需要秘鑰檔案中所儲存的密碼。
命令:
$: orapwd file=orapwDUP password=oracle entries=30
秘鑰檔案的格式為orapwSID,我們的次要資料庫SID為DUP。
步驟二. 建立次要資料庫的參數檔案initDUP.ora
DB_NAME='DUP'shared_pool_size=163577856control_files='/u01/app/oracle/oradata/DUP/controlfile/o1_mf_blt7js24_.ctl','/u01/app/oracle/oradata/DUP/controlfile/o1_mf_blt7js9b_.ctl'db_block_size=8192DB_FILE_NAME_CONVERT=('/u01/app/oracle/oradata/ORCL/datafile','/u01/app/oracle/oradata/DUP/datafile')LOG_FILE_NAME_CONVERT=('/u01/app/oracle/oradata/ORCL/onlinelog','/u01/app/oracle/oradata/DUP/onlinelog')
我們的次要資料庫中只有這必要的6個參數。因為我們是在同一台機器上建立次要資料庫,所以次要資料庫和來源資料庫的資料檔案目錄和聯機記錄檔目錄必然不同,所以需要對目錄進行轉換,最後後兩個參數就是來源資料庫和次要資料庫資料檔案和聯機記錄檔的目錄轉換。
然後sqlplus串連上次要資料庫上,注意轉換環境變數$ORACLE_SID。(使用export ORACLE_SID=DUP命令進行轉換)
使用initDUP.ora來建立spfile:
SQL>create spfile from pfile。
步驟三. 啟動次要資料庫
由於此時次要資料庫並沒有控制檔案,所以只把資料庫啟動到nomount狀態
SQL> startup nomount;
步驟四. 配置監聽和網路服務名
為次要資料庫DUP建立監聽,在已有的監聽器LISTENER中將資料庫DUP添加進來就可以了,可以在Linux使用netca和netmgr兩個工具來完成,也可以在$ORACLE_HOME/netwaork/admin/listener.ora中建立如下文本:
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = ORCL) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1) (SID_NAME = ORCL) ) (SID_DESC = (GLOBAL_DBNAME = DUP) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1) (SID_NAME = DUP) ) )LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.159.155)(PORT = 1521)) )
修改$ORACLE_HOME/network/admin/tnsnames.ora
ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.159.155)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) ) )DUP = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.159.155)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = DUP) ) )
配置完上述兩個檔案後,記得將監聽進程LISTENER啟動起來
$ lsnrctl start
步驟五.啟動來源資料庫到mount或open狀態
因為我們要使用rman串連來源資料庫,所以必須將來源資料庫啟動到mount或open狀態。
將ORACLE_SID切換為ORCL後
sql> startup
步驟六.驗證來源資料庫的備份
需要使用來源資料庫的備份來建立次要資料庫,使用rman串連到ORCL資料庫上,使用list backup查看是否有備份,保險起見,可以重新做個全備。
步驟七.執行複製
使用rman串連到來源資料庫和次要資料庫上
$ rman target sys/xxxxx@orcl auxiliary sys/orcl@dup
然後執行如下命令進行複製
run {
allocate channel c1 device type disk;
duplicate target database to dup;
}
命令執行完畢後就可以串連到次要資料庫進行操作了。
參考文獻:
《塗抹Oracle》