3장. Oracle GoldenGate 설치 및 구성 (Oracle 19c –> MySQL 8.0)

안녕하세요.

‘수상한 김토끼’ 입니다.

이 포스팅은 Oracle Database 19c에 OGG(소스)를 설치하고 MySQL 8.0을 타겟으로 복제를 설정하는 과정을 정리 한 내용입니다.


설치과정은 크게 동기화를 수행할 DB생성과 OGG를 설치하고 구성하는 2개의 과정으로 진행됩니다.

우선 Oracle Database 19c에 OGG(소스)를 설정하는 과정은 2장. Oracle GoldenGate 연동설정 (Oracle 19c)(https://with-kami.duckdns.org/oracle-database/ogg/173)과 동일하게 진행 해 주신 후 본 포스팅에서 진행하는 MySQL관련 OGG 타겟 설정 부분을 진행 해 주시면 됩니다.

소스 DB는 준비가 되었으니 MySQL 8.0 버전 설치를 진행해 줍니다.

MySQL repository(https://dev.mysql.com/downloads/repo/yum/)에 가서 설치 가능한 버전을 확인 후 repository 등록을 진행 합니다.

저는 Oracle Linux 8 버전에 설치를 진행 중이므로 ‘mysql84-community-release-el8-1.noarch.rpm’를 사용하도록 하겠습니다.

다음 명령으로 repository를 등록 해 줍니다.

yum install https://dev.mysql.com/get/mysql84-community-release-el8-1.noarch.rpm
[root@ogg-mysql-2 ~]# yum install https://dev.mysql.com/get/mysql84-community-release-el8-1.noarch.rpm
Last metadata expiration check: 0:42:09 ago on Thu 18 Jul 2024 03:06:39 AM GMT.
mysql84-community-release-el8-1.noarch.rpm                                                                                                    25 kB/s |  15 kB     00:00
Dependencies resolved.
=============================================================================================================================================================================
 Package                                               Architecture                       Version                             Repository                                Size
=============================================================================================================================================================================
Installing:
 mysql84-community-release                             noarch                             el8-1                               @commandline                              15 k

Transaction Summary
=============================================================================================================================================================================
Install  1 Package

Total size: 15 k
Installed size: 17 k
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                     1/1
  Installing       : mysql84-community-release-el8-1.noarch                                                                                                              1/1
  Running scriptlet: mysql84-community-release-el8-1.noarch                                                                                                              1/1
   Warning: native mysql package from platform vendor seems to be enabled.
    Please consider to disable this before installing packages from repo.mysql.com.
    Run: yum module -y disable mysql

  Verifying        : mysql84-community-release-el8-1.noarch                                                                                                              1/1

Installed:
  mysql84-community-release-el8-1.noarch

Complete!
[root@ogg-mysql-2 ~]#

MySQL repository를 등록했으니 MySQL설치를 진행합니다.

yum install mysql-server
[root@ogg-mysql-2 ~]# yum install mysql-server
MySQL 8.4 LTS Community Server                                                                                                               1.1 MB/s | 425 kB     00:00
MySQL Connectors Community                                                                                                                   572 kB/s | 135 kB     00:00
MySQL Tools 8.4 LTS Community                                                                                                                668 kB/s | 193 kB     00:00
Dependencies resolved.
=============================================================================================================================================================================
 Package                                       Architecture              Version                                                      Repository                        Size
=============================================================================================================================================================================
Installing:
 mysql-server                                  x86_64                    8.0.36-1.module+el8.9.0+90153+70413b10                       ol8_appstream                     32 M
Installing dependencies:
 mariadb-connector-c-config                    noarch                    3.1.11-2.el8_3                                               ol8_appstream                     15 k
 mecab                                         x86_64                    0.996-2.module+el8.9.0+90153+70413b10                        ol8_appstream                    392 k
 mysql                                         x86_64                    8.0.36-1.module+el8.9.0+90153+70413b10                       ol8_appstream                     14 M
 mysql-common                                  x86_64                    8.0.36-1.module+el8.9.0+90153+70413b10                       ol8_appstream                    136 k
 mysql-errmsg                                  x86_64                    8.0.36-1.module+el8.9.0+90153+70413b10                       ol8_appstream                    640 k
 protobuf-lite                                 x86_64                    3.5.0-15.el8                                                 ol8_appstream                    149 k
Enabling module streams:
 mysql                                                                   8.0

Transaction Summary
=============================================================================================================================================================================
Install  7 Packages

Total download size: 48 M
Installed size: 244 M
Is this ok [y/N]: y
Downloading Packages:
(1/7): mariadb-connector-c-config-3.1.11-2.el8_3.noarch.rpm                                                                                  163 kB/s |  15 kB     00:00
(2/7): mecab-0.996-2.module+el8.9.0+90153+70413b10.x86_64.rpm                                                                                3.8 MB/s | 392 kB     00:00
(3/7): mysql-common-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64.rpm                                                                        1.2 MB/s | 136 kB     00:00
(4/7): mysql-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64.rpm                                                                                43 MB/s |  14 MB     00:00
(5/7): mysql-errmsg-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64.rpm                                                                        2.5 MB/s | 640 kB     00:00
(6/7): protobuf-lite-3.5.0-15.el8.x86_64.rpm                                                                                                 1.1 MB/s | 149 kB     00:00
(7/7): mysql-server-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64.rpm                                                                         47 MB/s |  32 MB     00:00
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                         54 MB/s |  48 MB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                     1/1
  Installing       : mariadb-connector-c-config-3.1.11-2.el8_3.noarch                                                                                                    1/7
  Installing       : mysql-common-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64                                                                                          2/7
  Installing       : mysql-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64                                                                                                 3/7
  Installing       : mysql-errmsg-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64                                                                                          4/7
  Installing       : protobuf-lite-3.5.0-15.el8.x86_64                                                                                                                   5/7
  Installing       : mecab-0.996-2.module+el8.9.0+90153+70413b10.x86_64                                                                                                  6/7
  Running scriptlet: mecab-0.996-2.module+el8.9.0+90153+70413b10.x86_64                                                                                                  6/7
  Running scriptlet: mysql-server-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64                                                                                          7/7
  Installing       : mysql-server-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64                                                                                          7/7
  Running scriptlet: mysql-server-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64                                                                                          7/7
ValueError: File context for /var/log/mysql(/.*)? already defined

  Verifying        : mariadb-connector-c-config-3.1.11-2.el8_3.noarch                                                                                                    1/7
  Verifying        : mecab-0.996-2.module+el8.9.0+90153+70413b10.x86_64                                                                                                  2/7
  Verifying        : mysql-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64                                                                                                 3/7
  Verifying        : mysql-common-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64                                                                                          4/7
  Verifying        : mysql-errmsg-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64                                                                                          5/7
  Verifying        : mysql-server-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64                                                                                          6/7
  Verifying        : protobuf-lite-3.5.0-15.el8.x86_64                                                                                                                   7/7

Installed:
  mariadb-connector-c-config-3.1.11-2.el8_3.noarch                                      mecab-0.996-2.module+el8.9.0+90153+70413b10.x86_64
  mysql-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64                                   mysql-common-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64
  mysql-errmsg-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64                            mysql-server-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64
  protobuf-lite-3.5.0-15.el8.x86_64

Complete!
[root@ogg-mysql-2 ~]# 

설치가 끝났으니 MySQL을 실행하고 root 패스워드를 변경 해 줍니다.

초기 설치시 root 패스워드가 없으니 아래와 같이 로그인 해서 패스워드를 변경 해 줍니다.

mysql -V
service mysqld start
mysql -u root -p
alter user 'root'@'localhost' identified by 'password';
[root@ogg-mysql-2 ~]# mysql -V
mysql  Ver 8.0.36 for Linux on x86_64 (Source distribution)
[root@ogg-mysql-2 ~]# service mysqld start
Redirecting to /bin/systemctl start mysqld.service
[root@ogg-mysql-2 ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.36 Source distribution

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> alter user 'root'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.01 sec)

mysql>

MySQL 준비가 되었으니 ogg 설치를 진행합니다.

우선 ogg를 설치할 계정을 생성 후 로그인 합니다.

[root@ogg-mysql-2 ~]# useradd ogg
[root@ogg-mysql-2 ~]# passwd ogg
Changing password for user ogg.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@ogg-mysql-2 ~]# exit
logout
[opc@ogg-mysql-2 ~]$ su - ogg
Password:
[ogg@ogg-mysql-2 ~]$

OGG for MySQL 설치 파일(191000_ggs_Linux_x64_MySQL_64bit.zip)을 다운로드 받아야 하는데 한국 오라클 링크는 찾을 수가 없어 일본 오라클 웹페이지(https://www.oracle.com/jp/topics/technologies/oracle-goldengate-downloads.html)에서 다운로드 받았습니다.

다운로드 받은 파일을 설치 할 경로에 업로드 하고 압축을 풀어 줍니다.

[ogg@ogg-mysql-2 ogg]$ pwd
/home/ogg/ogg
[ogg@ogg-mysql-2 ogg]$ ls
191000_ggs_Linux_x64_MySQL_64bit.zip
[ogg@ogg-mysql-2 ogg]$ unzip 191000_ggs_Linux_x64_MySQL_64bit.zip
Archive:  191000_ggs_Linux_x64_MySQL_64bit.zip
  inflating: ggs_Linux_x64_MySQL_64bit.tar
  inflating: OGG-19.1.0.0-README.txt
  inflating: OGG_WinUnix_Rel_Notes_19.1.0.0.0.pdf
[ogg@ogg-mysql-2 ogg]$ tar -xvf ggs_Linux_x64_MySQL_64bit.tar
./
./lib/
./lib/libnnz11.so
./lib/libclntsh.so
./libboost_system-mt.so.1.67.0
./ggMessage.dat
./tcperrs
./freeBSD.txt
./libggnnzitp.so
./convprm
./convchk
./mysql_checklist.sql
./pmsrvr
./libicudata.so.62
./sqlldr.tpl
./libPocoUtil.so.60
./version4j.jar
./libdb-6.1.so
./ddl_rewriter_8.so
./chkpt_mysql_create.sql
./libudt.so
./libPocoFoundation.so.60
./libstdc++.so.6
./libicuuc.so.62
./keygen
./libggssl.so
./libicui18n.so.62
./diretc/
./diretc/logging/
./diretc/logging/ogg-audit.xml
./diretc/logging/ogg-ggserr.xml
./diretc/logging/app-pmsrvr-default.xml
./diretc/logging/sca-restapi.xml
./diretc/logging/app-recvsrvr-debug.xml
./diretc/logging/sca-default.xml
./diretc/logging/app-adminsrvr-debug.xml
./diretc/logging/app-extract-events.xml
./diretc/logging/app-adminsrvr-events.xml
./diretc/logging/app-replicat-events.xml
./diretc/logging/app-distsrvr-debug.xml
./diretc/logging/app-ServiceManager-debug.xml
./diretc/logging/app-pmsrvr-debug.xml
./diretc/logging.d/
./libgglog.so
./mysql.txt
./ggparam.dat
./logdump
./libggperf.so
./server
./ggsci
./ddl_metadata.so
./ddl_rewriter.so
./crypto/
./crypto/libccme_ecc.so
./crypto/libcryptocme.sig
./crypto/libccme_asym.so
./crypto/libccme_ecc_accel_fips.so
./crypto/libccme_base.so
./crypto/libcryptocme.so
./crypto/libccme_ecc_non_fips.so
./crypto/libccme_ecc_accel_non_fips.so
./crypto/libccme_base_non_fips.so
./dirout/
./dirout/README.txt
./notices.txt
./libggparam.so
./libggutil.so
./help.txt
./libmysqlclient.so.21
./libPocoNetSSL.so.60
./demo_mysql_insert.sql
./db2cntl.tpl
./emsclnt
./cachefiledump
./demo_mysql_misc.sql
./libPocoXML.so.60
./libPocoCrypto.so.60
./libPocoJSON.so.60
./db_upgrade
./libxerces-c-3.2.so
./libPocoNet.so.60
./libgcc_s.so.1
./ddl_install.sh
./liblmdb.so
./UserExitExamples/
./UserExitExamples/ExitDemo_more_recs/
./UserExitExamples/ExitDemo_more_recs/Makefile_more_recs.AIX
./UserExitExamples/ExitDemo_more_recs/exitdemo_more_recs.vcproj
./UserExitExamples/ExitDemo_more_recs/Makefile_more_recs.LINUX
./UserExitExamples/ExitDemo_more_recs/readme.txt
./UserExitExamples/ExitDemo_more_recs/Makefile_more_recs.HPUX
./UserExitExamples/ExitDemo_more_recs/exitdemo_more_recs.c
./UserExitExamples/ExitDemo_more_recs/Makefile_more_recs.SOLARIS
./UserExitExamples/ExitDemo/
./UserExitExamples/ExitDemo/exitdemo.c
./UserExitExamples/ExitDemo/exitdemo.vcproj
./UserExitExamples/ExitDemo/readme.txt
./UserExitExamples/ExitDemo/exitdemo_utf16.c
./UserExitExamples/ExitDemo/Makefile_exit_demo.HP_OSS
./UserExitExamples/ExitDemo/Makefile_exit_demo.SOLARIS
./UserExitExamples/ExitDemo/Makefile_exit_demo.AIX
./UserExitExamples/ExitDemo/Makefile_exit_demo.HPUX
./UserExitExamples/ExitDemo/Makefile_exit_demo.LINUX
./UserExitExamples/ExitDemo_passthru/
./UserExitExamples/ExitDemo_passthru/Makefile_passthru.SOLARIS
./UserExitExamples/ExitDemo_passthru/Makefile_passthru.LINUX
./UserExitExamples/ExitDemo_passthru/readme.txt
./UserExitExamples/ExitDemo_passthru/Makefile_passthru.HP_OSS
./UserExitExamples/ExitDemo_passthru/exitdemopassthru.vcproj
./UserExitExamples/ExitDemo_passthru/Makefile_passthru.HPUX
./UserExitExamples/ExitDemo_passthru/Makefile_passthru.AIX
./UserExitExamples/ExitDemo_passthru/exitdemo_passthru.c
./UserExitExamples/ExitDemo_lobs/
./UserExitExamples/ExitDemo_lobs/readme.txt
./UserExitExamples/ExitDemo_lobs/exitdemo_lob.c
./UserExitExamples/ExitDemo_lobs/Makefile_lob.LINUX
./UserExitExamples/ExitDemo_lobs/Makefile_lob.SOLARIS
./UserExitExamples/ExitDemo_lobs/exitdemo_lob.vcproj
./UserExitExamples/ExitDemo_lobs/Makefile_lob.HPUX
./UserExitExamples/ExitDemo_lobs/Makefile_lob.AIX
./UserExitExamples/ExitDemo_pk_befores/
./UserExitExamples/ExitDemo_pk_befores/Makefile_pk_befores.HPUX
./UserExitExamples/ExitDemo_pk_befores/readme.txt
./UserExitExamples/ExitDemo_pk_befores/exitdemo_pk_befores.vcproj
./UserExitExamples/ExitDemo_pk_befores/Makefile_pk_befores.LINUX
./UserExitExamples/ExitDemo_pk_befores/Makefile_pk_befores.SOLARIS
./UserExitExamples/ExitDemo_pk_befores/exitdemo_pk_befores.c
./UserExitExamples/ExitDemo_pk_befores/Makefile_pk_befores.AIX
./ddl_metadata_8.so
./libggrepo.so
./mgr
./defgen
./oggerr
./bcrypt.txt
./zlib.txt
./retrace
./ggcmd
./libantlr3c.so
./bcpfmt.tpl
./demo_mysql_load.sql
./metadata_server
./replicat
./prvtclkm.plb
./extract
./SQLDataTypes.h
./ucharset.h
./checkprm
./usrdecs.h
./demo_mysql_create.sql
[ogg@ogg-mysql-2 ogg]$ ls
191000_ggs_Linux_x64_MySQL_64bit.zip  ddl_rewriter_8.so      ggparam.dat                    libggrepo.so             libPocoXML.so.60                      prvtclkm.plb
bcpfmt.tpl                            ddl_rewriter.so        ggsci                          libggssl.so              libstdc++.so.6                        replicat
bcrypt.txt                            defgen                 ggs_Linux_x64_MySQL_64bit.tar  libggutil.so             libudt.so                             retrace
cachefiledump                         demo_mysql_create.sql  help.txt                       libicudata.so.62         libxerces-c-3.2.so                    server
checkprm                              demo_mysql_insert.sql  keygen                         libicui18n.so.62         logdump                               SQLDataTypes.h
chkpt_mysql_create.sql                demo_mysql_load.sql    lib                            libicuuc.so.62           metadata_server                       sqlldr.tpl
convchk                               demo_mysql_misc.sql    libantlr3c.so                  liblmdb.so               mgr                                   tcperrs
convprm                               diretc                 libboost_system-mt.so.1.67.0   libmysqlclient.so.21     mysql_checklist.sql                   ucharset.h
crypto                                dirout                 libdb-6.1.so                   libPocoCrypto.so.60      mysql.txt                             UserExitExamples
db2cntl.tpl                           emsclnt                libgcc_s.so.1                  libPocoFoundation.so.60  notices.txt                           usrdecs.h
db_upgrade                            extract                libgglog.so                    libPocoJSON.so.60        OGG-19.1.0.0-README.txt               version4j.jar
ddl_install.sh                        freeBSD.txt            libggnnzitp.so                 libPocoNet.so.60         oggerr                                zlib.txt
ddl_metadata_8.so                     ggcmd                  libggparam.so                  libPocoNetSSL.so.60      OGG_WinUnix_Rel_Notes_19.1.0.0.0.pdf
ddl_metadata.so                       ggMessage.dat          libggperf.so                   libPocoUtil.so.60        pmsrvr
[ogg@ogg-mysql-2 ogg]$

ggsci 명령 alias를 .bash_profile에 설정 후 진행하겠습니다.

[ogg@ogg-mysql-2 ~]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs
alias gs='/home/ogg/ogg/ggsci'
[ogg@ogg-mysql-2 ~]$

ggsci에 접속하여 다음 작업을 진행해야 하는데 설치해야 하는 라이브러리가 있습니다.

Oracle Linux 8 기준 아래 2개의 패키지 설치가 필요합니다.

yum install -y libnsl
yum install compat-openssl10
[ogg@ogg-mysql-2 ~]$ gs
/home/ogg/ogg/ggsci: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory
[ogg@ogg-mysql-2 ~]$ exit
logout
[opc@ogg-mysql-2 ~]$ sudo yum install -y libnsl
Last metadata expiration check: 1:12:44 ago on Thu 18 Jul 2024 03:52:40 AM GMT.
Dependencies resolved.
=============================================================================================================================================================================
 Package                            Architecture                       Version                                           Repository                                     Size
=============================================================================================================================================================================
Installing:
 libnsl                             x86_64                             2.28-251.0.2.el8_10.2                             ol8_baseos_latest                             112 k

Transaction Summary
=============================================================================================================================================================================
Install  1 Package

Total download size: 112 k
Installed size: 97 k
Downloading Packages:
libnsl-2.28-251.0.2.el8_10.2.x86_64.rpm                                                                                                      1.1 MB/s | 112 kB     00:00
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                        1.1 MB/s | 112 kB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                     1/1
  Installing       : libnsl-2.28-251.0.2.el8_10.2.x86_64                                                                                                                 1/1
  Running scriptlet: libnsl-2.28-251.0.2.el8_10.2.x86_64                                                                                                                 1/1
  Verifying        : libnsl-2.28-251.0.2.el8_10.2.x86_64                                                                                                                 1/1

Installed:
  libnsl-2.28-251.0.2.el8_10.2.x86_64

Complete!
[opc@ogg-mysql-2 ~]$ su - ogg
Password:
Last login: Thu Jul 18 04:01:01 GMT 2024 on pts/0
[ogg@ogg-mysql-2 ~]$ gs
/home/ogg/ogg/ggsci: error while loading shared libraries: libssl.so.10: cannot open shared object file: No such file or directory
[ogg@ogg-mysql-2 ~]$ exit
logout
[opc@ogg-mysql-2 ~]$ sudo yum install compat-openssl10
Last metadata expiration check: 1:13:06 ago on Thu 18 Jul 2024 03:52:40 AM GMT.
Dependencies resolved.
=============================================================================================================================================================================
 Package                                     Architecture                      Version                                        Repository                                Size
=============================================================================================================================================================================
Installing:
 compat-openssl10                            x86_64                            1:1.0.2o-4.el8_6                               ol8_appstream                            1.1 M

Transaction Summary
=============================================================================================================================================================================
Install  1 Package

Total download size: 1.1 M
Installed size: 2.9 M
Is this ok [y/N]: y
Downloading Packages:
compat-openssl10-1.0.2o-4.el8_6.x86_64.rpm                                                                                                    11 MB/s | 1.1 MB     00:00
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                         10 MB/s | 1.1 MB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                     1/1
  Installing       : compat-openssl10-1:1.0.2o-4.el8_6.x86_64                                                                                                            1/1
  Running scriptlet: compat-openssl10-1:1.0.2o-4.el8_6.x86_64                                                                                                            1/1
  Verifying        : compat-openssl10-1:1.0.2o-4.el8_6.x86_64                                                                                                            1/1

Installed:
  compat-openssl10-1:1.0.2o-4.el8_6.x86_64

Complete!
[opc@ogg-mysql-2 ~]$ su - ogg
Password:
Last login: Thu Jul 18 05:05:33 GMT 2024 on pts/0
[ogg@ogg-mysql-2 ~]$ gs

Oracle GoldenGate Command Interpreter for MySQL
Version 19.1.0.0.0 OGGCORE_19.1.0.0.0_PLATFORMS_190508.1447
Linux, x64, 64bit (optimized), MySQL Enterprise on May  8 2019 20:42:57
Operating system character set identified as UTF-8.

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



GGSCI (ogg-mysql-2) 1>

subdirs 명령으로 디렉토리를 생성해 줍니다.

GGSCI (ogg-mysql-2) 1> create subdirs

Creating subdirectories under current directory /home/ogg/ogg

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


GGSCI (ogg-mysql-2) 2>

ogg mgr을 설정합니다.

GGSCI (ogg-mysql-2) 2> edit param mgr

port 7810

PURGEOLDEXTRACTS ./dirdat/* , USECHECKPOINTS, MINKEEPHOURS 48

DOWNREPORTMINUTES 30
LAGREPORTMINUTES 5
LAGINFOMINUTES 10
LAGCRITICALMINUTES 60
SYSLOG NONE

GGSCI (ogg-mysql-2) 3>

replicat생성 전 타겟이 될 MySQL 설정을 진행 해 줍니다.

ogg 타겟 용도로 test라는 유저, 데이터베이스를 만들고 테이블을 생성해 주겠습니다.

[ogg@ogg-mysql-2 ~]$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.36 Source distribution

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE USER 'test'@'localhost' IDENTIFIED BY 'test';
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT ALL ON *.* TO 'test'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE USER 'test'@'10.0.0.208' IDENTIFIED BY 'test';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL ON *.* TO 'test'@'10.0.0.208';
Query OK, 0 rows affected (0.01 sec)

mysql> CREATE DATABASE test;
Query OK, 1 row affected (0.01 sec)

mysql> use test
Database changed
mysql> CREATE TABLE test
    ->  (ID   INT(10),
    ->  LASTNAME CHAR(20),
    ->  FIRSTNAME  CHAR(20),
    ->  PRIMARY KEY (ID)
    ->  )
    -> ENGINE = INNODB;
Query OK, 0 rows affected, 1 warning (0.02 sec)

mysql> commit;
Query OK, 0 rows affected (0.00 sec)

ggsci 명령으로 ogg에 접속하여 MySQL에 생성한 test 데이터베이스에 접속을 진행합니다.

[ogg@ogg-mysql-2 ~]$ gs

Oracle GoldenGate Command Interpreter for MySQL
Version 19.1.0.0.0 OGGCORE_19.1.0.0.0_PLATFORMS_190508.1447
Linux, x64, 64bit (optimized), MySQL Enterprise on May  8 2019 20:42:57
Operating system character set identified as UTF-8.

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



GGSCI (ogg-mysql-2) 1> dblogin sourcedb test, userid test@10.0.0.203:3306, password "test"
Successfully logged into database.

GGSCI (ogg-mysql-2 DBLOGIN as test) 2>

아래 명령으로 ogg replicat 설정을 진행합니다.

EDIT PARAM REP01

replicat rep01
setenv (MYSQL_UNIX_PORT=/var/lib/mysql/mysql.sock)
DBOPTIONS CONNECTIONPORT 3306
DBOPTIONS HOST 10.0.0.203
targetdb test, userid test, password "test"
HANDLECOLLISIONS
ASSUMETARGETDEFS
SQLEXEC "SET NAMES euckr"
discardfile ./dirrpt/rep01.dsc, purge
map test.test, target test.test;

add replicat rep01, exttrail ./dirdat/ea nodbcheckpoint
GGSCI (ogg-mysql-2 DBLOGIN as test) 2> EDIT PARAM REP01

replicat rep01
setenv (MYSQL_UNIX_PORT=/var/lib/mysql/mysql.sock)
DBOPTIONS CONNECTIONPORT 3306
DBOPTIONS HOST 10.0.0.203
targetdb test, userid test, password "test"
HANDLECOLLISIONS
ASSUMETARGETDEFS
SQLEXEC "SET NAMES euckr"
discardfile ./dirrpt/rep01.dsc, purge
map test.test, target test.test;

GGSCI (ogg-mysql-2 DBLOGIN as test) 3> add replicat rep01, exttrail ./dirdat/ea nodbcheckpoint
REPLICAT added.


GGSCI (ogg-mysql-2 DBLOGIN as test) 4>

생성한 mgr과 rep의 상태를 확인하고 기동시켜 주면 연동 작업은 마무리 됩니다.

GGSCI (ogg-mysql-2 DBLOGIN as test) 4> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     STOPPED
REPLICAT    STOPPED     REP01       00:00:00      00:00:30


GGSCI (ogg-mysql-2 DBLOGIN as test) 5> start mgr
Manager started.


GGSCI (ogg-mysql-2 DBLOGIN as test) 6> start rep01

Sending START request to MANAGER ...
REPLICAT REP01 starting


GGSCI (ogg-mysql-2 DBLOGIN as test) 7> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
REPLICAT    RUNNING     REP01       00:00:00      00:00:01


GGSCI (ogg-mysql-2 DBLOGIN as test) 8>

여기까지 Oracle Database와 MySQL간의 OGG 구성이 완료 되었습니다.

Leave a Comment