Infrastructure at your Service

Nicolas Penot

GoldenGate installation in a Grid infrastructure12cR2

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/
cd fbo_ggs_Linux_x64_shiphome/Disk1

[[email protected] Disk1]$ ./runInstaller -silent -nowait -showProgress \
INVENTORY_LOCATION=/u01/app/oraInventory \

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
[[email protected] xag]$ cd xag

[[email protected] xag]$ export XAG_HOME=/u01/app/xag

[[email protected] xag]$ ./ --install --directory $XAG_HOME --all_nodes
Installing Oracle Grid Infrastructure Agents on: rac001
Installing Oracle Grid Infrastructure Agents on: rac002

[[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 OGGCORE_12.
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.


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


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 --network 1 --user oracle --filesystems ora.dgfra.acfsgg.acfs
Calling POSIX::isdigit() is deprecated at /u01/app/xag/ 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
      1        ONLINE  ONLINE       rac001                   STABLE
      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.


  • Gyanendra says:

    Hi Nicolas,

    Can I install the OGG software on a ext4 mount point and make it shared among both the nodes of the RAC or it’s mandatory to have ACFS or DBFS or NFS mount point?


    • Nicolas Penot says:

      Hi Gyanendra,

      Thanks for your question. I you want a mount point shared on more than one node, you’ll need a cluster file system. A cluster file system will manage concurrency the same data file is being written by two nodes at the same time. Without cluster file system, there is a great risk that you end up with corrupted data files. So for the Trail files it’s not good and for the Golden gate installation file it would probably works. If using ext4 is a must have for you, in that case, I’ll create a resource within the cluster with a dependency to the Golden gate resource. Then the ext4 FS would be mounted only on one node at a time and will be mounted where the Golden gate processes run.

      I hope this helps,


  • Ming says:

    Hi Nicolas,

    We find if all RAC nodes reboot at the same time, OGG cannot start automatically even CRS started


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Nicolas Penot
Nicolas Penot