前回のあらすじ

こんにちは。プラチナホルダーの小酒井です。

前々回はAutonomous DatabaseとGoldengateのプロビジョニングを行い、
前回はソース側、ターゲット側それぞれのデータベースの設定と同期設定を行いました。
今回はいよいよ同期確認を行います。

  1. Autonomous Databaseのプロビジョニング(前々回)
  2. Goldengate 19c Marketplace Microservices Editionのプロビジョニング(前々回)
  3. ソース側データベースの設定(前回)
  4. ターゲット側データベースの設定(前回)
  5. 同期確認
  6. DDL文の同期確認

早速ですが、宜しくお願いします!

うまく同期されるか、ちょっとドキドキします。。
宜しくお願いします!

5.同期確認

ソース側データベースにデータ登録

ソース側データベースのユーザtestuserのテーブルtab1に、id=4とid=5のデータを登録します。

-bash-4.2$ export ORACLE_HOME='/u01/app/client/oracle19'
-bash-4.2$ export TNS_ADMIN='/u02/deployments/Source/etc'
-bash-4.2$ 
-bash-4.2$ /u01/app/client/oracle19/bin/sqlplus admin/************@source_high


SQL*Plus: Release 19.0.0.0.0 - Production on Mon Apr 12 04:58:46 2021
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle. All rights reserved.

Last Successful login time: Mon Apr 12 2021 04:08:53 +00:00

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.5.0.0.0

SQL> insert into testuser.tab1 values (4, 'ddd');

1 row created.

SQL> insert into testuser.tab1 values (5, 'eee');

1 row created.

SQL> commit;

Commit complete.

SQL> select * from testuser.tab1 order by id;

ID NAME
---------- ----------
1 aaa
2 bbb
3 ccc
4 ddd
5 eee

 

ターゲット側データベースのデータ確認

ターゲット側データベースのユーザtestuserのテーブルtab1に、id=4とid=5のデータが反映されており、データが同期されていることが確認できます。

-bash-4.2$ export ORACLE_HOME='/u01/app/client/oracle19'
-bash-4.2$ export TNS_ADMIN='/u02/deployments/Target/etc'
-bash-4.2$ 
-bash-4.2$ /u01/app/client/oracle19/bin/sqlplus admin/************@target_high


SQL*Plus: Release 19.0.0.0.0 - Production on Mon Apr 12 04:56:18 2021
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle. All rights reserved.


Last Successful login time: Mon Apr 12 2021 04:41:28 +00:00

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.5.0.0.0

SQL> select * from testuser.tab1 order by id;

ID NAME
---------- ----------
1 aaa
2 bbb
3 ccc
4 ddd
5 eee

 

DDL文の同期確認

ソース側データベースにテーブル作成

ソース側データベースのユーザtestuserにテーブルtab2を作成し、データを登録します。

SQL> create table testuser.tab2 (col1 number primary key, col2 varchar2(10), col3 date);

Table created.

SQL> desc testuser.tab2
Name Null? Type
----------------------------------------- -------- ----------------------------
COL1 NOT NULL NUMBER
COL2 VARCHAR2(10)
COL3 DATE

SQL> select * from testuser.tab2;

no rows selected

SQL> insert into testuser.tab2 values (1, 'a', sysdate);

1 row created.

SQL> commit;

Commit complete.

SQL> alter session set nls_date_format='yyyy/mm/dd hh24:mi:ss';

Session altered.

SQL> select * from testuser.tab2;

COL1 COL2 COL3
---------- ---------- -------------------
1 a 2021/04/12 05:18:05

SQL> exit

 

ターゲット側データベースのデータ確認

ソース側データベースで作成したユーザtestuserのテーブル tab2が存在し、登録したデータが同期されていることが確認できます。

SQL> desc testuser.tab2
Name Null? Type
----------------------------------------- -------- ----------------------------
COL1 NOT NULL NUMBER
COL2 VARCHAR2(10)
COL3 DATE

SQL> 
SQL> alter session set nls_date_format='yyyy/mm/dd hh24:mi:ss';

Session altered.

SQL> select * from testuser.tab2;


COL1 COL2 COL3
---------- ---------- -------------------
1 a 2021/04/12 05:18:05

SQL> SQL>

 

ターゲット側でも同じデータが表示されましたね!

 

さいごに

今回はOracle Autonomous Database間のOracle GoldenGate によるデータ同期を検証してみました。
非常に簡単な手順で確認することができますので、みなさんも試してみてください。

当社はOracle Cloudサービスを展開しておりますので、Oracle Cloud について何かお困りのことがありましたら、お気軽にお問い合せいただけますと幸いです。

お問い合わせはこちら📩

Oracle Cloud、Oracle Databaseに関する各種サービスページは下記よりご覧いただけます。

 

投稿者プロフィール

技術チーム
技術チーム
DBひとりでできるもんを盛り上げるべく、技術チームが立ち上がり早6年。ひとりでできるもんと言いつつ、技術者が読んでプッとなるような、極めてピンポイントでマニアックな技術ネタを執筆しています!