背景:本文是根据实际客户测试需求整理,因为客户OGG所在环境只有GI集群,数据库部署在其他位置,所以会有一些差异,但核心思路一致,已完全测试通过,整理出来供大家参考。

1.前期准备

RAC环境

  DB: 19.12.0
GI: 19.12.0
OS: RHEL 7.6以上 or Oracle Linux 7.7以上 OGG软件 Oracle GoldenGate 19.1.0.0.4 for Oracle on Linux x86-64 XAG软件 Patch 31215432: XAG 10.2 BUG FIX MLR

目前最新的RU是19.12,同时下载对应最新的OPatch版本,之后使用最新OPatch应用19.12的补丁。

成功应用19.12的RU之后,检查下ACFS的相关Modules是否正常。

2.创建ACFS文件系统

因为本次安装环境只有GI的grid用户,所以acfs这里设置为grid和oinstall。
ASMCA调用图形界面创建ACFS文件系统,只要正常显示一般就没啥问题。

3.安装GoldenGate软件

此次安装选择Oracle GoldenGate for Oracle Database 19c
因为都是使用GRID用户安装,所以这里需要手工改为GRID_HOME对应路径,也充当了客户端功能,无需额外安装。

--ogg install
[grid@db193 media]$ unzip V983658-01.zip
[grid@db193 ~]$ cd /u01/media/fbo_ggs_Linux_x64_shiphome/Disk1/
[grid@db193 Disk1]$ ls
install response runInstaller stage
[grid@db193 Disk1]$ ./runInstaller

安装成功:特别注意这里手工修改了图形界面中的ORACLE_HOME默认值!!

当然修改这里也是因为我这个客户的需求相对特殊,没有oracle用户及其软件目录。

4.安装XAG软件

解压XAG介质,创建XAG目录,安装XAG软件,设置环境变量:

[root@db193 media]# ls -lrth
总用量 531M
-rwxr-xr-x 1 root root 213K 9月 14 09:23 p31215432_190000_Generic.zip
-rw-r--r-- 1 root root 531M 9月 14 09:24 V983658-01.zip

为了操作方便,root和grid用户都配置下GRID_HOME变量:

export GRID_HOME=/u01/app/19.3.0/grid

xag安装,确定安装目录:

[root@db195 ~]# cd /u01/app
[root@db195 app]# mkdir xag
[root@db195 app]# chown grid:oinstall xag

注意:xag目录确保所有节点都有创建成功,权限一致且正确;

xagsetup.sh --install --directory <installdir> [{--nodes <node1,node2[,...]> | --all_nodes}]
xagsetup.sh --install --directory /u01/app/xag --all_nodes [grid@db193 media]$ unzip p31215432_190000_Generic.zip
[grid@db193 xag]$ pwd
/u01/media/xag
[grid@db193 xag]$ ./xagsetup.sh --install --directory /u01/app/xag --all_nodes
Installing Oracle Grid Infrastructure Agents on: db193
Installing Oracle Grid Infrastructure Agents on: db195
Updating XAG resources.
Successfully updated XAG resources.

设置环境变量:

export XAG_HOME=/u01/app/xag

同时将$XAG_HOME/bin设置到PATH变量中,方便调用。

5.在cluster上添加OGG资源

源端和目标端集群添加OGG资源方法一致,本次实施的环境,要配置的数据库不在本集群,只有GI集群软件和grid用户:

5.1 选择一个未使用的VIP地址添加

