合 OGG从入门到高可用系列
【OGG】RAC环境下配置OGG单向同步 (四)
实验环境介绍
项目 | source db | target db |
---|---|---|
db 类型 | rac | 单实例 |
db version | 11.2.0.1 | 11.2.0.1 |
db 存储 | ASM | FS type |
ORACLE_SID | jmrac1/jmrac2 | orcl |
db_name | jmrac | orcl |
主机IP地址: | 192.168.1.31/192.168.1.32 | 192.168.1.128 |
OS版本及kernel版本 | RHEL5.7 64位,2.6.18-274.el5 | RHEL6.5 64位,2.6.32-504.16.2.el6.x86_64 |
OGG版本 | 11.2.1.0.1 64位 | 11.2.1.0.1 64位 |
OS hostname | node1/node2 | orcltest |
实验部分
实验目标
本文配置是:rac(source)同单实例(target)数据库之间的ogg单向同步
RAC环境下配置OGG单向同步
首先在两个rac节点上配置ASM动态注册,11g的监听器引入了endpoints_listener.ora文件管理
配置listener
配置监听,加入对ASM的动态注册:
[oracle@node1 ~]$ srvctl status listener
Listener LISTENER is enabled
Listener LISTENER is running on node(s): node1,node2
[oracle@node1 ~]$ lsnrctl services
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 11-JUN-2015 16:39:32
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
Services Summary...
Service "+ASM" has 2 instance(s).
Instance "+ASM1", status UNKNOWN, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0
LOCAL SERVER
Instance "+ASM1", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:3 refused:0 state:ready
LOCAL SERVER
Service "HAHA" has 2 instance(s).
Instance "jmrac1", status READY, has 2 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
REMOTE SERVER
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=node1-vip)(PORT=1521)))
"DEDICATED" established:5 refused:0 state:ready
LOCAL SERVER
Instance "jmrac2", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
REMOTE SERVER
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=node2-vip)(PORT=1521)))
The command completed successfully
[oracle@node1 ~]$
[grid@node1 ~]$ cat $TNS_ADMIN/listener.ora
LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))) # line added by Agent
LISTENER_SCAN1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))) # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1=ON # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = +ASM)
(ORACLE_HOME=/u01/grid)
(SID_NAME = +ASM1)
)
)
[grid@node1 ~]$ cat $TNS_ADMIN/endpoints_listener.ora
LISTENER_NODE1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=node1-vip)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.31)(PORT=1521)(IP=FIRST)))) # line added by Agent
[grid@node1 ~]$
节点二监听:
[grid@node2 ~]$ cat $TNS_ADMIN/listener.ora
LISTENER_SCAN1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))) # line added by Agent
LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))) # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1=ON # line added by Agent
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = +ASM)
(ORACLE_HOME=/u01/grid)
(SID_NAME = +ASM2)
)
)
[grid@node2 ~]$ cat $TNS_ADMIN/endpoints_listener.ora
LISTENER_NODE2=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=node2-vip)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.32)(PORT=1521)(IP=FIRST)))) # line added by Agent
[grid@node2 ~]$
检查配置情况:
C:\Users\Administrator> sqlplus sys/lhr@192.168.1.31:1521/+ASM as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Thu Jun 11 11:13:37 2015
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
SQL> set line 9999
SQL> show parameter name
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
db_unique_name string +ASM
instance_name string +ASM1
lock_name_space string
service_names string +ASM
SQL> conn sys/lhr@192.168.1.32: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
SQL>
配置tnsnames.ora
注意切换到oracle用户下,2个节点均配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | 节点一: [oracle@node1 ~]$ su - oracle Password: [oracle@node1 ~]$ cd $TNS_ADMIN [oracle@node1 admin]$ ll total 16 drwxr-xr-x 2 oracle oinstall 4096 Feb 27 2012 samples -rw-r--r-- 1 oracle oinstall 187 May 7 2007 shrept.lst -rw-r--r-- 1 oracle oinstall 1137 Apr 28 14:41 tnsnames1504282PM4155.bak -rw-r----- 1 oracle oinstall 1752 May 12 16:17 tnsnames.ora [oracle@node1 admin]$ more tnsnames.ora # tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools. RAC = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.32)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.31)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = HAHA) ) ) ASM = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.31)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = +ASM) (SID_NAME = +ASM1) ) ) [oracle@node1 admin]$ 节点二: [oracle@node2 admin]$ more tnsnames.ora # tnsnames.ora.node2 Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora.node2 # Generated by Oracle configuration tools. RAC = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.32)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.31)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = HAHA) ) ) ASM = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.32)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = +ASM) (SID_NAME = +ASM2) ) ) [oracle@node2 admin]$ 检查配置情况: [oracle@node1 admin]$ sqlplus lhr/lhr@rac SQL*Plus: Release 11.2.0.1.0 Production on Thu Jun 11 16:47:45 2015 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options SQL> show parameter name NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_file_name_convert string db_name string jmrac db_unique_name string jmrac global_names boolean FALSE instance_name string jmrac2 lock_name_space string log_file_name_convert string service_names string HAHA, jmrac SQL> conn sys/lhr@ASM as sysasm Connected. SQL> show parameter name NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_unique_name string +ASM instance_name string +ASM1 lock_name_space string service_names string +ASM SQL> |
RAC上安装OGG软件
安装ACFS
我们首先来安装ACFS,即ASM Cluster File System,相关知识不多解释,而安装ACFS也有很多种办法,这里我们采用命令行的方式来安装ACFS,我们在节点一上操作:
a、root用户手工加载驱动:ASM volume driver,acfsload为grid用户下的命令
[root@node1 ~]# acfsload -s
acfsload: ACFS-9228: usage: acfsload {start|stop} [-s]
[root@node1 ~]# acfsload start
ACFS-9327: Verifying ADVM/ACFS devices.
ACFS-9322: done.
[root@node1 ~]#
b、创建磁盘组,也可以不用创建磁盘组,后边采用已经存在的磁盘组来创建卷组,我们这里就不再重新创建磁盘组了
c、创建asm卷
[root@node1 ~]# su - grid
[grid@node1 ~]$ sqlplus / as sysasm
SQL*Plus: Release 11.2.0.1.0 Production on Thu Jun 11 14:16:13 2015
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
SQL> alter diskgroup DATA add volume acfsvol1 size 1G;
Diskgroup altered.
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
[grid@node1 ~]$ ll /dev/asm
total 0
brwxrwx--- 1 root asmadmin 252, 118786 Jun 11 14:16 acfsvol1-232
brwxrwx--- 1 root asmadmin 252, 118785 Jun 11 13:45 vol01-232
[grid@node1 ~]$
d、创建acfs挂载目录,在rac1和rac2节点都执行
[root@node1 ~]# mkdir -p /u01/app/acfsmounts/acfsvol1-232
[root@node2 ~]# mkdir -p /u01/app/acfsmounts/acfsvol1-232
e、用mkfs创建文件系统
[root@node1 ~]# /sbin/mkfs -t acfs -n acfs01 /dev/asm/acfsvol1-232
mkfs.acfs: version = 11.2.0.1.0.0
mkfs.acfs: on-disk version = 39.0
mkfs.acfs: volume = /dev/asm/acfsvol1-232
mkfs.acfs: volume size = 1073741824
mkfs.acfs: Format complete.
[root@node1 ~]#
f、用acfsuit命令注册文件系统
[root@node1 ~]# /sbin/acfsutil registry -a -f /dev/asm/acfsvol1-232 /u01/app/acfsmounts/acfsvol1-232
acfsutil registry: mount point /u01/app/acfsmounts/acfsvol1-232 successfully added to Oracle Registry
g、用mount.acfs命令挂载文件系统
[root@node1 ~]# mount.acfs -o all
[root@node1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 75G 57G 15G 81% /
/dev/sda1 99M 27M 67M 29% /boot
tmpfs 1005M 463M 542M 47% /dev/shm
/dev/asm/vol01-232 1.0G 73M 952M 8% /u01/app/acfsmounts/data_vol01
/dev/asm/acfsvol1-232
1.0G 73M 952M 8% /u01/app/acfsmounts/acfsvol1-232
[root@node1 ~]#
[root@node1 ~]# ssh node2 "df -h"
root@node2's password:
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 75G 16G 55G 23% /
/dev/sda1 99M 26M 69M 28% /boot
tmpfs 1005M 463M 542M 47% /dev/shm
/dev/asm/vol01-232 1.0G 73M 952M 8% /u01/app/acfsmounts/data_vol01
/dev/asm/acfsvol1-232
1.0G 73M 952M 8% /u01/app/acfsmounts/acfsvol1-232
[root@node1 ~]#
h、改变文件系统属性供oracle使用
[root@node1 ~]# chown oracle.asmadmin /u01/app/acfsmounts/acfsvol1-232
[root@node1 ~]# ll -d /u01/app/acfsmounts/acfsvol1-232
drwxrwx--- 4 oracle asmadmin 4096 Jun 11 14:24 /u01/app/acfsmounts/acfsvol1-232
[root@node1 ~]# ssh node2 "ls -ld /u01/app/acfsmounts/acfsvol1-232"
root@node2's password:
drwxrwx--- 4 oracle asmadmin 4096 Jun 11 14:24 /u01/app/acfsmounts/acfsvol1-232
[root@node1 ~]#
acfs上安装ogg,acfs用来存放ogg的安装目录,便于集群件的共享,在10g上部署可以选择ocfs2
首先上传ogg软件到/TMP目录下:
2个节点均配置环境变量,加入如下参数:
export OGG_HOME=/u01/app/acfsmounts/acfsvol1-232/gg11
export PATH=$OGG_HOME:$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$OGG_HOME:$ORACLE_HOME/lib:$LD_LIBRARYPATH
alias ggsci='rlwrap ggsci'
节点一:
[oracle@node1 gg11]$ source ~/.bash_profile
[oracle@node1 gg11]$ echo $OGG_HOME
/u01/app/acfsmounts/acfsvol1-232/gg11
[oracle@node1 gg11]$
节点二:
[oracle@node2 ~]$ source ~/.bash_profile
[oracle@node2 ~]$ echo $OGG_HOME
/u01/app/acfsmounts/acfsvol1-232/gg11
[oracle@node2 ~]$
开始在节点一安装OGG软件:
[root@node1 tmp]# chown oracle.oinstall ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
[root@node1 tmp]# su - oracle