株式会社コーソル

コーソルDatabaseエンジニアのブログ

技術ブログ

MySQL → PostgreSQL 異種DB 準リアルタイム データ連携 (CData Sync v25.1)

Oracle ACE Proの渡部です。

本記事では、CData Sync を用いて、MySQL から PostgreSQL へのニアリアルタイム データ連携(論理レプリケーション)を構成する手順についてご説明します。

なお、弊社コーソルはCData パートナーであり、CData Syncの販売および導入、運用やトライアルの支援が可能です。

CData Syncとは

CData Syncは、非常に多くのデータベース製品、SaaS、アプリケーション、APIに対応したデータ連携ツールです。

以下の特徴を持ちます。

  • 同期元として400種以上の製品およびサービスに、同期先として30種程度のデータベース製品に対応
  • データベースからのChange Data Captureと、異種データベース間のロジカルレプリケーションに対応した製品としては、とても低価格
  • オンプレミス環境およびクラウド環境に対応
  • WebベースのGUI管理コンソールを用いて、お客様自身でデータレプリケーションを簡単に構成可能
  • 差分レプリケーション機能を持ち、サイズが非常に大きいデータでもデータレプリケーション可能。
  • Oracle Database、Microsoft MySQL、PostgreSQL、MySQL、MariaDB、IBM Db2、IBM InformixからのChange Data Captureに対応
  • エージェントレス構成であるため、既存システムへ最小限の影響で導入可能
  • 方式がロジカルレプリケーションであるため、レプリケーション中にデータを変換したり特定のSQLを伝搬対象から除外したりすることが可能
  • 組込みスケジュール機能によるレプリケーションの自動化が可能

弊社からCData Syncを見積/購入いただくと、以下のサービスを無償でご提供いたします。

  • お客様構成にあわせた簡易導入手順書の提供
  • CData Sync 30日間トライアルライセンスを使用したトライアルの支援
  • トライアル実施時に参考となるチェックリストの提供
  • CData Sync導入後の運用支援(各種Q&A、Web会議、設定変更作業など)

対象ソフトウェアおよび環境

  • CData Sync
    • v25.1 (25.1.9242.0)
    • クロスプラットフォーム版(Java版、オンプレミス / セルフホスティング)
    • systemdサービスとしてCData Syncを起動・運用
  • ソース データベース(同期元データベース)
    • MySQL 8.4.5
    • 稼働ホスト: Oracle Linux 8
    • CData Syncコネクタ: 24.0.9232.0
  • ターゲット データベース(同期先データベース)
    • PostgreSQL 16 (16.3)
    • 稼働ホスト: Oracle Linux 8
    • CData Syncコネクタ: 24.0.9202.0
  • 差分レプリケーション方式: バイナリログ
    • binlog_format = row (デフォルト)
    • binlog_row_image = full (デフォルト)

CData Syncのインストール

以下の記事でご紹介しているため、こちらをご覧ください。

ソースMySQLの設定

CDCに、MySQLの変更データキャプチャ機能を使用するため、このための設定を行います。

  1. バイナリログの構成がCData Sync CDCの要件を満たしていることを確認します。