[grid@db193 admin]$ $GRID_HOME/bin/crsctl stat res -p |grep -ie .network -ie subnet |grep -ie name -ie subnet
START_DEPENDENCIES_RTE_INTERNAL=<xml><Arg name="asmnetwork" type="ResList">ora.asmnet1.asmnetwork</Arg></xml>
STOP_DEPENDENCIES_RTE_INTERNAL=<xml><Arg name="asmnetwork" type="ResList">ora.asmnet1.asmnetwork</Arg></xml>
SUBNET=10.10.1.0
REGISTRATION_INVITED_SUBNETS=
NAME=ora.asmnet1.asmnetwork(ora.asmgroup)
USR_ORA_SUBNET=10.10.1.0
START_DEPENDENCIES_RTE_INTERNAL=<xml><Arg name="network" type="Res">ora.net1.network</Arg></xml>
STOP_DEPENDENCIES_RTE_INTERNAL=<xml><Arg name="network" type="Res">ora.net1.network</Arg></xml>
START_DEPENDENCIES_RTE_INTERNAL=<xml><Arg name="network" type="Res">ora.net1.network</Arg></xml>
STOP_DEPENDENCIES_RTE_INTERNAL=<xml><Arg name="network" type="Res">ora.net1.network</Arg></xml>
NAME=ora.net1.network
USR_ORA_SUBNET=192.168.1.0
START_DEPENDENCIES_RTE_INTERNAL=<xml><Arg name="network" type="Res">ora.net1.network</Arg></xml>
STOP_DEPENDENCIES_RTE_INTERNAL=<xml><Arg name="network" type="Res">ora.net1.network</Arg></xml> [root@db193 media]# $GRID_HOME/bin/appvipcfg create -network=1 -ip=192.168.1.198 -vipname=xag.gg_1-vip.vip -user=grid

5.2 将VIP资源赋权给GRID用户

[root@db193 media]# $GRID_HOME/bin/crsctl setperm resource xag.gg_1-vip.vip -u user:grid:r-x

5.3 启动VIP并检查状态

启动VIP资源:

[grid@db193 ~]$ $GRID_HOME/bin/crsctl start resource xag.gg_1-vip.vip
CRS-2672: Attempting to start 'xag.gg_1-vip.vip' on 'db193'
CRS-2676: Start of 'xag.gg_1-vip.vip' on 'db193' succeeded 检查VIP资源状态: [grid@db193 ~]$ $GRID_HOME/bin/crsctl status resource xag.gg_1-vip.vip
NAME=xag.gg_1-vip.vip
TYPE=app.appviptypex2.type
TARGET=ONLINE
STATE=ONLINE on db193

5.4 添加goldengate实例并检查状态

[grid@db193 grid]$ $XAG_HOME/bin/agctl add goldengate gg_1 --gg_home /oggsou --instance_type source --nodes db193,db195 --vip_name xag.gg_1-vip.vip --filesystems ora.data.oggsou.acfs --oracle_home /u01/app/19.3.0/grid

检查状态
[grid@db193 grid]$ $XAG_HOME/bin/agctl status goldengate gg_1
Goldengate instance 'gg_1' is not running 启动goldengate gg_1
[grid@db193 grid]$ $XAG_HOME/bin/agctl start goldengate gg_1

5.5 检查资源状态

[grid@db195 oggsou]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.OGGSOU.advm
ONLINE ONLINE db193 STABLE
ONLINE ONLINE db195 STABLE
ora.LISTENER.lsnr
ONLINE ONLINE db193 STABLE
ONLINE ONLINE db195 STABLE
ora.chad
ONLINE ONLINE db193 STABLE
ONLINE ONLINE db195 STABLE
ora.data.oggsou.acfs
ONLINE ONLINE db193 mounted on /oggsou,S
TABLE
ONLINE ONLINE db195 mounted on /oggsou,S
TABLE
ora.net1.network
ONLINE ONLINE db193 STABLE
ONLINE ONLINE db195 STABLE
ora.ons
ONLINE ONLINE db193 STABLE
ONLINE ONLINE db195 STABLE
ora.proxy_advm
ONLINE ONLINE db193 STABLE
ONLINE ONLINE db195 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
1 ONLINE ONLINE db193 STABLE
2 ONLINE ONLINE db195 STABLE
ora.CRS.dg(ora.asmgroup)
1 ONLINE ONLINE db193 STABLE
2 ONLINE ONLINE db195 STABLE
ora.DATA.dg(ora.asmgroup)
1 ONLINE ONLINE db193 STABLE
2 ONLINE ONLINE db195 STABLE
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE db195 STABLE
ora.asm(ora.asmgroup)
1 ONLINE ONLINE db193 Started,STABLE
2 ONLINE ONLINE db195 Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
1 ONLINE ONLINE db193 STABLE
2 ONLINE ONLINE db195 STABLE
ora.cvu
1 ONLINE ONLINE db195 STABLE
ora.db193.vip
1 ONLINE ONLINE db193 STABLE
ora.db195.vip
1 ONLINE ONLINE db195 STABLE
ora.jydb.cmdb1.svc
2 ONLINE ONLINE db195 STABLE
ora.jydb.db
1 ONLINE ONLINE db193 Open,HOME=/u01/app/o
racle/product/19.3.0
/db_1,STABLE
2 ONLINE ONLINE db195 Open,HOME=/u01/app/o
racle/product/19.3.0
/db_1,STABLE
ora.qosmserver
1 ONLINE ONLINE db195 STABLE
ora.scan1.vip
1 ONLINE ONLINE db195 STABLE
xag.gg_1-vip.vip
1 ONLINE ONLINE db195 STABLE
xag.gg_1.goldengate
1 ONLINE ONLINE db195 STABLE
--------------------------------------------------------------------------------

