0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CData Syncを利用したMySQL間のデータベースレプリケーション -インストールとフルロード-

Last updated at Posted at 2025-01-05

はじめに

CData Syncを利用してMySQL間のデータベースレプリケーションを実施してみました。

今回は、MySQLをデータソースに選択している上で、レプリケーションの種類として[標準(個別設定)]を利用しているため、フルロードのレプリケーションになっています。

※2025/01時点では、MySQLをデータソースとして差分レプリケーションを実現するためには、CDC(変更データキャプチャ)機能を利用する必要があるようです。
https://www.cdata.com/jp/sync/connections/#sources
https://cdn.cdata.com/help/ASK/jp/sync/Change-Data-Capture.html
https://www.cdata.com/jp/blog/db-cdc-sync

構成 ※AWS環境

EC2のWindows ServerにMySQLとCData Syncを導入し、RDSのMySQLにレプリケーションを行います。

・EC2
Windows Server 2019
MySQL 8.0.40
CData Sync 24.3.9121

・RDS
MySQL 8.0.39

なお、CData Syncのライセンスは、30日間無償の評価版ライセンスを利用しています。

実施内容

ここからは下記の流れで手を動かしていきます。

1.CData Syncの導入
2.コネクタの設定
3.ジョブの設定
4.ジョブの実行

なお、事前にMySQLを導入したEC2のWindows ServerとRDSのMySQLを準備しています。
データソース側MySQLに準備したcdatatestというデータベースにて、yakinikuというテーブルを作成しました。
上記テーブルを同期先側MySQLに準備したcdatatest2というデータベースにレプリケーションしていきます。

1.CData Syncの導入

まず、下記のサイトで必要事項を入力し、インストーラと評価版のライセンスキーをメールで送付してもらいます。
https://www.cdata.com/jp/sync/download/

image.png

送付されたインストーラをWindows Serverに用意し、インストーラを実行します。

image.png

契約書への同意やインストール先、コンポーネント、スタートメニューフォルダの選択を既定の設定で進み、インストールを完了させます。

image.png

※CData Syncインストール後は、Windows版では規定でサービスとして構成されています。

image.png

インストール後は下記のURLにアクセスします。
http://localhost:8181/

管理ユーザの作成を促されるため、ユーザとパスワードを入力し作成します。

image.png

管理ユーザ作成後は、ユーザが正常に作成された旨の表示がされ、ログイン画面に移行するため、作成したユーザでログインします。

ログイン後は、ライセンス認証を行います。
[設定]のライセンスタブにて、[+ライセンスを追加]に進みます。

image.png

名前やメールアドレス、プロダクトキー(メールで送付されたライセンスキー)を入力し、利用規約に同意したうえで、入力情報の[保存]を行います。

image.png

ライセンス認証が行われると、[設定]のライセンスタブにて、有効期限やライセンスキー、バージョンなどの情報を確認することができます。

2.コネクタの設定

各データベースへのコネクタ(接続)を設定していきます。
[接続]にて、[+接続を追加]に進みます。

image.png

まずは、データソース側のコネクタを作成するため、データソースタブにて対象となるMySQLを検索・選択します。

image.png

設定タブにて、接続名やサーバ、認証方法、ユーザ、データベースなどを入力し、[作成およびテスト]を行います。
※データソースとなるMySQLコネクタの設定内容の詳細は下記URLのマニュアルに記載があります。
https://cdn.cdata.com/help/ASK/jp/sync/MySQL-Source.html

image.png

image.png

コネクタの作成とテストが完了すると、一覧に作成したコネクタが表示されます。

image.png

次は、同期先側のコネクタを作成するため、同期先タブにて対象となるMySQLを検索・選択した上で、設定内容を入力し、[作成およびテスト]を行います。
※同期先となるMySQLコネクタの設定内容の詳細は下記URLのマニュアルに記載があります。
https://cdn.cdata.com/help/ASK/jp/sync/MySQL-Destination.html

