0%

xag 配置ogg高可用简单介绍

xag 配置ogg高可用简单介绍

简介

GI的独立代理简称为xag,通过这个xag独立代理,可以将tomcat、ogg、jde、mysql等作为资源加入GI管理,从而为资源保障高可用性,本次主要针对单实例运行的ogg。

从11.2.0.3以后,XAG作为GI安装的一部分,无需额外安装,但XAG的新版本需独立安装。
综上,建议安装新版本XAG。

环境

源库 11.2.0.4 单实例
目标库 和源库相同(不通schema测试table同步)
downstream库 11.2.0.4 RAC
ogg version 12.2.0.1.1
xag version v7

本次由于xag要与gi结合使用,而gi是11.2所以使用低版本v7的xag,如果集群版本高的话推荐使用v10,支持微服务模式ogg。

正好练习downstream库,所以源库需要和集群rac版本保持一致,方便redo发送到rac中间库进行解析,至于ogg搭建过程就省略了,主要简单介绍一下xag。

安装

1
2
3
4
5
6
7
8
9
10
-- 下载解压

-- 安装(使用grid用户)
./xagsetup.sh --install --directory /u01/app/grid/xag_v7 --all_nodes

-- 配置grid、oracle xag环境变量path
PATH=$PATH:/u01/app/grid/xag_v7/bin

-- 查询version
agctl query releaseversion

使用

1.为xag单独配置应用vip(其实应该直接基于rac的vip也可以的,单独配置规范一些)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-- 1. 配置 vip
crsctl stat res -p |grep -ie .network -ie subnet |grep -ie name -ie subnet

appvipcfg create -network=1 -ip=192.168.100.226 -vipname=xag.ggs_ext-vip.vip -user=oracle
appvipcfg create -network=1 -ip=192.168.100.227 -vipname=xag.ggs_rep-vip.vip -user=oracle

-- chown oracle vip
crsctl setperm res xag.ggs_ext-vip.vip -u user:oracle:r-x
crsctl setperm res xag.ggs_rep-vip.vip -u user:oracle:r-x

-- start vip
crsctl start res xag.ggs_ext-vip.vip
crsctl start res xag.ggs_rep-vip.vip

-- check vip
crsctl stat res xag.ggs_ext-vip.vip
crsctl stat res xag.ggs_rep-vip.vip

2.通过xag添加ogg实例资源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
-- 2. add ogg agent(xag)
agctl add goldengate -h -- 自己参考自己环境配置修改相应依赖资源配置

agctl add goldengate ggs_ext --gg_home /u01/app/extract --instance_type source --nodes node01,node02 --vip_name xag.ggs_ext-vip.vip --filesystems ora.datadg.ext_vol.acfs --databases ora.orcl.db --oracle_home /u01/app/oracle/product/11.2.0/db_1 --monitor_extracts ext1,dp1 --jagent_autostart yes

agctl add goldengate ggs_rep --gg_home /u01/app/replicat --instance_type target --nodes node01,node02 --vip_name xag.ggs_rep-vip.vip --filesystems ora.datadg.rep_vol.acfs --databases ora.orcl.db --oracle_home /u01/app/oracle/product/11.2.0/db_1 --monitor_extracts rep1 --jagent_autostart yes

-- check ogg agent status
agctl status goldengate ggs_ext
agctl status goldengate ggs_rep

-- start ogg with xag on target node:
agctl start goldengate ggs_ext --node node01
agctl start goldengate ggs_rep --node node02

3.其他相关命令

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
-- check xag status
agctl status goldengate ggs_ext
agctl status goldengate ggs_rep

crsctl stat res xag.ggs_ext.goldengate
crsctl stat res xag.ggs_rep.goldengate

-- 检查集群资源
crsctl stat res -t

-- relocate ogg with xag
agctl relocate goldengate ggs_ext --node node01
agctl relocate goldengate ggs_rep --node node02

-- stop ogg
agctl stop goldengate ggs_ext
agctl stop goldengate ggs_rep

-- stop ogg vip
crsctl stop res xag.ggs_ext-vip.vip
crsctl stop res xag.ggs_rep-vip.vip

-- delete
agctl delete resource ggs_ext
appvipcfg delete -vipname=xag.gg_ext-vip.vip

或者vip和ogg资源一起通过agctl添加也是可以的,参考这样:

1
2
3
4
5
6
7
8
9
10
11
12
-- 1/2. 或者vip和agent一个命令一起配置
$XAG_HOME/bin/agctl add goldengate gg_1 --gg_home /myacfs \
--instance_type source \
--nodes src_node1,src_node2 \
--network 1 \
--ip X.X.X.160 \
--filesystems ora.data.myacfs.acfs \
--user oracle \
--group oinstall \
--databases orcl \
--oracle_home /u01/app/oracle/product/11.2.0/dbhome_1 \
--monitor_extracts ext1,pmp1

测试前:2个ogg资源和vip都运行于node02节点上面

1
2
3
4
5
6
7
8
9
10
11
12
13
ora.orcl.db
1 ONLINE ONLINE node01 Open
2 ONLINE ONLINE node02 Open
ora.scan1.vip
1 ONLINE ONLINE node01
xag.ggs_ext-vip.vip
1 ONLINE ONLINE node02
xag.ggs_ext.goldengate
1 ONLINE ONLINE node02
xag.ggs_rep-vip.vip
1 ONLINE ONLINE node02
xag.ggs_rep.goldengate
1 ONLINE ONLINE node02

关闭node02 crs进行测试:

1
2
3
4
5
6
7
8
9
10
11
12
13
ora.orcl.db
1 ONLINE ONLINE node01 Open
2 ONLINE OFFLINE Instance Shutdown
ora.scan1.vip
1 ONLINE ONLINE node01
xag.ggs_ext-vip.vip
1 ONLINE ONLINE node01
xag.ggs_ext.goldengate
1 ONLINE ONLINE node01
xag.ggs_rep-vip.vip
1 ONLINE ONLINE node01
xag.ggs_rep.goldengate
1 ONLINE ONLINE node01

gi已经成功将goldengate和vip都自动relocate到存活实例node01上面,测试成功。

注意:

本次将源端的ext和dp组给ggs_ext实例的mgr管理,将目标端的rep组给ggs_rep实例的mgr管理,它们可以运行于不同实例,或者都运行在一个实例,所以2个mgr的port不能一样和冲突。然后因为使用rac来配置ogg,为了高可用任一节点都可以启动ext、dp、rep组进程,所以使用的acfs集群文件系统。

参考

xag_v7 官网下载

xag_v10 官网下载

itpub博客:使用GI Agent(XAG)实现GoldenGate的高可用性(二)