Merhaba,
bu yazımızda Oracle Goldengate ürününün microservis mimarisi ile kurulum ve konfigürasyonundan bahsedeceğim. Goldengate microservices mimarisi RESTFul api ile çalışan ve tüm goldengate süreçlerinizi browser üzerinden uzaktan yönetmenizi ve monitör etmenizi sağlayan bir yapıdır.
Oracle Goldengate Microservices Mimarisine kısaca bakmak gerekirse;
Toplamda 5 servisimiz mevcut. Bu servislerin hepsi database sunucularında local’e kuruluyor. Bu servislerden çok kısa bahsedip hemen kuruluma geçeceğim.
Kurulum
Kurulum için source sunucumuz 192.168.33.10 ve target sunucumuz 192.168.33.21 olacak. Her ikisi sunucuda da Oracle Database 19c kurulu. Source’da Oracle SID rdb1 ve target sunucudaki Oracle SID ise orcl.
[root@ora01 setup]# unzip -qq 191004_fbo_ggs_Linux_x64_services_shiphome.zip
[root@ora01 setup]# ls -ltrh
total 737M
-rw-r--r-- 1 root root 1.4K May 29 2019 OGG-19.1.0.0-README.txt
drwxr-xr-x 3 root root 19 Oct 18 2019 fbo_ggs_Linux_x64_services_shiphome
-rw-r--r-- 1 root root 325K Oct 21 2019 OGG_WinUnix_Rel_Notes_19.1.0.0.4.pdf
-rw-r--r-- 1 root root 737M Jan 21 2021 191004_fbo_ggs_Linux_x64_services_shiphome.zip
[root@ora01 setup]# chown oracle:oinstall -R fbo_ggs_Linux_x64_services_shiphome/
[oracle@ora01 ~]$ mkdir -p /u01/app/oracle/gghome --> OGG_HOME
[oracle@ora01 ~]$ mkdir -p /u01/app/oracle/gg_micro --> Microservice Home
[oracle@ora01 ~]$ mkdir -p /u01/app/oracle/gg_micro/sm --> Service Manager Home
[oracle@ora01 ~]$ mkdir -p /u01/app/oracle/gg_micro/deploy --> Deployment Home
[oracle@ora01 ~]$ cd fbo_ggs_Linux_x64_services_shiphome/Disk1/
[oracle@ora01 Disk1]$ ll
total 8
drwxr-xr-x 4 oracle oinstall 187 Oct 18 2019 install
drwxrwxr-x 2 oracle oinstall 25 Oct 18 2019 response
-rwxr-xr-x 1 oracle oinstall 918 Oct 18 2019 runInstaller
drwxr-xr-x 12 oracle oinstall 4096 Oct 18 2019 stage
[oracle@ora01 Disk1]$ ./runInstaller
Goldengate kurulumu tamamlandı. Şimdi sırada Microservice mimarisini deploy etmek var. Her iki sunucuda da bu işlemleri yapıyoruz.
[oracle@ora01 ~]$ export ORACLE_SID=rdb1
[oracle@ora01 ~]$ export ORACLE_HOME=/u01/app/oracle/product/19c
[oracle@ora01 ~]$ export TNS_ADMIN=/u01/app/oracle/product/19c/network/admin
[oracle@ora01 ~]$ export OGG_HOME=/u01/app/oracle/gghome
[oracle@ora01 ~]$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
[oracle@ora01 gghome]$ cd bin/
[oracle@ora01 bin]$ ll
total 112520
-rwxrwxr-x 1 oracle oinstall 4614896 Oct 17 2019 adminclient
-rwxrwxr-x 1 oracle oinstall 12883912 Oct 17 2019 adminsrvr
-rwxrwxr-x 1 oracle oinstall 1592032 Oct 17 2019 cachefiledump
-rwxrwxr-x 1 oracle oinstall 4098888 Oct 17 2019 checkprm
-rwxrwxr-x 1 oracle oinstall 4124000 Oct 17 2019 convchk
-rwxrwxr-x 1 oracle oinstall 5332160 Oct 17 2019 convprm
-rwxrwxr-x 1 oracle oinstall 5307976 Oct 17 2019 defgen
-rwxrwx--- 1 oracle oinstall 11086424 Oct 17 2019 distsrvr
-rwxrwxr-x 1 oracle oinstall 4594960 Oct 17 2019 emsclnt
-rwxrwx--- 1 oracle oinstall 12361928 Oct 17 2019 extract
-rwxrwxr-x 1 oracle oinstall 4627856 Oct 17 2019 ggcmd
-rwxrwxr-x 1 oracle oinstall 108824 Oct 17 2019 keygen
-rwxrwxr-x 1 oracle oinstall 6035504 Oct 17 2019 logdump
-rwxr-x--- 1 oracle oinstall 10352 Mar 21 2019 oggca.sh
-rwxrwxr-x 1 oracle oinstall 1641208 Oct 17 2019 oggerr
-rwxrwxr-x 1 oracle oinstall 4366 Oct 17 2019 orapki
-rwxrwxr-x 1 oracle oinstall 7664936 Oct 17 2019 pmsrvr
-rwxrwx--- 1 oracle oinstall 9011128 Oct 17 2019 recvsrvr
-rwxrwx--- 1 oracle oinstall 11310280 Oct 17 2019 replicat
-rwxrwxr-x 1 oracle oinstall 1637112 Oct 17 2019 retrace
-rwxrwxr-x 1 oracle oinstall 7127768 Oct 17 2019 ServiceManager
-rwxrwxr-x 1 oracle oinstall 6809 Oct 18 2018 XAGTask
[oracle@ora01 bin]$ ./oggca.sh
İstenirse aşağıdaki ekrandan trail dosyalarının lokasyonu değiştirilebilir.
Eğer yanlış set edili bir environment varsa bu ekrandan değiştirilebilir.
GUI’e login olacağımız username/password’ü belirliyoruz.
Ben SSL’i disable ediyorum. İstenirse SSL açılarak network encryption yapılabilir.
Tüm server’ların port’larını belirliyorum.
İsterseniz aşağıdaki ekrandan response file’ı create edip silent install yapabilirsiniz. Hiçbir yerde hazır bir response file bulunmuyor, silent kurulum için mutlaka elle create etmek gerekli.
Ve kurulum tamamlandı.
Konfigürasyon
– Database’ler archivelog modda olmalı.
– “alter database force logging;” ile force logging’i açıyorum.
– “alter database add supplemental log data;” ile supplemental logging’i açıyorum.
– “alter system set enable_goldengate_replication=TRUE” parametresini true olarak set ediyorum.
CREATE USER gg_admin IDENTIFIED BY "root123";
exec dbms_goldengate_auth.grant_admin_privilege('gg_admin');
exec dbms_streams_auth.grant_admin_privilege('gg_admin');
grant insert on system.logmnr_restart_ckpt$ to gg_admin;
grant update on streams$_capture_process to gg_admin;
grant become user to gg_admin;
grant select any table to gg_admin;
GRANT CONNECT, RESOURCE TO gg_admin;
GRANT SELECT ANY DICTIONARY, SELECT ANY TABLE TO gg_admin;
GRANT CREATE TABLE TO gg_admin;
GRANT FLASHBACK ANY TABLE TO gg_admin;
GRANT EXECUTE ON dbms_flashback TO gg_admin;
GRANT EXECUTE ON utl_file TO gg_admin;
GRANT CREATE ANY TABLE TO gg_admin;
GRANT INSERT ANY TABLE TO gg_admin;
GRANT UPDATE ANY TABLE TO gg_admin;
GRANT DELETE ANY TABLE TO gg_admin;
GRANT DROP ANY TABLE TO gg_admin;
GRANT ALTER ANY TABLE TO gg_admin;
GRANT ALTER SYSTEM TO gg_admin;
GRANT LOCK ANY TABLE TO gg_admin;
GRANT SELECT ANY TRANSACTION to gg_admin;
ALTER USER gg_admin QUOTA UNLIMITED ON users;
alter user gg_admin quota unlimited on users;
exec dbms_goldengate_auth.grant_admin_privilege('gg_admin','*', grant_optional_privileges=>'*');
CREATE USER forenda IDENTIFIED BY "root123";
grant dba to forenda;
grant resource, connect to forenda;
create table forenda.gg_test (id integer, constraint pk_id primary key (id));
http://192.168.33.21/9201 adresine bağlanıyorum.
Replicat running duruma geldi.
Target bilgilerini girerken dikkat edilmesi gereken target’ın receiver port’unun girilmesi yani 9203.
Path oluşturuldu ve running durumda.
Şimdiye kadar yapılan konfigürasyonu özetlersek;
– Source’da extract oluşturuldu,
– Target’ta replicat oluşturuldu,
– Source’da path oluşturuldu.
[oracle@ora01 ~]$ sqlplus forenda/root123
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Jan 20 21:32:17 2021
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> select * from gg_test;
no rows selected
SQL> insert into gg_test values (1);
1 row created.
SQL> insert into gg_test values (2);
1 row created.
SQL> insert into gg_test values (3);
1 row created.
SQL> commit;
Commit complete.
Yaptığımız insert işlemleri gözüküyor.
[oracle@ora03 ~]$ sqlplus forenda/root123
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jan 21 00:21:06 2021
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Last Successful login time: Thu Jan 21 2021 00:21:02 +00:00
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> select * from gg_test;
ID
----------
1
2
3
Kurulum ve konfigürasyonumuz başarılı, datanın da replike edildiğini gördük. Umarım faydalı olmuştur.
Konu ile ilgili sorunuz olması durumunda dba@forenda.com.tr adresine mail atabilirsiniz.