As more and more customers ask for expertise in Oracle GoldenGate this blog post is the first in a series and outlines how to install Oracle GoldenGate 12c and how to patch it to the latest release on Oracle Linux 7.1 x64.

The installation sources (as always) can be downloaded from otn.oracle.com. For the latest patchset you’ll need access to mos. At the time of writing the latest patchset is 12.1.2.1.9 and can be downloaded from here: Oracle GoldenGate 12.1.2.1.9 Patch Set Availability (Doc ID 2044959.1).

Given that the sources are available on the server the installation is straight forward (as the user which shall own the installation).

$ unzip 121210_fbo_ggs_Linux_x64_shiphome.zip
$ cd fbo_ggs_Linux_x64_shiphome/Disk1
$ ./runInstaller

Selection_001Selection_002Selection_003Selection_004Selection_005

Quite easy. For those who want to go without the graphical mode:

$ unzip 121210_fbo_ggs_Linux_x64_shiphome.zip
$ cd fbo_ggs_Linux_x64_shiphome/Disk1
$ ./runInstaller -silent INSTALL_OPTION=ORA12c \
                       SOFTWARE_LOCATION=/u01/app/oracle/product/12.1.0/gg_12121 \
                       START_MANAGER=true \
                       MANAGER_PORT=7809 \
                       DATABASE_LOCATION=/u01/app/oracle/product/12.1.0/db_2_0 \
                       INVENTORY_LOCATION=/u01/app/oraInventory \
                       UNIX_GROUP_NAME=oinstall

Quite easy as well.

Note that you’ll need an Oracle 11g or 12c database home already installed on the server where GoldenGate shall be installed to start the Manager by default and to have a working installation. Otherwise you will get into this situation:
Selection_006

You still will be able to install GoldenGate without an Oracle database home but it will not work afterwards:

[oracle@oel7 oggcore_1]$ ./ggsci 
./ggsci: error while loading shared libraries: libnnz12.so: cannot open shared object file: No such file or directory

The reason for this is that some libraries are missing:

[oracle@oel7 oggcore_1]$ ldd ggsci
	linux-vdso.so.1 =>  (0x00007fff3bf1d000)
	librt.so.1 => /lib64/librt.so.1 (0x00007f9f7cb48000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f9f7c943000)
	libgglog.so => /u01/app/oracle/product/12.1.2/oggcore_1/./libgglog.so (0x00007f9f7c57b000)
	libggrepo.so => /u01/app/oracle/product/12.1.2/oggcore_1/./libggrepo.so (0x00007f9f7c30f000)
	libdb-5.2.so => /u01/app/oracle/product/12.1.2/oggcore_1/./libdb-5.2.so (0x00007f9f7c073000)
	libggperf.so => /u01/app/oracle/product/12.1.2/oggcore_1/./libggperf.so (0x00007f9f7be45000)
	libicui18n.so.48 => /u01/app/oracle/product/12.1.2/oggcore_1/./libicui18n.so.48 (0x00007f9f7bb37000)
	libicuuc.so.48 => /u01/app/oracle/product/12.1.2/oggcore_1/./libicuuc.so.48 (0x00007f9f7b8b8000)
	libicudata.so.48 => /u01/app/oracle/product/12.1.2/oggcore_1/./libicudata.so.48 (0x00007f9f7a1f3000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f9f79fd7000)
	libxerces-c.so.28 => /u01/app/oracle/product/12.1.2/oggcore_1/./libxerces-c.so.28 (0x00007f9f79abf000)
	libantlr3c.so => /u01/app/oracle/product/12.1.2/oggcore_1/./libantlr3c.so (0x00007f9f799a9000)
	libnnz12.so => not found
	libclntsh.so.12.1 => not found
	libons.so => not found
	libclntshcore.so.12.1 => not found
	libggnnzitp.so => /u01/app/oracle/product/12.1.2/oggcore_1/./libggnnzitp.so (0x00007f9f78ec7000)
	libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f9f78bc0000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f9f788be000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f9f786a7000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f9f782e8000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f9f7cd5a000)

These missing libraries are provided by the database home:

