OGG 配合GI XAG高可用

发布时间 2023-09-20 10:46:27作者: 蚌壳里夜有多长

背景:目前现场环境ogg处在单节点状态,不能保证业务不间断,之前考虑过rsync同步方案,但是这个方案对于一些数据有重复数据风险,所以考虑用GI XAG方案

1.前期准备

RAC环境
DB:11.2.0.4
GI:19.18.0
OS:CentOS Linux release 7.9.2009

OGG版本
19.1.0.0.4
XAG软件
Patch 31215432: XAG 10.2 BUG FIX MLR

1).安装grid软件,并应用了19.18的RU补丁(此处省略)

因为要使用ACFS相关功能,这边需要在安装完成grid软件之后对ACFS进行安装

grid@cn1-test-dba-test001:/data/software$ crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       cn1-test-dba-test001     STABLE
ora.OGG.EXTRACT.advm
               ONLINE  ONLINE       cn1-test-dba-test001     STABLE
ora.OGG.REPLICAT.advm
               ONLINE  ONLINE       cn1-test-dba-test001     STABLE
ora.OGG.SOFT.advm
               ONLINE  ONLINE       cn1-test-dba-test001     STABLE
ora.chad
               ONLINE  ONLINE       cn1-test-dba-test001     STABLE
ora.net1.network
               ONLINE  ONLINE       cn1-test-dba-test001     STABLE
ora.ogg.soft.acfs
               ONLINE  ONLINE       cn1-test-dba-test001     mounted on /home/db/
                                                             grid/base/ogg19,STAB
                                                             LE
ora.ons

安装完成之后这个效果

2.安装ACFS文件系统

进入目录
root@cn1-test-dba-test001:/home/db/grid/product/19.3.0/bin$ cd $ORACLE_HOME/bin
安装acfs
./acfsroot install
正常我运行这一步会报错说不支持redhat-7.9.。。
由于acfs不支持centos系统导致的
[root@rac01 lib]# vi osds_acfslib.pm

  # Testing for "oraclelinux_release", etc prevents us from dropping
  # into the code below from other RH based distros like CentOS, for example.
  if ((defined($release)) &&                     # Redhat or OEL if defined
      (($release =~ /^redhat-release/) ||        # straight RH
       ($release =~ /^enterprise-release/) ||    # Oracle Enterprise Linux
        ($release =~ /^centos-release/) ||        # CentOS hack 
       ($release =~ /^oraclelinux-release/)))    # Oracle Linux


两个节点都需要操作
之后在进行安装
./acfsroot install
如果还是不行参考这个https://blog.csdn.net/m0_38048955/article/details/115321462

3.创建ACFS文件系统

su - grid
asmca
具体步骤见下

1.先创建磁盘组OGG

 

2.创建volume

3.创建ACFS并mount

创建之后会报错不能挂载必须手动挂载

/sbin/mount.acfs -o all

3.安装OGG软件到acfs目录

unzip V983658-01.zip

grid@cn1-test-dba-test001:/data/software/fbo_ggs_Linux_x64_shiphome/Disk1$ ./runInstaller

4.安装XAG软件

解压XAG介质,创建XAG目录,安装XAG软件

unzip p31215432_190000_Generic.zip
创建XAG安装目录
mkdir -p /home/db/grid/base/xag
进入解压目录
cd xag
./xagsetup.sh --install --directory /home/db/grid/base/xag --all_nodes

配置环境变量
export XAG_HOME=/home/db/grid/base/xag

5.创建VIP方便切换

$GRID_HOME/bin/crsctl stat res -p |grep -ie .network -ie subnet |grep -ie name -ie subnet
[root@db193 media]# $ORACLE_HOME/bin/appvipcfg create -network=1 -ip=10.12.7.210 -vipname=xag.gg_1-vip.vip -user=grid
将vip资源授权给GRID用户
[root@db193 media]#$ORACLE_HOME/bin/crsctl setperm resource xag.gg_1-vip.vip -u user:grid:r-x
启动VIP资源:
[grid@db193 ~]$ $ORACLE_HOME/bin/crsctl start resource xag.gg_1-vip.vip
检查VIP资源状态:
[grid@db193 ~]$ $ORACLE_HOME/bin/crsctl status resource xag.gg_1-vip.vip

6.添加OGG实例到crs中

$XAG_HOME/bin/agctl add goldengate gg_1 --gg_home /home/db/grid/base/ogg19 --instance_type source --nodes cn1-test-dba-test001,cn1-test-dba-test002 --vip_name xag.gg_1-vip.vip --filesystems ora.ogg.soft.acfs --oracle_home /home/db/grid/base/ogglib

注意因为我们要抽取的数据库oracle11g不在本地所以要把oracle11g的lib库拷贝到

/home/db/grid/base/ogglib中
启动gg_1实例
$XAG_HOME/bin/agctl start goldengate gg_1
高可用搭建完成