一. 环境说明
Source 端的 RAC 环境如下:
[root@rac1 scripts]# crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.DATA.dg ora....up.type ONLINE ONLINE rac1
ora.FRA.dg ora....up.type ONLINE ONLINE rac1
ora....ER.lsnr ora....er.type ONLINE ONLINE rac1
ora....N1.lsnr ora....er.type ONLINE ONLINE rac2
ora....TING.dg ora....up.type ONLINE ONLINE rac1
ora.asm ora.asm.type ONLINE ONLINE rac1
ora.cvu ora.cvu.type ONLINE ONLINE rac2
ora....taf.svc ora....ce.type ONLINE ONLINE rac1
ora.dave.db ora....se.type ONLINE ONLINE rac1
ora....taf.svc ora....ce.type ONLINE ONLINE rac1
ora.gsd ora.gsd.type ONLINE OFFLINE
ora....network ora....rk.type ONLINE ONLINE rac1
ora.oc4j ora.oc4j.type ONLINE ONLINE rac2
ora.ons ora.ons.type ONLINE ONLINE rac1
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE OFFLINE
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip ora....t1.type ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
Dave
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE OFFLINE
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip ora....t1.type ONLINE ONLINE rac2
ora.rac3.vip ora....t1.type OFFLINE OFFLINE
ora.scan1.vip ora....ip.type ONLINE ONLINE rac2
[root@rac1 scripts]#
数据库的归档存放在共享设备上,这里是+FRA 的磁盘组:
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination +FRA
Oldest online log sequence 42
Next log sequence to archive 43
第 1 页
资源由 www.eimhe.com 美河学习在线收集提供
Current log sequence 43
SQL>
Target 端采用一个单实例。
采用 data pump 来传输日志。
RAC 到单实例的单向 DML 复制。
我们这里演示的是归档放本地的案例,所以第一步要把 RAC 的归档切换到本地上去。
二. 修改 RAC 的归档位置
所有节点的归档都放在/u01/arch 的目录下面。
--创建目录:
--节点 1:
[root@rac1 scripts]# cd /u01
[root@rac1 u01]# ls
[root@rac1 u01]# mkdir arch
[root@rac1 u01]# chown oracle.oinstall arch
Dave 高
[root@rac2 u01]#
传一份到本地。
料
资
部
内
班
维
app backup ggs grid lmhb.log oraInventory orz scripts software tmparc
[root@rac1 u01]#
--节点 2:
[root@rac2 ~]# cd /u01
[root@rac2 u01]# mkdir arch
[root@rac2 u01]# chown oracle.oinstall arch
运
级
因为这里的 RAC+DG 的环境,所以我们这里不在修改 LOG_ARCHIVE_DEST_1,我新添加一个,让他归档也
SQL> alter system set log_archive_dest_3='location=/u01/arch' scope=both sid='*';
System altered.
--节点 1:
SQL> alter system switch logfile;
System altered.
[root@rac1 u01]# cd /u01/arch
[root@rac1 arch]# ls
1_45_820726132.dbf
归档生成。
第 2 页
资源由 www.eimhe.com 美河学习在线收集提供
--节点 2:
SQL> conn / as sysdba
Connected.
SQL> alter system switch logfile;
System altered.
[root@rac2 arch]# pwd
/u01/arch
[root@rac2 arch]# ls
2_44_820726132.dbf
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/arch
Oldest online log sequence 45
Next log sequence to archive 46
Current log sequence 46
SQL>
归档已经 ok 了。
三. 配置 NFS 映射
Dave 高
料
资
部
内
班
维
运
级
因为我们在节点 1 上做 OGG 同步,需要在节点上配置 NFS,让节点 1 上的 OGG 可以看到 2 个节点的归档日志。
NFS 的配置可以参考如下链接:
Linux NFS 和 Samba 共享配置
http://blog.csdn.net/tianlesoftware/article/details/5752092
我们这里只贴操作过程。
--在节点 2 做如下操作:
[root@rac2 arch]# cat /etc/exports
/u01/arch *(ro)
[root@rac2 arch]#
添加如上内容。
--启动 NFS:
[root@rac2 arch]# service nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Stopping RPC idmapd: [ OK ]
第 3 页
资源由 www.eimhe.com 美河学习在线收集提供
Starting RPC idmapd: [ OK ]
Starting NFS daemon: [ OK ]
在节点 1 上 mount 这个目录:
[root@rac1 u01]# mkdir arch2
[root@rac1 u01]# chown oracle.oinstall arch2
[root@rac1 u01]#
[root@rac1 u01]# mount -t nfs 192.168.2.111:/u01/arch /u01/arch2 -o nolock
[root@rac1 u01]# cd /u01/arch2
[root@rac1 arch2]# ls
2_44_820726132.dbf
[root@rac1 arch2]#
mount 成功,但这里在重启后就没有了,所以添加到开机自动 mount:
[root@rac1 arch2]# cat /etc/fstab
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
192.168.2.111:/u01/arch /u01/arch2 nfs defaults 0 0
料
资
部
内
班
维
运
级
[root@rac1 arch2]#
四. 具体操作
4.1 配置 ASM 动态注册
Dave 高
Oracle 11g RAC 的监听是用 grid 用户来管理的,所以用 grid 用户来操作。
[grid@rac1 ~]$ srvctl status listener
Listener LISTENER is enabled
Listener LISTENER is running on node(s): rac2,rac1
[grid@rac1 ~]$
[grid@rac1 ~]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 16-JUL-2013 05:18:01
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
STATUS of the LISTENER
第 4 页
资源由 www.eimhe.com 美河学习在线收集提供
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date 15-JUL-2013 20:39:05
Uptime 0 days 8 hr. 38 min. 55 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/grid/11.2.0/network/admin/listener.ora
Listener Log File /u01/grid/diag/tnslsnr/rac1/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.3.150)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.3.151)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
Service "dave" has 2 instance(s).
Instance "+ASM1", status READY, has 1 handler(s) for this service...
Instance "dave1", status UNKNOWN, has 1 handler(s) for this service...
Instance "dave1", status READY, has 1 handler(s) for this service...
Service "dave_taf" has 1 instance(s).
Instance "dave1", status READY, has 1 handler(s) for this service...
Service "server_taf" has 1 instance(s).
Instance "dave1", status READY, has 1 handler(s) for this service...
内
班
维
运
级
料
资
部
The command completed successfully
[grid@rac1 admin]$ echo $ORACLE_HOME
[grid@rac1 ~]$
/u01/app/grid/11.2.0
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
Dave 高
--在节点 1 grid 用户的 listener.ora 中添加如下内容:
(GLOBAL_DBNAME = ASM)
(ORACLE_HOME = /u01/app/grid/11.2.0)
(SID_NAME = +ASM1)
)
)
--节点 2 grid 用户的 listener.ora 中添加如下内容:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
第 5 页
资源由 www.eimhe.com 美河学习在线收集提供
(GLOBAL_DBNAME = ASM)
(ORACLE_HOME = /u01/app/grid/11.2.0)
(SID_NAME = +ASM2)
)
)
--reload 是修改生效:
[grid@rac1 admin]$ lsnrctl reload
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 16-JUL-2013 05:20:13
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
The command completed successfully
[grid@rac1 admin]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 16-JUL-2013 05:25:01
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
料
资
部
Version TNSLSNR for Linux: Version 11.2.0.3.0 - Production
内
班
维
运
级
STATUS of the LISTENER
------------------------
Alias LISTENER
Start Date 15-JUL-2013 20:39:05
Uptime 0 days 8 hr. 45 min. 55 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Dave 高
Listener Parameter File /u01/app/grid/11.2.0/network/admin/listener.ora
Listener Log File /u01/grid/diag/tnslsnr/rac1/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
Services Summary...
Service "ASM" has 1 instance(s).
Instance "+ASM1", status UNKNOWN, has 1 handler(s) for this service...
Service "dave" has 1 instance(s).
Instance "dave1", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
节点 2 同样操作。
--验证配置是否生效:
第 6 页
资源由 www.eimhe.com 美河学习在线收集提供
db_unique_name string +ASM
instance_name string +ASM1
lock_name_space string
service_names string +ASM
SQL> conn sys/oracle@rac2:1521/ASM as sysdba
Connected.
SQL> show parameter name
NAME TYPE VALUE
--------------------- ----------------------
db_unique_name string +ASM
instance_name string +ASM2
lock_name_space string
service_names string +ASM
Dave 高
SQL>
内
班
维
运
级
[oracle@rac1 u01]$ sqlplus sys/oracle@rac1:1521/ASM as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Tue Jul 16 05:20:53 2013
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
SQL> show parameter name
NAME TYPE VALUE
-------------------------------------------------
料
资
部
说明,这里的验证很重要,因为我们的归档是放在共享的 ASM 上的,所以在 OGG 同步的时候,需要通
过这里的配置去访问 ASM, 这里 sys/oracle 输入的密码是 ASM 实例的密码,该密码在创建 ASM 实例时指
定,如果忘记可以重建。
4.2 配置 TNSNAMES 文件
--在节点 1 的 oracle 用户的 tnsnames.ora 里添加如下内容:
DAVE=
(DESCRIPTION =
(ADDRESS_LIST =
(LOAD_BALANCE = yes)
(FAILOVER=ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.151)(PORT = 1521))
第 7 页
资源由 www.eimhe.com 美河学习在线收集提供
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.153)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = dave)
(failover_mode=(type=select)(method=basic))
)
)
ASM =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.151)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ASM)
(INSTANCE_NAME = +ASM1)
(UR=A)
)
)
--在节点 2 的 oracle 用户的 tnsnames.ora 里添加如下内容:
料
资
部
内
DAVE=
(DESCRIPTION =
(ADDRESS_LIST =
(LOAD_BALANCE = yes)
(FAILOVER=ON)
班
维
运
级
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.151)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.153)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = dave)
Dave 高
(failover_mode=(type=select)(method=basic))
)
)
ASM =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.153)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ASM)
(INSTANCE_NAME = +ASM2)
(UR=A)
)
)
第 8 页
资源由 www.eimhe.com 美河学习在线收集提供