This post is a demonstration on how to deploy a fully supported Oracle GoldenGate as cluster resources.
We are going to use the Oracle Grid Infrastructure Agents, called XAG to integrate the GoldenGate instance within our cluster as a cluster managed resource. This tool is provided by Oracle in the binaries with the release 12c and later but it is recommended to download and use the last version out of the box (available here).
This XAG provide an interface “agctl” which enable us to interact with GoldenGate resources the same way as “srvctl” does for Oracle database resources within the Oracle cluster. This tool support various product that can be integrated to the Oracle cluster like Tomcat, MySQL and so on.
Here what’s can be done with XAG:
[[email protected] ~]$ agctl Manages Apache Tomcat, Apache Webserver, Goldengate, JDE Enterprise Server, MySQL Server, Peoplesoft App Server, Peoplesoft Batch Server, Peoplesoft PIA Server, Siebel Gateway, Siebel Server, WebLogic Administration Server as Oracle Clusterware Resources Usage: agctl <verb> <object> [<options>] verbs: add|check|config|disable|enable|modify|query|relocate|remove|start|status|stop objects: apache_tomcat|apache_webserver|goldengate|jde_enterprise_server|mysql_server|peoplesoft_app_server|peoplesoft_batch_server|peoplesoft_pia_server|siebel_gateway|siebel_server|weblogic_admin_server For detailed help on each verb and object and its options use: agctl <verb> --help or agctl <verb> <object> --help
We are going to deploy that GoldenGate HA configuration on top of our existing 12.2 Grid Infrastructure. I choose for that demo to deploy the whole GoldenGate instance and its binaries to a dedicated mount point using ACFS to be sure my GoldenGate resources will have access to their data regardless of the node where the GoldenGate instance will be running. Could also be a DBFS or NFS.
Step 1 – Create an ACFS mount point called /acfsgg
[[email protected] Disk1]$ /u01/app/12.2.0/grid/bin/asmcmd volcreate -G DGFRA -s 4G --width 1M --column 8 ACFSGG [[email protected] ~]# /sbin/mkfs -t acfs /dev/asm/acfsgg-215 [[email protected] ~]# /u01/app/12.2.0/grid/bin/srvctl add filesystem -d /dev/asm/acfsgg-215 -m /acfsgg -u oracle -fstype ACFS -autostart ALWAYS [[email protected] ~]# /u01/app/12.2.0/grid/bin/srvctl start filesystem -d /dev/asm/acfsgg-215 [[email protected] ~]# chown oracle:oinstall /acfsgg [[email protected] ~]# chmod 775 /acfsgg [[email protected] ~]$ ./execall "df -hT /acfsgg" rac001: Filesystem Type Size Used Avail Use% Mounted on rac001: /dev/asm/acfsgg-215 acfs 4.0G 85M 4.0G 3% /acfsgg rac002: Filesystem Type Size Used Avail Use% Mounted on rac002: /dev/asm/acfsgg-215 acfs 4.0G 85M 4.0G 3% /acfsgg
Step 2 – install GoldenGate binaries in /acfsgg
cd /u01/install/ unzip 122022_fbo_ggs_Linux_x64_shiphome.zip cd fbo_ggs_Linux_x64_shiphome/Disk1 [[email protected] Disk1]$ ./runInstaller -silent -nowait -showProgress \ INSTALL_OPTION=ORA12c \ SOFTWARE_LOCATION=/acfsgg \ START_MANAGER=false \ MANAGER_PORT= \ DATABASE_LOCATION= \ INVENTORY_LOCATION=/u01/app/oraInventory \ UNIX_GROUP_NAME=oinstall [...] Finish Setup successful. The installation of Oracle GoldenGate Core was successful. Please check '/u01/app/oraInventory/logs/silentInstall2018-01-04_06-37-02AM.log' for more details. Successfully Setup Software.
Step 3 – install the last version of XAG (recommended by Oracle) in all nodes
# creation of the XAG home on all nodes as root [[email protected] ~]# mkdir /u01/app/xag [[email protected] ~]# chown oracle. /u01/app/xag # back as oracle [[email protected] ~]$ cd /u01/install/ [[email protected] install]$ unzip xagpack.zip [[email protected] xag]$ cd xag [[email protected] xag]$ export XAG_HOME=/u01/app/xag [[email protected] xag]$ ./xagsetup.sh --install --directory $XAG_HOME --all_nodes Installing Oracle Grid Infrastructure Agents on: rac001 Installing Oracle Grid Infrastructure Agents on: rac002 Done. [[email protected] xag]$ /u01/app/12.2.0/grid/bin/agctl query releaseversion The Oracle Grid Infrastructure Agents release version is 7.1.0 [[email protected] xag]$ $XAG_HOME/bin/agctl query releaseversion The Oracle Grid Infrastructure Agents release version is 8.1.0
Step 4 – configure GoldenGate instance and the manager
[[email protected] acfsgg]$ export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1 [[email protected] acfsgg]$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib [[email protected] acfsgg]$ ./ggsci Oracle GoldenGate Command Interpreter for Oracle Version 18.104.22.168.2 OGGCORE_22.214.171.124.0_PLATFORMS_170630.0419_FBO Linux, x64, 64bit (optimized), Oracle 12c on Jun 30 2017 16:12:28 Operating system character set identified as UTF-8. Copyright (C) 1995, 2017, Oracle and/or its affiliates. All rights reserved. GGSCI (rac001) 1> CREATE SUBDIRS Creating subdirectories under current directory /acfsgg Parameter files /acfsgg/dirprm: created Report files /acfsgg/dirrpt: created Checkpoint files /acfsgg/dirchk: created Process status files /acfsgg/dirpcs: created SQL script files /acfsgg/dirsql: created Database definitions files /acfsgg/dirdef: created Extract data files /acfsgg/dirdat: created Temporary files /acfsgg/dirtmp: created Credential store files /acfsgg/dircrd: created Masterkey wallet files /acfsgg/dirwlt: created Dump files /acfsgg/dirdmp: created GGSCI (rac001) 2> edit params mgr PORT 7809 AUTORESTART ER *, RETRIES 3, WAITMINUTES 3, RESETMINUTES 10 AUTOSTART ER * PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS LAGCRITICALMINUTES 5 LAGREPORTMINUTES 60 LAGINFOMINUTES 0
Step 5 – Add the GoldenGate resource to the cluster
[[email protected] ~]# export XAG_HOME=/u01/app/xag [[email protected] ~]# $XAG_HOME/bin/agctl add goldengate GGAPP01 --gg_home /acfsgg --instance_type source --oracle_home /u01/app/oracle/product/12.2.0/dbhome_1 --ip 192.168.179.15 --network 1 --user oracle --filesystems ora.dgfra.acfsgg.acfs Calling POSIX::isdigit() is deprecated at /u01/app/xag/agcommon.pm line 809. ## all parameters in above command are required except the FS specification [[email protected] ~]$ $XAG_HOME/bin/agctl start goldengate GGAPP01 [[email protected] ~]$ $XAG_HOME/bin/agctl status goldengate GGAPP01 Goldengate instance 'GGAPP01' is running on rac001 [[email protected] ~]$ /u01/app/12.2.0/grid/bin/crsctl stat res -t [...] Cluster Resources -------------------------------------------------------------------------------- [...] xag.GGAPP01-vip.vip 1 ONLINE ONLINE rac001 STABLE xag.GGAPP01.goldengate 1 ONLINE ONLINE rac001 STABLE --------------------------------------------------------------------------------
At this stage we have an operational GoldenGate fully managed by the cluster and ready to be configured for replication.
In case of failure of the node running the Manager, the cluster will restart the Manger process on first remaining available node. As soon as the Manager start, it will automatically restart all Extract and Replicate processes as we instruct it in the Manager configuration file (parameter AUTOSTART). The restarting of Extraction and Replication processes will be also done by the Manager and not by the cluster (so far with this release).
We can add Extract and Replicate processes as cluster resources but in this case it will only be monitored by the cluster and the cluster will update their states with ONLINE, OFFLINE, INTERMEDIATE or UNKNOWN depending the scenario.
I hope it may help and please do not hesitate to contact us if you have any questions or require further information.