Oracle GoldenGate

https://qiita.com/tags/goldengate

ソースデータベース: 12cR1 mmm050 db01
ターゲットデータベース: 12cR1 mmm050 db02
GoldenGate: Oracle GoldenGate 19.1.0.0.4 for Oracle on Linux x86-64

前提:
tnsnames.oraにdb01とdb02のエイリアス設定済
ローカル・デプロイ
DDLの伝播なし
ソースとターゲットにテーブル作成済み(主キーあり)

create user test identified by test;
grant dba to test;
conn test/test
create table tab1(col1 int primary key);

 


---- 1.インストール

Oracle Software Delivery Cloudからダウンロード
(12cR1版ではなく、最新の19cバージョンをダウンロード)


mkdir -p /home/oracle/work/gg_inst
ls /home/oracle/work/gg_inst
cd /home/oracle/work/gg_inst

/home/oracle/workの下にV983658-01.zipを配置する

unzip ../V983658-01.zip

 

cd fbo_ggs_Linux_x64_shiphome/Disk1

LANG=C ./runInstaller

--
Software Location: /u01/app/oracle/product/gghome_1
start Manager: チェックする
Database Location: /u01/app/oracle/product/12.1.0/dbhome_1
Manager Port: 7809
--

vim /home/oracle/.bash_profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/u01/app/oracle/product/12.1.0/dbhome_1/lib/

. /home/oracle/.bash_profile

ls /u01/app/oracle/product/gghome_1

cd /u01/app/oracle/product/gghome_1
./ggsci

info all

exit

ls dirprm/
cat dirprm/mgr.prm

ps -ef | grep ./mgr | grep -v grep
lsof -i | grep mgr
lsof -i:7809


---- 2.事前準備

-- ロギング・プロパティの構成[db01で実施]

SELECT supplemental_log_data_min, force_logging FROM v$database;

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
ALTER DATABASE FORCE LOGGING;
SELECT supplemental_log_data_min, force_logging FROM v$database;

ALTER SYSTEM SWITCH LOGFILE;

-- GoldenGateの有効化[db01,db02で実施]

show parameter ENABLE_GOLDENGATE_REPLICATION

alter system set ENABLE_GOLDENGATE_REPLICATION=true;

show parameter ENABLE_GOLDENGATE_REPLICATION


-- GoldenGateユーザーの作成[db01,db02で実施]

create user ggs identified by ggs;

exec dbms_goldengate_auth.grant_admin_privilege('ggs');
grant dba to ggs;


-- アーカイブログモードへの変更[db01で実施]

select log_mode from v$database;

shutdown immediate
startup mount

alter database archivelog;

alter database open;
select log_mode from v$database;


---- 3.GoldenGateプロセスの構成

-- 3.1.Captureプロセス

-- パラメータの設定

cd /u01/app/oracle/product/gghome_1
./ggsci

edit params cap01

EXTRACT cap01
USERID ggs@db01, PASSWORD ggs
EXTTRAIL ./dirdat/lt
TABLE test.*;


-- Captureプロセスの追加

dblogin userid ggs@db01 password ggs

register extract cap01 database

ADD EXTRACT CAP01, integrated tranlog, begin now
ADD EXTTRAIL ./dirdat/lt, extract CAP01, megabytes 500
info all

-- 3.2.Datapumpプロセス

-- パラメータの設定


edit params dp01

EXTRACT DP01
USERID ggs@db01, PASSWORD ggs
RMTHOST 192.168.137.50,MGRPORT 7809, PARAMS "-f"
RMTTRAIL ./dirdat/rt
TABLE test.*;


-- Datapumpプロセスの追加

ADD EXTRACT DP01, exttrailsource ./dirdat/lt
ADD RMTTRAIL ./dirdat/rt, extract DP01
info all


-- 3.3.Replicatプロセス

-- パラメータの設定

edit params REP01

REPLICAT REP01
USERID ggs@db02, PASSWORD ggs
MAP test.*, TARGET test.*;


-- Replicatプロセスの追加

DBLOGIN USERID ggs@db02 PASSWORD ggs
ADD REPLICAT REP01, INTEGRATED, EXTTRAIL ./dirdat/rt
info all


-- 3.4.キャプチャ対象オブジェクトのサプリメンタルロギング追加

DBLOGIN USERID ggs@db01 PASSWORD ggs

ADD SCHEMATRANDATA TEST

 

-- 3.5.プロセスの起動


start cap01
info all
start dp01
info all
start rep01
info all

-- 3.6.データの追加

tail -f /u01/app/oracle/product/gghome_1/ggserr.log

conn test/test
insert into tab1 values(1);
commit;
select * from tab1;


stats cap01
stats dp01
stats rep01