[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>
  1. レプリケーション対象となるテーブルを準備します。 ここでは、データベース db1 にテーブル t8 を構成するとします。
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>

CData SyncでソースMySQLへの接続を構成

ここでは、別途作成した管理権限を持つユーザーadminで接続し、データベースに対する変更をキャプチャすることにしています。

  1. 「接続」をクリック

  1. 「接続を追加」をクリック

  1. 上部タブで「データソース」が選択されていることを確認したうえで、検索ボックスに"mysql"と入力しENTER →「MySQL」が表示されるので、「MySQL」の「接続を設定」をクリック

  1. ソースMySQLに関する項目を入力し、「作成およびテスト」をクリック

ターゲットPostgreSQLのデータベース/ユーザーの準備

ターゲットデータベース側で、データの連携先となるデータベースとユーザーを準備します。 ここでは、データベースdb1およびユーザーu1を作成しています。以下の手順に従います。

CData SyncでターゲットPostgreSQLへの接続を構成

CData Syncの管理コンソールで、ターゲットPostgreSQLへの接続「tgt_pg」を構成します。以下の手順に従います。

弊社からCData Syncを見積/購入いただくと、以下のサービスを無償でご提供いたします。

  • お客様構成にあわせた簡易導入手順書の提供
  • CData Sync 30日間トライアルライセンスを使用したトライアルの支援
  • トライアル実施時に参考となるチェックリストの提供
  • CData Sync導入後の運用支援(各種Q&A、Web会議、設定変更作業など)

CData Syncでジョブ(レプリケーションジョブ)とタスクを作成

CData Syncの管理コンソールで、でジョブ(レプリケーションジョブ)とタスクを作成します。

  1. 「ジョブ」をクリック

  1. 「ジョブを追加」をクリック

  1. 「新しいジョブを追加」をクリック

  1. 「名前」にジョブ名を入力して、データソースにソースMySQLに対応する接続「src_my」を選択

  1. 「変更データキャプチャ」を選択します。

  1. 同期先にターゲットPostgreSQLに対応する接続「tgt_pg」を選択

  1. 「ジョブを追加」をクリック。ジョブが作成されました。

  1. 「タスク」をクリック

  1. 「タスクを追加」をクリック

  1. 検索ボックスに「t8」を入力し、表示されたテーブル一覧から「[db1].[t8]」を選択し、「タスクを追加」をクリックします。

  1. 「[db1].[t8]」を選択します。

  1. 「同期先情報」の「Edit Settings」をクリックします。

  1. 「スキーマ名」に「u1」を選択し、「保存」をクリックします。

  1. 「my2pg」をクリックし、ジョブ「my2pg」の画面に遷移します。

ジョブの初回実行

作成したジョブを実行します。

  1. ジョブ「my2pg」の画面で「実行」をクリックします。

初回実行であるため、ターゲット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列は、ソースデータベースにおけるデータの削除状況を示すフラグのような役割をする列です。

ジョブの2回目実行

ソース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 Syncを購入すべきなのか

弊社コーソルはCData パートナーであり、CData Syncの製品販売を行います。加えて、コーソルが得意とするデータベース技術領域を含めたCData Syncの導入、技術支援、サポートを行います。

CData Syncを用いたデータ連携をご検討されている場合は、ぜひコーソルへご相談いただければとと思います。

  • 製品販売 : CData Syncの販売
  • 製品導入 : CData Syncの設計および導入
  • 製品サポート: CData Syncの製品サポート
  • 技術支援 : トライアル支援、運用支援

コーソルからCData Syncを購入いただくと

データベースのレプリケーションにおいては、データベース製品およびレプリケーション製品の両方の知識が必要です。このような知識を持つエンジニアの確保は一般に困難です。弊社のサービスがこの問題のお役に立てると考えております。

また、弊社からCData Syncを見積/購入いただくと、以下のサービスを無償でご提供いたします。

  • お客様構成にあわせた簡易導入手順書の提供
  • CData Sync 30日間トライアルライセンスを使用したトライアルの支援
  • トライアル実施時に参考となるチェックリストの提供
  • CData Sync導入後の運用支援(各種Q&A、Web会議、設定変更作業など)

多数のOracle関連書籍を執筆

コーソルはORACLE MASTER Platinum 累計取得者数No.1

コーソルからデータベース関連製品をご購入いただくと、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サービスを提供可能

Oracle Databaseについても製品販売、製品サポート、製品の導入を行います。また、リモート回線経由でスポット的なDBA実務を行うリモートDBAサービス、コンサルティングやベンダコントロールを含めたOracle Databaseプロフェッショナルサービスを時間制で提供する時間制コンサルサービスも提供しています。

データベース運用保守なら常駐しないリモートDBA

基幹系DB運用支援および製品サポートについては、3拠点体制による24時間365日対応が可能です。

コーソルは多数のデータベース関連製品を取り扱っています

コーソルは、Oracle Databaseをはじめとするデータベース製品に関する深い知識を活かし、多数のデータベース関連製品を取り扱っております。

  • オラクル製品全般 (Oracle Database, Oracle Cloud, Oracle GoldenGate, Oracle WebLogic Serverなど)
  • Dbvisit Standby
  • SharePlex for Oracle
  • CData Sync
  • Qlik Replicate
  • Solarwinds Database Performance Analyzer (DPA)
  • Toad for Oracle / Toad for MySQL
  • MaxGuage
  • Spotlight for Oracle / Spotlight for MySQL
  • SIOS LifeKeeper
  • Delphix
  • PISO
  • D'amo
  • Nutanix Database Service (NDB)

これらの製品について、販売・導入・運用を様々な形でご支援します。お困りの際はぜひ弊社にお声がけくださいませ。

プロフィール

On7tWW6m1Ul4

渡部 亮太

・Oracle ACE
・AWS Certified Solutions Architect - Associate
・ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

カテゴリー

アーカイブ