Install Oracle GoldenGate 12c for PostgresSQL 12.2 in AWS EC2 RHEL 8

In this post I will install GoldenGate 12c for PostgreSQL 12.2 in AWS EC2 in Red Hat Linux 8.

I going to install Oracle GoldenGate 12c with the below specifications:

  • Operating System: Red Hat Enterprise Linux release 8.0 (Ootpa)
  • Database: Postgress 12.2
  • GoldenGate version: 12.2.0.2.2
  • GoldeGate installer: 122022_ggs_Linux_x64_PostgreSQL_64bit.zip

1. Create the GoldenGate Home directory and setup the environment variable ($GGH)

[dbadmin@dbserver ~]$ sudo mkdir -p /u02/gg
[sudo] password for dbadmin:

[dbadmin@dbserver ~]$ sudo chown -R dbadmin:dbadmin /u02 

[dbadmin@dbserver ~]$ cd
[dbadmin@dbserver ~]$ echo export GGH=/u02/gg >> gg_profile

[dbadmin@dbserver ~]$ echo export LD_LIBRARY_PATH=/u02/gg/lib >> gg_profile
 
[dbadmin@dbserver ~]$ chmod ug+x gg_profile

2. Download Oracle GoldenGate 10.1.0.0.4 for Oracle (64 bits) 122022_ggs_Linux_x64_PostgreSQL_64bit.zip from Oracle website.

3. Transfer the zip file 122022_ggs_Linux_x64_PostgreSQL_64bit.zip to Oracle GoldenGate Home /u02/gg , I used Filezilla to transfer the zip file from Windows to Linux in AWS EC2.

4. Unzip the zip file 122022_ggs_Linux_x64_PostgreSQL_64bit.zip in the to Oracle GoldenGate Home /u02/gg

[dbadmin@dbserver ~]$ cd /u02/gg

[dbadmin@dbserver gg]$ ls -lrt 122022_ggs_Linux_x64_PostgreSQL_64bit.zip
-rw-rw-r--. 1 dbadmin dbadmin 228321998 Apr 21 16:39 122022_ggs_Linux_x64_PostgreSQL_64bit.zip

[dbadmin@dbserver gg]$ unzip 122022_ggs_Linux_x64_PostgreSQL_64bit.zip
Archive:  122022_ggs_Linux_x64_PostgreSQL_64bit.zip
  inflating: ggs_Linux_x64_PostgreSQL_64bit.tar
  inflating: OGG-12.2.0.2-README.txt
  inflating: OGGCORE_12.2.0.2.2.pdf

[dbadmin@dbserver gg]$ tar -xvf ggs_Linux_x64_PostgreSQL_64bit.tar

5. Install the package libnsl in Red Hat Enterprise Linux release 8.0.

The libnsl.so.1 package is needed for Oracle GoldenGate 12 but by default, libnsl.so.1 is not installed in RHEL 8.0 and without this package, when we try to run ggsci we get the error: “./ggsci: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory”

[dbadmin@dbserver gg]$ su - root
Password:
Last login: Wed Apr 22 04:15:43 UTC 2020 on pts/2

[root@dbserver ~]# yum install libnsl
Last metadata expiration check: 0:42:17 ago on Tue 21 Apr 2020 07:19:29 PM UTC.
Dependencies resolved.
========================================================================================================
 Package                 Arch         Version                  Repository                          Size
========================================================================================================
Installing:
 libnsl                  x86_64       2.28-72.el8_1.1          rhui-rhel-8-baseos-rhui-rpms        94 k
Upgrading:
 glibc-langpack-en       x86_64       2.28-72.el8_1.1          rhui-rhel-8-baseos-rhui-rpms       818 k
 glibc-common            x86_64       2.28-72.el8_1.1          rhui-rhel-8-baseos-rhui-rpms       836 k
 glibc                   x86_64       2.28-72.el8_1.1          rhui-rhel-8-baseos-rhui-rpms       3.7 M

Transaction Summary
========================================================================================================
Install  1 Package
Upgrade  3 Packages