5.6 切换测试

节点db193切换到节点db195:

[grid@db193 grid]$ $XAG_HOME/bin/agctl relocate goldengate gg_1 --node db195

[grid@db193 grid]$ crsctl stat res -t
Cluster Resources
--------------------------------------------------------------------------------
xag.gg_1-vip.vip
1 ONLINE ONLINE db195 STABLE
xag.gg_1.goldengate
1 ONLINE ONLINE db195 STABLE
--------------------------------------------------------------------------------

节点db195切换到节点db193:

[grid@db193 grid]$ $XAG_HOME/bin/agctl relocate goldengate gg_1 --node db193

[grid@db193 grid]$ crsctl stat res -t
Cluster Resources
--------------------------------------------------------------------------------
xag.gg_1-vip.vip
1 ONLINE ONLINE db193 STABLE
xag.gg_1.goldengate
1 ONLINE ONLINE db193 STABLE
-------------------------------------------------------------------------------- 均可以正常切换。 同样测试reboot重启db195主机,OGG的VIP和资源也会自动切换到db193,反之亦然。说明goldengate的高可用OK。

6.RAC上OGG的启停方法

6.1 停止OGG常用命令

1. 停止GoldenGate资源

[grid@db195 oggsou]$ agctl stop goldengate gg_1

