株式会社コーソル

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

技術ブログ

CData SyncによるOracle → MySQL 異種DB 準リアルタイム データ連携

Oracle ACE Proの渡部です。

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

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

CData Syncとは

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

以下の特徴を持ちます。

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

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

  • CData Sync
    • v24.3 (24.3.9121.0)
    • クロスプラットフォーム版(Java版、オンプレミス / セルフホスティング)
    • systemdサービスとしてCData Syncを起動・運用
  • ソース データベース(同期元データベース)
    • Oracle Database 19c Standard Edition 2 (19.22)
    • データベース: 非CDB構成 / サービス名: n1922a
    • 稼働ホスト: Oracle Linux 8
    • CData Syncコネクタ: Oracle Connector 24.0.9175.0
  • ターゲット データベース(同期先データベース)
    • MySQL 8.0.37
    • 稼働ホスト: Oracle Linux 8
    • CData Syncコネクタ: 24.0.9106.0
  • 差分レプリケーション方式: CDC (Oracle LogMiner)

CData Syncのインストール

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

ソースOracle関連の作業

ソースOracleについて、以下の作業を実行する必要があります。

  • CData SyncのOracle Connectorを導入
  • 導入したOracle Connectorをcdatasyncサービスがロードするように設定
  • ソースOracleの設定
  • CData SyncでソースOracleへの接続を構成
  • ソースOracleのユーザー/データの準備

上記作業の詳細については、以下の記事をご覧ください。

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

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

# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.37 MySQL Community Server - GPL

Copyright (c) 2000, 2024, 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> CREATE DATABASE db1;
Query OK, 1 row affected (0.04 sec)

mysql> CREATE USER u1@'%' identified by 'Pass123-';
Query OK, 0 rows affected (0.03 sec)

mysql> GRANT ALL ON db1.* TO u1@'%';
Query OK, 0 rows affected (0.02 sec)

mysql> exit
Bye
#

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

CData Syncの管理コンソールで、ターゲットMySQLへの接続「tgt_my」を構成します。

  1. 「接続」をクリック

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

  1. 「同期先」をクリック

  1. 検索ボックスに"mysql"と入力しENTER →「MySQL」が表示されるので、「MySQL」の「接続を設定」をクリック

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

  1. 「接続」をクリックすると、構成済みの接続一覧を確認できます。

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

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

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

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

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

  1. 「名前」にジョブ名を入力

  1. データソースにソースOracleに対応する接続「src_ora」を選択

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

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

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

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

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

  1. スキーマに「u1」を選択します。

  1. ターゲット表として、「[U1].[T1]」を選択し、「タスクを追加」をクリックします。

ジョブの初回実行

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

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

初回実行であるため、ターゲットMySQLに対してテーブルが作成され、ソースOracleのデータが連携されます(レプリケーションされます)。

# mysql -D db1 -u u1 -pPass123-
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 16
Server version: 8.0.37 MySQL Community Server - GPL

Copyright (c) 2000, 2024, 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> SELECT * FROM T1;
+---+------+----------------------------------------+
| N | S    | _cdatasync_deleted                     |
+---+------+----------------------------------------+
| 1 | AAA  | 0x00                                   |
| 2 | BBB  | 0x00                                   |
| 3 | CCC  | 0x00                                   |
+---+------+----------------------------------------+
3 rows in set (0.00 sec)

mysql>

なお、_cdatasync_deleted列は、ソースデータベースにおけるデータの削除状況を示すフラグのような役割をする列です。

ジョブの2回目実行

ソースOracleのデータにデータを追加してから、ジョブを実行します。 ジョブの実行手順は初回実行と同じです。 2回目の実行であるため、前回のジョブ実行からの差分だけがデータ連携(レプリケーション)されます。

ソースOracleのデータにデータを追加

SQL> insert into u1.t1 VALUES(4,'DDD');

1 row created.

SQL> insert into u1.t1 VALUES(5,'EEE');

1 row created.

SQL> commit;

Commit complete.

SQL> SELECT * FROM u1.t1;

         N S
---------- ----------------
         1 AAA
         2 BBB
         3 CCC
         4 DDD
         5 EEE

SQL>

ジョブ実行後、ターゲットMySQLでデータを確認

mysql> SELECT * FROM T1;
+---+------+----------------------------------------+
| N | S    | _cdatasync_deleted                     |
+---+------+----------------------------------------+
| 1 | AAA  | 0x00                                   |
| 2 | BBB  | 0x00                                   |
| 3 | CCC  | 0x00                                   |
| 4 | DDD  | 0x00                                   |
| 5 | EEE  | 0x00                                   |
+---+------+----------------------------------------+
5 rows in set (0.00 sec)

mysql>

ジョブ実行の自動化

スケジュールを設定して、ジョブ実行を自動化することも可能です。 作業の詳細については、以下の記事をご覧ください。

なぜコーソルから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 SQL Server
  • MaxGuage
  • Spotlight for Oracle / Spotlight for SQL Server
  • 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 他多数

カテゴリー

アーカイブ