find /u01/app/oracle/product/12.1.0/db_2_0/ | grep -E "libnnz12.so|libclntsh.so.12.1|libons.so|libclntshcore.so.12.1"
/u01/app/oracle/product/12.1.0/db_2_0/inventory/Scripts/ext/lib/libnnz12.so
/u01/app/oracle/product/12.1.0/db_2_0/inventory/Scripts/ext/lib/libclntshcore.so.12.1
/u01/app/oracle/product/12.1.0/db_2_0/inventory/Scripts/ext/lib/libclntsh.so.12.1
/u01/app/oracle/product/12.1.0/db_2_0/inventory/backup/2015-08-28_04-07-07PM/Scripts/ext/lib/libnnz12.so
/u01/app/oracle/product/12.1.0/db_2_0/inventory/backup/2015-08-28_04-07-07PM/Scripts/ext/lib/libclntshcore.so.12.1
/u01/app/oracle/product/12.1.0/db_2_0/inventory/backup/2015-08-28_04-07-07PM/Scripts/ext/lib/libclntsh.so.12.1
/u01/app/oracle/product/12.1.0/db_2_0/lib/libons.so
/u01/app/oracle/product/12.1.0/db_2_0/lib/libnnz12.so
/u01/app/oracle/product/12.1.0/db_2_0/lib/libclntshcore.so.12.1
/u01/app/oracle/product/12.1.0/db_2_0/lib/libclntsh.so.12.1

So, to avoid troubles make sure that ORACLE_HOME and ORACLE_SID point to an existing database home and Oracle instance before starting the GoldenGate installation

Patching GoldenGate is done by using Opatch so lets update Opatch to the latest release:

$ unzip -d /u01/app/oracle/product/12.1.0/gg_12121/ p6880880_121010_Linux-x86-64.zip
$  /u01/app/oracle/product/12.1.0/gg_12121/OPatch/opatch version
OPatch Version: 12.1.0.1.8

As with the database patches we need to make sure that no processes are running out of the home that will be patched:

$ /u01/app/oracle/product/12.1.0/gg_12121/ggsci 

Oracle GoldenGate Command Interpreter for Oracle
Version 12.1.2.1.9 21381983 OGGCORE_12.1.2.1.0OGGBP_PLATFORMS_150728.2027_FBO
Linux, x64, 64bit (optimized), Oracle 12c on Jul 29 2015 04:52:08
Operating system character set identified as UTF-8.

Copyright (C) 1995, 2015, Oracle and/or its affiliates. All rights reserved.

GGSCI (oelgg2.it.dbi-services.com) 3> stop manager
Manager process is required by other GGS processes.
Are you sure you want to stop it (y/n)?y

Sending STOP request to MANAGER ...
Request processed.
Manager stopped.

Applying the patch should be straight forward, too:

$ unzip p21518833_121219_Linux-x86-64.zip
$ export PATH=/u01/app/oracle/product/12.1.0/gg_12121/OPatch/:$PATH
$ cd 21518833
$ opatch apply -oh /u01/app/oracle/product/12.1.0/gg_12121/

OPatch Version : 12.1.0.1.3
  OUI  Version : 11.2.0.3.0
The OPatch version is not applicable for current OUI version.

Since OUI Version starts with 11.2, Please go to 'My Oracle Support' and get right OPatch 11.2.*.*.* based on patch 6880880, release version 11.2.0.0.0 and appropriate platform.

OPatch failed with error code 19

Uh, surprise. Even if the GoldenGate version is 12.x we need to use the 11.x opatch. Interesting 🙂

$ unzip -d /u01/app/oracle/product/12.1.0/gg_12121/ p6880880_112000_Linux-x86-64.zip
$ /u01/app/oracle/product/12.1.0/gg_12121/OPatch/opatch version
OPatch Version: 11.2.0.3.11

OPatch succeeded.

Lets try again:

$ cd 21518833/
$ export PATH=/u01/app/oracle/product/12.1.0/gg_12121/OPatch/:$PATH
$ cd 21518833
$ opatch apply -oh /u01/app/oracle/product/12.1.0/gg_12121/
Oracle Interim Patch Installer version 11.2.0.3.11
Copyright (c) 2015, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/12.1.0/gg_12121
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/12.1.0/gg_12121/oraInst.loc
OPatch version    : 11.2.0.3.11
OUI version       : 11.2.0.3.0
Log file location : /u01/app/oracle/product/12.1.0/gg_12121/cfgtoollogs/opatch/21518833_Aug_31_2015_07_32_34/apply2015-08-31_07-32-34AM_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   21518833  

Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.
Provide your email address to be informed of security issues, install and
initiate Oracle Configuration Manager. Easier for you if you use your My
Oracle Support Email address/User Name.
Visit http://www.oracle.com/support/policies.html for details.
Email address/User Name: 

