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
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:
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.