2、修改主库和备库的hosts文件(本次采用centos 7.4)
#primary
#public ip
192.168.100.120 db1
192.168.100.121 db2
#private ip
10.1.1.1 rac1-priv
10.1.1.2 rac2-priv
#vip
192.168.100.122 db1-vip
192.168.100.123 db2-vip
#scanip
192.168.100.124 scanip
#standby
192.168.100.125 racdg
3、主库调整为归档模式并开启force logging
srvctl stop database -d orcl -o immediate
srvctl start database -d orcl -o mount
alter database archivelog;
alter database open;
alter database force logging;
4、主库添加standby日志组(用于数据同步,需要比原有联机重做日志大并且多一组)
alter database add standby logfile thread 1 '+DATA' size 50m;
alter database add standby logfile thread 2 '+DATA' size 50m;
5、编辑tnsname.ora文件
vi tnsname.ora
#追加
primary =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.122)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.123)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
standby =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.100.125)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcldg)(UR=A)
)
)
TAR =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.122)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
AUX =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.125)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcldg)
)
6、修改监听文件
#主库节点一
vi listener.ora
追加
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /oracle/app/oracle/product/11.2.0/db_1)
(SID_NAME = orcl1)
)
)
#节点二
su - grid
cd $ORACLE_HOME/network/admin
vi listener.ora
追加
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /oracle/app/oracle/product/11.2.0/db_1)
(SID_NAME = orcl2)
)
)
#备库
su - oracle
Cd $ORACLE_HOME/network/admin
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcldg)
(ORACLE_HOME = /u01/oracle/product/11.2.0/dbhome_1)
(SID_NAME = orcl)
)
)
7、修改系统参数
主库(任意节点)
alter system set db_unique_name='orcl' scope=spfile sid='*';
alter system set log_archive_config='dg_config=(orcl,orcldg)' scope=both sid='*';
alter system set log_archive_dest_1='location=+LOG valid_for=(all_logfiles,all_roles) db_unique_name=orcl' scope=both sid='*';
alter system set log_archive_dest_2='service=standby valid_for=(online_logfiles,primary_role)db_unique_name=orcldg' scope=both sid='*';
alter system set log_archive_dest_state_1=enable scope=both sid='*';
alter system set log_archive_dest_state_2=enable scope=both sid='*';
alter system set standby_file_management='auto' scope=both sid='*';
alter system set fal_server='standby' scope=both sid='*';
备库
alter system set db_unique_name='orcldg' scope=spfile ;
alter system set log_archive_config='dg_config=(orcl,orcldg)' scope=spfile ;
alter system set log_archive_dest_1='location=/u01/oracle/archive_log valid_for=(all_logfiles,all_roles) db_unique_name=orcldg' scope=spfile ;
alter system set log_archive_dest_2='service=primary valid_for=(online_logfiles,primary_role) db_unique_name=orcl' scope=spfile ;
alter system set log_archive_dest_state_1=enable scope=spfile ;
alter system set log_archive_dest_state_2=enable scope=spfile ;
alter system set standby_file_management='auto' scope=spfile ;
alter system set fal_server='primary' scope=spfile ;
8、备库启动到nomount
shutdown immedaite
startup nomount
9、启动duplicate
备库执行
su - oracle
rman target sys/oracle@primary auxiliary sys/oracle@standby
duplicate target database for standby from active database nofilenamecheck;
10、开启实时日志应用
alter database recover managed standby database using current logfile disconnect;