使用RMAN的duplicate命令來創建一個輔助數據庫,該輔助數據庫一但創建成功就和源數據庫脫離了關系,可以使用輔助數據庫做一些實驗。
本文利用源數據庫在本機的其他目錄中創建一個輔助數據庫。
源數據庫:
SID = ORCL
輔助數據庫:
SID = DUP
源數據庫和輔助數據庫的物理文件目錄見下面initDUP.ora.
執行orapwd命令來創建秘鑰文件,遠程登錄數據庫時就需要秘鑰文件中所保存的密碼。
命令:
$: orapwd file=orapwDUP password=oracle entries=30
秘鑰文件的格式為orapwSID,我們的輔助數據庫SID為DUP。
DB_NAME='DUP' shared_pool_size=163577856 control_files='/u01/app/oracle/oradata/DUP/controlfile/o1_mf_blt7js24_.ctl','/u01/app/oracle/oradata/DUP/controlfile/o1_mf_blt7js9b_.ctl' db_block_size=8192 DB_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
因為我們要使用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;
}
命令執行完畢後就可以連接到輔助數據庫進行操作了。