image.png

image.png

コネクタの作成とテストが完了すると、一覧に作成したコネクタが表示されます。

image.png

3.ジョブの設定

データベースレプリケーションを行うジョブを作成していきます。
[ジョブ]にて、[+ジョブを追加]-[新しいジョブを追加]に進みます。

image.png

ジョブの名前やデータソースと同期先のコネクタ、レプリケーションの種類を入力し、[ジョブを追加]を行います。
※"はじめに"にて記載したように、今回は、MySQLをデータソースに選択している上に、レプリケーションの種類として[標準(個別設定)]を選択するため、フルロードのレプリケーションになっています。

image.png

ジョブの作成が完了すると、一覧に作成したジョブが表示されます。

image.png

次に、ジョブにタスクを追加していきます。
一覧から対象のジョブに進み、タスクタブにて[+タスクを追加]に進みます。

image.png

対象のデータベースを選択した上で、レプリケーションの対象となるテーブルを選択し、[タスクを追加(n)]を行います。

image.png

タスクの追加が完了すると、一覧に追加したタスクが表示されます。

image.png

4.ジョブの実行

作成したジョブを実行していきます。
一覧から対象のジョブを選択し、タスクタブにて対象のタスクにチェックを付けたうえで、[▷実行]を行います。

image.png

実行が完了すると、実行のステータスや実行日時、処理時間、影響レコード数が表示されます。

image.png

また、ジョブのジョブ履歴タブでも実行内容を確認できます。

image.png

ジョブの実行が完了したため、実際にMySQLのデータベースを確認しました。
下記のように、データソース側のcdatatestデータベースのyakinikuテーブルが同期側のcdatatest2データベースにレプリケーションされていました。

<データソース側>
mysql> use cdatatest;
Database changed

mysql> SHOW TABLES;
+---------------------+
| Tables_in_cdatatest |
+---------------------+
| yakiniku            |
+---------------------+
1 row in set (0.42 sec)

mysql> select * from yakiniku;
+----+------+
| id | name |
+----+------+
|  1 | beef |
|  2 | pork |
+----+------+
2 rows in set (0.19 sec)
<同期先側 - レプリケーション前>
mysql> use cdatatest2;
Database changed

mysql> SHOW TABLES;
Empty set (0.02 sec)
<同期先側 - レプリケーション後>
mysql> use cdatatest2;
Database changed

mysql> SHOW TABLES;
+----------------------+
| Tables_in_cdatatest2 |
+----------------------+
| yakiniku             |
+----------------------+
1 row in set (0.00 sec)

mysql> select * from yakiniku;
+----+------+
| id | name |
+----+------+
|  1 | beef |
|  2 | pork |
+----+------+
2 rows in set (0.00 sec)

以上がジョブの手動実行になります。

スケジューリング実行も実施してみます。
ジョブの概要タブにて、スケジュールの[設定]に進みます。

image.png

ジョブ実行の間隔と毎時毎分を入力し、[保存]を行います。

image.png

スケジューリングが完了すると、設定した内容でスケジュールがオンになっていることや次回実行の日時が表示されます。

image.png

設定した実行時間に、自動でジョブが実行されていました。

image.png

おわりに

初めてデータベースレプリケーションを行いましたが、分かりやすい公式マニュアルやハンズオン資料があったため、比較的簡単に動作を検証することができました。

次は、CData SyncのCDC機能を利用したMySQL間の差分レプリケーションを記事にする予定です。

下記は、本文記載外の参考URLです。
https://cdn.cdata.com/help/ASK/jp/sync/index.html
https://www.cdata.com/jp/blog/cdatasync-handson-2023

※追記 2025/01/08

CDC機能を利用したMySQL間の差分レプリケーションを記事にしました。
https://qiita.com/haflaf7843/items/65e5c7cb7c6828d2b0fd

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?