You have not provided an email address for notification of security issues.
Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]:  y



Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u01/app/oracle/product/12.1.0/gg_12121')


Is the local system ready for patching? [y|n]
y
User Responded with: Y
Backing up files...
Applying interim patch '21518833' to OH '/u01/app/oracle/product/12.1.0/gg_12121'

Patching component oracle.oggcore.ora12c, 12.1.2.1.0...

Verifying the update...
Patch 21518833 successfully applied.
Log file location: /u01/app/oracle/product/12.1.0/gg_12121/cfgtoollogs/opatch/21518833_Aug_31_2015_07_32_34/apply2015-08-31_07-32-34AM_1.log

OPatch succeeded.

Looks much better:

$ export ORACLE_HOME=/u01/app/oracle/product/12.1.0/gg_12121
$ /u01/app/oracle/product/12.1.0/gg_12121/OPatch/opatch lsinv

Oracle Interim Patch Installer version 11.2.0.3.11
Copyright (c) 2015, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/12.1.0/gg_12121
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/12.1.0/gg_12121/oraInst.loc
OPatch version    : 11.2.0.3.11
OUI version       : 11.2.0.3.0
Log file location : /u01/app/oracle/product/12.1.0/gg_12121/cfgtoollogs/opatch/opatch2015-08-31_07-39-07AM_1.log

Lsinventory Output file location : /u01/app/oracle/product/12.1.0/gg_12121/cfgtoollogs/opatch/lsinv/lsinventory2015-08-31_07-39-07AM.txt

--------------------------------------------------------------------------------
Local Machine Information::
Hostname: oelgg2
ARU platform id: 226
ARU platform description:: Linux x86-64

Installed Top-level Products (1): 

Oracle GoldenGate Core                                               12.1.2.1.0
There are 1 products installed in this Oracle Home.


Interim patches (1) :

Patch  21518833     : applied on Mon Aug 31 07:32:58 CEST 2015
Unique Patch ID:  19286493
   Created on 30 Jul 2015, 13:43:08 hrs PST8PDT
   Bugs fixed:
     19241234, 20660883, 21473564, 21180187, 20898978, 19132627, 20643144
     18875912, 20543714, 21079205, 20367405, 20803745, 20657667, 19889991
     20659379, 20045536, 19987316, 20554464, 19142865, 19681198, 19813884
     20347665, 20148126, 20917331, 19048634, 21182116, 19346082, 19920244
     19798268, 19602692, 19535319, 19441114, 21110369, 19374174, 20664851
     21045025, 20681946, 19903590, 19724915, 21165823, 19327073, 20531064
     21226965, 19818362, 20021370, 20724906, 21124385, 21328574, 19264441
     18996447, 21090428, 19414121, 19545128, 21121987, 20648352, 19721652
     20853556, 21103736, 17866697, 20778054, 20853777, 19244349, 20782113
     20092876, 20343181, 20532340, 20951173, 20660006, 19067094, 20577891
     19560158, 18958026, 17423191, 19624524, 20641896, 19516537, 20563015
     20078949, 21026962, 19681035, 20213167, 19782389, 20679687, 19781984
     19594967, 20989581



--------------------------------------------------------------------------------

What, from my point of view, is missing in the above output is the exact version, e.g. 12.1.2.1.9, as it is with database or grid infrastructure homes.

Anyway, we can restart the manager and are on the latest release now (and ggsci prints the latest version ):

$ $ORACLE_HOME/ggsci 

Oracle GoldenGate Command Interpreter for Oracle
Version 12.1.2.1.9 21381983 OGGCORE_12.1.2.1.0OGGBP_PLATFORMS_150728.2027_FBO
Linux, x64, 64bit (optimized), Oracle 12c on Jul 29 2015 04:52:08
Operating system character set identified as UTF-8.

Copyright (C) 1995, 2015, Oracle and/or its affiliates. All rights reserved.



GGSCI (oelgg2.it.dbi-services.com) 1> start manager
Manager started.

GGSCI (oelgg2.it.dbi-services.com) 2> status manager

Manager is running (IP port oelgg2.it.dbi-services.com.7809, Process ID 3879).

The next post will take a look at how to setup the first replication between two Oracle 12.1.0.2 databases using GoldenGate.

PS: There seems to be the possibility to install GoldenGate using the Oracle full client instead of the Oracle database but I did not test it.