技術ブログ
目次
本記事では、CData Sync を用いて、MySQL から PostgreSQL へのニアリアルタイム データ連携(論理レプリケーション)を構成する手順についてご説明します。
なお、弊社コーソルはCData パートナーであり、CData Syncの販売および導入、運用やトライアルの支援が可能です。
CData Syncは、非常に多くのデータベース製品、SaaS、アプリケーション、APIに対応したデータ連携ツールです。
以下の特徴を持ちます。
弊社からCData Syncを見積/購入いただくと、以下のサービスを無償でご提供いたします。
以下の記事でご紹介しているため、こちらをご覧ください。
CDCに、MySQLの変更データキャプチャ機能を使用するため、このための設定を行います。
[root@l8rep3db1 ~]# mysql -uadmin -pPass123-
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.4.5 MySQL Community Server - GPL
Copyright (c) 2000, 2025, 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> SHOW GLOBAL VARIABLES LIKE 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | ON |
+---------------+-------+
1 row in set (0.01 sec)
mysql> SHOW GLOBAL VARIABLES LIKE 'binlog_format';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW |
+---------------+-------+
1 row in set (0.01 sec)
mysql> SHOW GLOBAL VARIABLES LIKE 'binlog_row_image';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| binlog_row_image | FULL |
+------------------+-------+
1 row in set (0.01 sec)
mysql>
mysql> CREATE DATABASE db1;
Query OK, 1 row affected (0.01 sec)
mysql> use db1;
Database changed
mysql> CREATE TABLE t8 (pk integer primary key, s varchar(16));
Query OK, 0 rows affected (0.05 sec)
mysql> INSERT INTO t8 VALUES(1, 'AAA');
Query OK, 1 row affected (0.02 sec)
mysql> INSERT INTO t8 VALUES(2, 'BBB');
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO t8 VALUES(3, 'CCC');
Query OK, 1 row affected (0.01 sec)
mysql> COMMIT;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT * FROM t8;
+----+------+
| pk | s |
+----+------+
| 1 | AAA |
| 2 | BBB |
| 3 | CCC |
+----+------+
3 rows in set (0.00 sec)
mysql>
ここでは、別途作成した管理権限を持つユーザーadminで接続し、データベースに対する変更をキャプチャすることにしています。
ターゲットデータベース側で、データの連携先となるデータベースとユーザーを準備します。 ここでは、データベースdb1およびユーザーu1を作成しています。以下の手順に従います。
CData Syncの管理コンソールで、ターゲットPostgreSQLへの接続「tgt_pg」を構成します。以下の手順に従います。
弊社からCData Syncを見積/購入いただくと、以下のサービスを無償でご提供いたします。
CData Syncの管理コンソールで、でジョブ(レプリケーションジョブ)とタスクを作成します。
作成したジョブを実行します。
初回実行であるため、ターゲットPostgreSQLに対してテーブルが作成され、ソースMySQLのデータが連携されます(レプリケーションされます)。
[postgres@l8rep3db2 ~]$ psql -U u1 -d db1 -h localhost
Password for user u1:
psql (16.3)
Type "help" for help.
db1=> SELECT * FROM t8;
pk | s | _cdatasync_deleted
----+-----+--------------------
1 | AAA | f
2 | BBB | f
3 | CCC | f
(3 rows)
db1=>
なお、_cdatasync_deleted列は、ソースデータベースにおけるデータの削除状況を示すフラグのような役割をする列です。
ソースMySQLにデータを追加してから、ジョブを実行します。 ジョブの実行手順は初回実行と同じです。 2回目の実行であるため、前回のジョブ実行からの差分だけがデータ連携(レプリケーション)されます。
ソースMySQLにデータを追加
[root@l8rep3db1 ~]# mysql -uadmin -pPass123- -Ddb1
mysql: [Warning] Using a password on the command line interface can be insecure.
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 22
Server version: 8.4.5 MySQL Community Server - GPL
Copyright (c) 2000, 2025, 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> INSERT INTO t8 VALUES(4, 'DDD');
Query OK, 1 row affected (0.02 sec)
mysql> INSERT INTO t8 VALUES(5, 'EEE');
Query OK, 1 row affected (0.01 sec)
mysql> SELECT * FROM t8;
+----+------+
| pk | s |
+----+------+
| 1 | AAA |
| 2 | BBB |
| 3 | CCC |
| 4 | DDD |
| 5 | EEE |
+----+------+
5 rows in set (0.00 sec)
mysql>
ジョブ実行後、ターゲットPostgreSQLでデータを確認
db1=> SELECT * FROM t8;
pk | s | _cdatasync_deleted
----+-----+--------------------
1 | AAA | f
2 | BBB | f
3 | CCC | f
5 | EEE | f
4 | DDD | f
(5 rows)
db1=>
スケジュールを設定して、ジョブ実行を自動化することも可能です。
弊社コーソルはCData パートナーであり、CData Syncの製品販売を行います。加えて、コーソルが得意とするデータベース技術領域を含めたCData Syncの導入、技術支援、サポートを行います。
CData Syncを用いたデータ連携をご検討されている場合は、ぜひコーソルへご相談いただければとと思います。
データベースのレプリケーションにおいては、データベース製品およびレプリケーション製品の両方の知識が必要です。このような知識を持つエンジニアの確保は一般に困難です。弊社のサービスがこの問題のお役に立てると考えております。
また、弊社からCData Syncを見積/購入いただくと、以下のサービスを無償でご提供いたします。
コーソルからデータベース関連製品をご購入いただくと、ORACLE MASTER Platinum 単年取得者数7年連続No.1、2016年6月以降 累計保持者数No.1という指標に裏付けされた高い技術力により、安心して製品を導入/利用いただけます。
ORACLE MASTER Platinumとは、2日間にわたる実技試験により認定されるOracle Database最高難度の資格です。 グローバルで有効な資格であり、海外では"Oracle Certified Master"と呼ばれます。
ORACLE MASTER Platinumとは何か / コーソルはPlatinum取得者数No.1!
Oracle Databaseについても製品販売、製品サポート、製品の導入を行います。また、リモート回線経由でスポット的なDBA実務を行うリモートDBAサービス、コンサルティングやベンダコントロールを含めたOracle Databaseプロフェッショナルサービスを時間制で提供する時間制コンサルサービスも提供しています。
データベース運用保守なら常駐しないリモートDBA
基幹系DB運用支援および製品サポートについては、3拠点体制による24時間365日対応が可能です。
コーソルは、Oracle Databaseをはじめとするデータベース製品に関する深い知識を活かし、多数のデータベース関連製品を取り扱っております。
これらの製品について、販売・導入・運用を様々な形でご支援します。お困りの際はぜひ弊社にお声がけくださいませ。