Total download size: 5.4 M
Is this ok [y/N]: y
Downloading Packages:
(1/4): glibc-langpack-en-2.28-72.el8_1.1.x86_64.rpm                     6.5 MB/s | 818 kB     00:00
(2/4): libnsl-2.28-72.el8_1.1.x86_64.rpm                                752 kB/s |  94 kB     00:00
(3/4): glibc-common-2.28-72.el8_1.1.x86_64.rpm                          5.7 MB/s | 836 kB     00:00
(4/4): glibc-2.28-72.el8_1.1.x86_64.rpm                                  21 MB/s | 3.7 MB     00:00
--------------------------------------------------------------------------------------------------------
Total                                                                   4.1 MB/s | 5.4 MB     00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                1/1
  Upgrading        : glibc-common-2.28-72.el8_1.1.x86_64                                            1/7
  Running scriptlet: glibc-2.28-72.el8_1.1.x86_64                                                   2/7
  Upgrading        : glibc-2.28-72.el8_1.1.x86_64                                                   2/7
  Running scriptlet: glibc-2.28-72.el8_1.1.x86_64                                                   2/7
  Upgrading        : glibc-langpack-en-2.28-72.el8_1.1.x86_64                                       3/7
  Installing       : libnsl-2.28-72.el8_1.1.x86_64                                                  4/7
  Cleanup          : glibc-2.28-42.el8_0.1.x86_64                                                   5/7
  Cleanup          : glibc-langpack-en-2.28-42.el8_0.1.x86_64                                       6/7
  Cleanup          : glibc-common-2.28-42.el8_0.1.x86_64                                            7/7
  Running scriptlet: glibc-common-2.28-42.el8_0.1.x86_64                                            7/7
  Running scriptlet: glibc-common-2.28-72.el8_1.1.x86_64                                            7/7
  Verifying        : libnsl-2.28-72.el8_1.1.x86_64                                                  1/7
  Verifying        : glibc-langpack-en-2.28-72.el8_1.1.x86_64                                       2/7
  Verifying        : glibc-langpack-en-2.28-42.el8_0.1.x86_64                                       3/7
  Verifying        : glibc-common-2.28-72.el8_1.1.x86_64                                            4/7
  Verifying        : glibc-common-2.28-42.el8_0.1.x86_64                                            5/7
  Verifying        : glibc-2.28-72.el8_1.1.x86_64                                                   6/7
  Verifying        : glibc-2.28-42.el8_0.1.x86_64                                                   7/7

Upgraded:
  glibc-langpack-en-2.28-72.el8_1.1.x86_64              glibc-common-2.28-72.el8_1.1.x86_64
  glibc-2.28-72.el8_1.1.x86_64

Installed:
  libnsl-2.28-72.el8_1.1.x86_64

Complete!

[root@dbserver ~]# exit
logout

6. Run GoldenGate Software Command Interface to validate is running correctly

[dbadmin@dbserver ~]$ . /home/dbadmin/gg_profile
[dbadmin@dbserver ~]$ cd $GGH
[dbadmin@dbserver gg]$ ./ggsci

Oracle GoldenGate Command Interpreter
Version 12.2.0.2.2 OGGCORE_12.2.0.2.0_PLATFORMS_170630.0419
Linux, x64, 64bit (optimized), PostgreSQL on Jun 30 2017 06:27:44
Operating system character set identified as UTF-8.

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

GGSCI (dbserver.cba.com) 1>

7. Create subdirectories of GoldenGate

GGSCI (dbserver.cba.com) 1> create subdirs

Creating subdirectories under current directory /u02/gg

Parameter files                /u02/gg/dirprm: created
Report files                   /u02/gg/dirrpt: created
Checkpoint files               /u02/gg/dirchk: created
Process status files           /u02/gg/dirpcs: created
SQL script files               /u02/gg/dirsql: created
Database definitions files     /u02/gg/dirdef: created
Extract data files             /u02/gg/dirdat: created
Temporary files                /u02/gg/dirtmp: created
Credential store files         /u02/gg/dircrd: created
Masterkey wallet files         /u02/gg/dirwlt: created
Dump files                     /u02/gg/dirdmp: created