Active database duplicate
active database duplicate是Oracle 11g新特性,在使用duplicate时,可以不用专门生成备份,省去很多中间过程。用此生成DataGuard更是便捷。
本次在同一台Oracle Linux机器上做测试。Target db: ocm01 Auxiliary db: ocmdup
1.网络设置
Net
静态监听:
[oracle@oel admin]$ morelistener.ora
LISTENER =
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521))
(ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME =/app/oracle/product/11.2.0/dbhome_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_NAME =ocm01)
(ORACLE_HOME =/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME =ocm01)
)
(SID_DESC =
(GLOBAL_NAME =ocmdup)
(ORACLE_HOME =/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME =ocmdup)
Tnsnames.ora
[oracle@oel admin]$ moretnsnames.ora
ocm01 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.56.20)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ocm01)
)
)
ocmdup =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.56.20)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ocmdup)
)
)
2. Target db设置:
SQL> ALTER DATABASE FORCE LOGGING;
查看主库当前是否为force logging:
SQL> select force_logging from v$database;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG = 'DG_CONFIG=(ocm01,ocmdup)'scope=both;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = 'LOCATION=/u01/arch/ocm01VALID_FOR=(ONLINE_LOGFILE,PRIMARY_ROLE) DB_UNIQUE_NAME=ocm01' scope=both;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2 = 'SERVICE=ocmdup LGWR ASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=ocmdup' scope=both;
3. Auxiliary db设置:
[oracle@oel dbs]$ vi initocmdup.ora
db_name=ocmdup
SQL> startup nomount
ORACLE instance started.
Total System Global Area 238034944 bytes
Fixed Size 2227136 bytes
Variable Size 180356160 bytes
Database Buffers 50331648 bytes
Redo Buffers
4.开始duplicate复制
rman target sys/system@ocm01 auxiliary sys/system@ocmdup
duplicate target database to ocmdup
from active database
db_file_name_convert '/app/oracle/oradata/ocm01/',
'/u01/oradata/ocmdup/'
spfile
parameter_value_convert '/app/oracle/product/11.2.0/dbhome_1/dbs/',
'/app/oracle/product/11.2.0/dbhome_1/dbs/'
set SGA_MAX_SIZE='200M'
set SGA_TARGET='190M'
set audit_file_dest='/u01/admin/ocm01/adump'
set control_files='/u01/oradata/control01.ctl'
SET LOG_FILE_NAME_CONVERT '/app/oracle/oradata/ocm01/',
'/u01/oradata/ocmdup/';
----------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
如果是使用duplicate生成DataGuard的话,参考:http://blog.youkuaiyun.com/bamuta/article/details/9269513
而且需要增加
Set db_unique_name=ocmdup