[grid@db195 oggsou]$ crsctl stat res xag.gg_1.goldengate -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
xag.gg_1.goldengate
1 OFFLINE OFFLINE STABLE
-------------------------------------------------------------------------------- 2. 停止ACFS文件系统 [grid@db195 ~]$ srvctl stop filesystem -volume oggsou -diskgroup data [grid@db195 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.data.oggsou.acfs
OFFLINE OFFLINE db193 admin unmounted /ogg
sou,STABLE
OFFLINE OFFLINE db195 admin unmounted /ogg
sou,STABLE
-------------------------------------------------------------------------------- 3. 停止CRS [root@db195 ~]# crsctl stop has
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'db195'
CRS-2673: Attempting to stop 'ora.crsd' on 'db195'
CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on server 'db195'
<省略>
CRS-2677: Stop of 'ora.gipcd' on 'db195' succeeded
CRS-2677: Stop of 'ora.gpnpd' on 'db195' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'db195' has completed
CRS-4133: Oracle High Availability Services has been stopped. 4. 检查CRS是否完全停止 [root@db195 ~]# crsctl stat res -t -init
CRS-4639: Could not contact Oracle High Availability Services
CRS-4000: Command Status failed, or completed with errors.

6.2 启动OGG常用命令

1.启动CRS

[root@db195 ~]# crsctl start has
CRS-4123: Oracle High Availability Services has been started. 2. 启动ACFS文件系统 [grid@db195 ~]$ srvctl start filesystem -volume oggsou -diskgroup data [grid@db195 ~]$ crsctl stat res ora.data.oggsou.acfs -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.data.oggsou.acfs
ONLINE ONLINE db193 mounted on /oggsou,S
TABLE
ONLINE ONLINE db195 mounted on /oggsou,S
TABLE
-------------------------------------------------------------------------------- 3. 启动GoldenGate资源 [grid@db195 ~]$ agctl start goldengate gg_1 [grid@db195 ~]$ crsctl stat res xag.gg_1.goldengate -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
xag.gg_1.goldengate
1 ONLINE ONLINE db193 STABLE
--------------------------------------------------------------------------------

7.其他补充

OGG具体进程也可以加入到集群监管,这样有进程异常通过集群状态可以清楚看到:

[grid@db193 oggsou]$ agctl modify goldengate gg_1 --monitor_extracts extjy1
[grid@db193 oggsou]$ agctl config goldengate gg_1
Instance name: gg_1
Application GoldenGate location is: /oggsou
Goldengate MicroServices Architecture environment: no
GoldenGate instance type is: source
EXTRACT groups to monitor: extjy1
REPLICAT groups to monitor:
Critical EXTRACT groups:
Critical REPLICAT groups:
Autostart on DataGuard role transition to PRIMARY: no
Autostart JAgent: no
Configured to run on Nodes: db193 db195
ORACLE_HOME location is: /u01/app/19.3.0/grid
File System resources needed: ora.data.oggsou.acfs
VIP name: xag.gg_1-vip.vip

如果有监管的进程未启动时会显示:

xag.gg_1-vip.vip
1 ONLINE ONLINE db195 STABLE
xag.gg_1.goldengate
1 ONLINE INTERMEDIATE db195 ER(s) not running :
EXTJY1,STABLE
--------------------------------------------------------------------------------

OGG的mgr进程可以配置自动启动其他进程(AUTOSTART ER *),下面是测试中使用的OGG配置供参考:

GGSCI (db193) 1> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
EXTRACT RUNNING EXTJY1 00:00:02 00:00:00 GGSCI (db193) 2> view param mgr AUTORESTART ER *, RETRIES 5, WAITMINUTES 1, RESETMINUTES 60
AUTOSTART ER *
PORT 7809 GGSCI (db193) 3> view param extjy1 EXTRACT extjy1
USERID ggs_admin@prod, PASSWORD ggs_admin
TRANLOGOPTIONS DBLOGREADER
EXTTRAIL ./dirdat/sa
TABLE JY.T_SECOND_P;

最终本环境经测试可以实现各种场景切换:人工relocate切换、crs集群故障自动切换、主机直接重启自动切换等。

笔者感觉使用XAG在RAC环境上配置OGG还是非常不错的,是非常值得推广使用的,大家如果感兴趣可以实际测试感受一下。

使用XAG配置GoldenGate在RAC集群环境中的高可用的更多相关文章

  1. Oracle rac集群环境中的特殊问题

    备注:本文摘抄于张晓明<大话Oracle RAC:集群 高可用性 备份与恢复> 因为集群环境需要多个计算机协同工作,要达到理想状态,必须要考虑在集群环境下面临的新挑战. 1.并发控制 在集 ...

  2. Cluster基础(四):创建RHCS集群环境、创建高可用Apache服务

    一.创建RHCS集群环境 目标: 准备四台KVM虚拟机,其三台作为集群节点,一台安装luci并配置iSCSI存储服务,实现如下功能: 使用RHCS创建一个名为tarena的集群 集群中所有节点均需要挂 ...

  3. Oracle RAC 集群环境下日志文件结构

    Oracle RAC 集群环境下日志文件结构 在Oracle RAC环境中,对集群中的日志的定期检查是必不可少的.通过查看集群日志,可以早期定位集群环境中出现的问题,以便将问题消灭在萌芽状态.简单介绍 ...

  4. dubbo配置负载均衡、集群环境

    再用dubbo作为项目架构的时候,给consumer消费者用nginx提供了负载均衡策略和集群的实现, 但是想了下,consumer再多,但是提供者还是一个,最后还不都是落到了这一个provider上 ...

  5. 深入探讨在集群环境中使用 EhCache 缓存系统

    EhCache 缓存系统简介 EhCache 是一个纯 Java 的进程内缓存框架,具有快速.精干等特点,是 Hibernate 中默认的 CacheProvider. 下图是 EhCache 在应用 ...

  6. 在集群环境中使用 EhCache 缓存系统|RMI 集群模式

    RMI 是 Java 的一种远程方法调用技术,是一种点对点的基于 Java 对象的通讯方式.EhCache 从 1.2 版本开始就支持 RMI 方式的缓存集群.在集群环境中 EhCache 所有缓存对 ...

  7. (转)深入探讨在集群环境中使用 EhCache 缓存系统

    简介: EhCache 是一个纯 Java 的进程内缓存框架,具有快速.精干等特点,是 Hibernate 中默认的 CacheProvider.本文充分的介绍了 EhCache 缓存系统对集群环境的 ...

  8. 在 WebSphere Application Server V7 集群环境中管理 HTTP session[阅读]

    http://www.ibm.com/developerworks/cn/websphere/library/techarticles/1012_dingsj_wascluster/1012_ding ...

  9. Apache shiro集群实现 (六)分布式集群系统下的高可用session解决方案---Session共享

    Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...

  10. Apache shiro集群实现 (五)分布式集群系统下的高可用session解决方案

    Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...

随机推荐

  1. Ipa Guard使用手册

    ​ 使用手册 开始使用ipa guard 代码混淆界面介绍 文件混淆-界面介绍 安装和登录Ipa Guard 相关教程 下载安装Ipa Guard ipaguard注册和登录 下载安装Ipa Guar ...

  2. C#读取FX5U线圈(modbusTCP)

    第一步:导入所需的类库 第二步:包含命名空间 第三步:实例化modbus类 ModbusTcpNet busTcpClient = null; busTcpClient = new ModbusTcp ...

  3. DOCKER本地仓库

    概述 随着docker的应用越来越多,安装部署越来越方便,批量自动化的镜像生成和发布都需要docker仓库的本地化应用. 试用了docker的本地仓库功能,简单易上手,记录下来以备后用. 环境 cen ...

  4. Power Designer建模之餐饮在线点评系统——概念数据模型

    企业信息管理 局部概念模型 企业 餐饮企业 食材提供商 食材 特色菜 团购活动 优惠券 促销活动 会员团购订单 优惠券下载和浏览记录表 会员信息管理 局部概念模型 会员 会员扩展信息 会员积分记录 餐 ...

  5. Spring——静态/动态代理模式

    代理模式 代理模式: 静态代理 动态代理 学习aop之前,要先了解代理模式 静态代理 抽象角色:一般使用接口或者抽象类来实现 真实角色:被代理的角色 代理角色:代理真实角色:代理真实角色后,一般会做一 ...

  6. [转帖]jmeter之使用csv文件传递参数-05篇

    csv文件格式,第一列为手机号,第二列为密码 1.右键添加一个配置元件---csv数据文件设置 2.设置csv数据提取路径 3.引用数据 4.设置线程循环运行两次,然后发送请求 看到结果就执行了两次, ...

  7. [转帖]Jmeter学习笔记(十七)——jmeter目录结构

      原文链接:http://www.cnblogs.com/zichuan/p/6938772.html 一.bin目录examples:  目录中有CSV样例 jmeter.bat  windows ...

  8. [转帖]kafka漏洞升级记录,基于SASL JAAS 配置和 SASL 协议,涉及版本3.4以下

    攻击者可以使用基于 SASL JAAS 配置和 SASL 协议的任意 Kafka 客户端,在对 Kafka Connect worker 创建或修改连接器时,通过构造特殊的配置,进行 JNDI 注入. ...

  9. Mysql8.0.32 union all创建视图无法使用中文模糊查询的坑

    Mysql8.0.32 union all创建视图无法使用中文模糊查询的坑 摘要 本周研发同事反馈现场有一个问题. 客户使用mysql的数据库(Windows平台) 然后在多表union all 创建 ...

  10. [转帖]VMware Converter (P2V迁移)问题汇总

    https://www.dinghui.org/vmware-converter-p2v.html VMware vCenter Converter Standalone,是一种用于将虚拟机和物理机转 ...