dataguard 11GR2 RAC to RAC 配置(二)

5、修改tnsnames.ora文件

Primary:RAC1 & RAC2
more $ORACLE_HOME/network/admin/tnsnames.ora
orclstscan2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = scan2-cluster)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclst)
)
)

orclst =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac21-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac22-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclst)
)
)

orclst1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac21-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclst)
(INSTANCE_NAME = orclst1)
)
)

orclst2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac22-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclst)
(INSTANCE_NAME = orclst2)
)
)

orclpd =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclpd)
)
)

orclpd1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclpd)
(INSTANCE_NAME = orclpd1)
)
)

orclpd2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclpd)
(INSTANCE_NAME = orclpd2)
)
)

Standby:RAC21 & RAC22
more $ORACLE_HOME/network/admin/tnsnames.ora
orclpdrac =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac-cluster)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclpd)
)
)

orclst =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac21-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac22-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclst)
)
)

orclst1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac21-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclst)
(INSTANCE_NAME = orclst1)
)
)

orclst2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac22-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclst)
(INSTANCE_NAME = orclst2)
)
)

orclpd =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclpd)
)
)

orclpd1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclpd)
(INSTANCE_NAME = orclpd1)
)
)

orclpd2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclpd)
(INSTANCE_NAME = orclpd2)
)
)

6、Primary 主库修改初始化参数之前,备份pfile

SQL> create pfile=’/home/oracle/primaryinitpfile.ora’ from spfile;

7、Primary 主库上修改初始化参数

primary rac1:
alter system set log_archive_config=’dg_config=(orclpd,orclst)’ scope=both ;
alter system set log_archive_dest_1=’location=+DATA2 valid_for=(all_logfiles,all_roles) db_unique_name=orclpd’ scope=both;
alter system set log_archive_dest_2=’service=orclst LGWR ASYNC NOAFFIRM max_failure=10 max_connections=5 reopen=180 valid_for=(online_logfiles,primary_role) db_unique_name=orclst’ scope=both;
alter system set log_archive_dest_state_2=’defer’ scope=both;
alter system set log_archive_dest_state_1=’enable’ scope=both;
alter system set fal_server=’orclst1′,’orclst2′ scope=both;
alter system set fal_client=’orclpd1′ scope=both sid=’orclpd1′;
alter system set fal_client=’orclpd2′ scope=both sid=’orclpd2′;
alter system set log_archive_max_processes=10 scope=both;
alter system set db_file_name_convert=’+DATA1/orclst’,’+DATA1/orclpd’ scope=spfile;
alter system set log_file_name_convert=’+DATA2/orclst’,’+DATA2/orclpd’,’+DATA1/orclst’,’+DATA1/orclpd’ scope=spfile;
alter system set standby_file_management=’AUTO’ scope=both;

重启数据库,使得修改参数生效
srvctl stop database -d orclpd
srvctl start database -d orclpd

PS:单独重启其中一个实例可能会报错
filename convert主备要用不同的路径,否则关闭其中一个数据库相当于关闭系统

8、关于LOCAL_LISTENER

建议不要设置LOCAL_LISTENER,因为设置了LOCAL_LISTENER,如果对监听进行修改,则LOCAL_LISTENER不会字段更新,会导致数据库不能连接。
在RAC中,当数据库重启的时候就会动态更新LOCAL_LISTENER的值。

9、Standby 备库确定remote_listener设置为scan name,后面会用到

[oracle@rac21 orclst]$ srvctl config scan
SCAN name: scan2-cluster, Network: 1/10.10.23.0/255.255.255.0/eth0
SCAN VIP name: scan1, IP: /scan2-cluster/10.10.23.10

10、拷贝Primary节点上的密码文件到Standby库的各节点,并根据实例名命名

RAC1上的/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapworclpd2
拷贝到RAC21 & RAC22上
rac21上命名为/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapworclst1
rac22上命名为/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapworclst2

11、选择Standby库其中一个节点

RAC21:
创建/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorclst1.ora
cat initorclst1.ora
db_name=orclst

12、启动数据库到nomount模式

RAC21:
export ORACLE_SID=orclst1
SQL> startup nomount pfile=’/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorclst1.ora’;
ORACLE instance started.

Total System Global Area 217157632 bytes
Fixed Size 2225064 bytes
Variable Size 159386712 bytes
Database Buffers 50331648 bytes
Redo Buffers 5214208 bytes

13、在primary主库的一个节点上修改log_archive_dest_state_2的值

SQL> alter system set log_archive_dest_state_2=’enable’ SCOPE=both sid=’*’;

14、在Primary主库的一个节点上使用rman复制数据到Standby数据库

target连接到主库其中的一个实例,auxiliary连接到备库其中的一个实例
rman target / auxiliary sys/Salley_2009@orclst1
Recovery Manager: Release 11.2.0.2.0 – Production on Fri Feb 18 15:12:39 2011

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

connected to target database: RAC11G2 (DBID=4063332678)
connected to auxiliary database: RAC11G2S (not mounted)

Primary rac1:
[oracle@rac1 dbs]$ rman target / auxiliary sys/Salley_2009@orclst1
duplicate target database for standby from active database
spfile
parameter_value_convert ‘orclpd’,’orclst’,’ORCLPD’,’ORCLST’
set db_unique_name=’orclst’
set db_file_name_convert=’+DATA1/orclpd’,’+DATA1/orclst’
set log_file_name_convert=’+DATA1/orclpd’,’+DATA1/orclst’,’+DATA2/orclpd’,’+DATA2/orclst’
set control_files=’+DATA1′,’+DATA2′
set instance_number=’1′
set log_archive_max_processes=’5′
set fal_client=’orclst’
set fal_server=’orclpd1′,’orclpd2′
set remote_listener=’scan2-cluster:11521′
reset local_listener
set log_archive_dest_2=’service=orclpd LGWR ASYNC NOAFFIRM max_failure=10 max_connections=5 reopen=180 valid_for=(online_logfiles,primary_role) db_unique_name=orclpd’
set log_archive_dest_1=’location=use_db_recovery_file_dest valid_for=(all_logfiles,all_roles) db_unique_name=orclst’;

PS:如果运行失败,一般需要检查的地方有以下几点:
内存是否足够;
监听是否可以连接;
trname是否配置正确;
primary是否启动到archive模式;
primary是否启动到force logging模式;

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注