すべてのプロダクト
Search
ドキュメントセンター

:MySQL からのデータ同期のためのデータソースの構成

最終更新日:Apr 10, 2025

MySQL から AnalyticDB for MySQL にデータをリアルタイムで同期する前に、このトピックで説明されている操作を参照してデータソースを構成できます。データソースの構成には、ネットワーク環境、ホワイトリスト、および権限が含まれます。ソース MySQL データソースと宛先 AnalyticDB for MySQL データソースを構成する必要があります。

前提条件

データソースを構成する前に、次の操作が実行されていることを確認してください。

  • データソースを準備する: MySQL データベースと AnalyticDB for MySQL インスタンスが準備されています。

  • リソースの計画と準備: Data Integration 専用のリソースグループが購入され、構成されています。詳細については、「リソースの計画と構成」をご参照ください。

  • ネットワーク環境の評価と計画: データ統合を実行する前に、ビジネス要件に基づいてネットワーク接続方法を選択し、その方法を使用してデータソースを Data Integration 専用のリソースグループに接続する必要があります。データソースと Data Integration 専用のリソースグループが接続された後、このトピックで説明されている操作を参照して、vSwitch やホワイトリストなどのアクセス設定を構成できます。

    • データソースと Data Integration 専用のリソースグループが同じリージョンと仮想プライベートクラウド (VPC) に存在する場合、それらは自動的に接続されます。

    • データソースと Data Integration 専用のリソースグループが異なるネットワーク環境に存在する場合は、VPN ゲートウェイなどの方法を使用して、データソースとリソースグループを接続する必要があります。

背景情報

ソースから宛先にデータを同期する前に、データソースと Data Integration 専用のリソースグループが接続されていることを確認してください。さらに、アカウントを作成し、そのアカウントにデータソースへのアクセスを承認する必要があります。

  • データソースのホワイトリストを構成する

    データソースと Data Integration 専用のリソースグループが同じ VPC に存在する場合は、Data Integration 専用のリソースグループの CIDR ブロックをデータソースのホワイトリストに追加する必要があります。これにより、Data Integration 専用のリソースグループがデータソースにアクセスできるようになります。Network connectivity

  • アカウントを作成し、アカウントに権限を付与する

    データ同期プロセス中に、データソースへのアクセス、ソースからのデータの読み取り、および宛先へのデータの書き込みに使用できるアカウントを作成する必要があります。

  • バイナリロギング機能を有効にする

    ソースデータソースが MySQL データベースの場合は、バイナリロギング機能を有効にする必要があります。バイナリログは、すべてのテーブルスキーマの変更とテーブルデータの変更を記録します。CREATE や ALTER などのステートメントを実行して、テーブルスキーマに対する操作を実行できます。INSERT、UPDATE、DELETE などのステートメントを実行して、テーブルデータに対する操作を実行できます。バイナリログを使用して、データベースの変更履歴の表示、増分データのバックアップとデータベース内のデータの復元、プライマリデータベースからセカンダリデータベースへのデータのレプリケーションを行うことができます。

    バイナリログの形式:

    • ステートメント: SQL ステートメントベースのレプリケーション。この形式のバイナリログは、データエントリの変更に実行された SQL ステートメントを記録します。

    • 行: 行ベースのレプリケーション。この形式のバイナリログは、行のデータエントリに関する変更の詳細のみを記録します。

    • 混合: 混合モードでのレプリケーション。このモードは、ステートメント形式と行形式を組み合わせたものです。ほとんどの場合、ステートメント形式のバイナリログは、関数など、データエントリの変更に実行された SQL ステートメントを記録するために使用されます。この形式のバイナリログを使用してプライマリデータベースからセカンダリデータベースへのデータレプリケーションを実装できない場合は、行形式に切り替えます。MySQL は、実行される各 SQL ステートメントに基づいて、使用する形式を決定します。

制限事項

  • MySQL からのデータのリアルタイム同期は、MySQL バイナリログへのリアルタイムサブスクリプションに基づいて実行されます。MySQL からのリアルタイムデータ同期は、MySQL 5.X または 8.X を実行する ApsaraDB RDS for MySQL データソースのみをサポートします。MySQL からのリアルタイムデータ同期は、MySQL を実行する PolarDB-X 1.0 データソースをサポートしていません。MySQL を実行する PolarDB-X 1.0 データソースからデータをリアルタイムで同期する場合は、「DRDS (PolarDB-X 1.0) データソース」を参照して、PolarDB-X 1.0 データソースを追加し、そのデータソースのリアルタイム同期ノードを構成できます。

  • リアルタイム同期機能を使用して、XA ROLLBACK ステートメントが実行されたデータを同期することはできません。XA PREPARE ステートメントが実行されたトランザクションデータについては、リアルタイム同期機能を使用してデータを宛先に同期できます。後で XA ROLLBACK ステートメントがデータに対して実行された場合、データへのロールバックの変更は宛先に同期されません。同期するテーブルに XA ROLLBACK ステートメントが実行されたテーブルが含まれている場合は、XA ROLLBACK ステートメントが実行されたテーブルを削除し、削除したテーブルを再度追加して、ソースの完全データを初期化し、増分データを同期する必要があります。

  • 現在のワークスペースとは異なる Alibaba Cloud アカウントに属する ApsaraDB RDS for MySQL インスタンスを MySQL データソースとして DataWorks に追加し、MySQL データソースのデータ同期ノードを構成する場合、Data Integration 専用のリソースグループのみを使用してノードを実行できます。共有リソースグループ for Data Integration を使用してノードを実行する場合、リソースグループは MySQL データソースのデータにアクセスできません。

手順

  1. MySQL データベースのホワイトリストを構成します。

    専用リソースグループが存在する VPC の CIDR ブロックを MySQL データベースのホワイトリストに追加します。

    1. Data Integration 専用のリソースグループの Elastic IP アドレス (EIP) と CIDR ブロックを表示して記録します。

      1. DataWorks コンソールにログインします。

      2. 左側のナビゲーションペインで、[リソースグループ]をクリックします。

      3. [専用リソースグループ]タブで、Data Integration 専用のリソースグループを見つけ、[アクション] 列の [情報を表示]をクリックします。

      4. [専用リソースグループ] ダイアログボックスで、[eipaddress] パラメーターと [CIDR ブロック]パラメーターの値を表示して記録します。

      5. [専用リソースグループ]タブで、Data Integration 専用のリソースグループを見つけ、[アクション] 列の [ネットワーク設定]をクリックします。

      6. 表示されるページの [VPC バインディング]タブで、Data Integration 専用のリソースグループが関連付けられている [vswitch の CIDR ブロック]を表示して記録します。

    2. 専用リソースグループの EIP と CIDR ブロックを MySQL データベースのホワイトリストに追加します。

  2. アカウントを作成し、アカウントに権限を付与します。

    MySQL データベースにログインするためのアカウントを作成する必要があります。SELECT、REPLICATION SLAVE、および REPLICATION CLIENT 権限をアカウントに付与する必要があります。

    1. アカウントを作成します。

      詳細については、「MySQL データベースにアクセスするためのアカウントの作成」をご参照ください。

    2. アカウントに権限を付与します。

      次のコマンドを実行して、アカウントに権限を付与できます。または、SUPER 権限をアカウントに付与することもできます。具体的なステートメントを実行するときは、Account for data synchronization を作成したアカウントに置き換えます。

      -- CREATE USER 'Account for data synchronization'@'%' IDENTIFIED BY 'Password'; // データの同期に使用するアカウントを作成し、パスワードを設定して、ホストからデータベースにアクセスできるようにします。% はホストを示します。
      GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'Account for data synchronization'@'%'; // SELECT、REPLICATION SLAVE、および REPLICATION CLIENT 権限をアカウントに付与します。

      *.* は、同期アカウントにすべてのデータベースのすべてのテーブルに対する上記の権限が付与されていることを示します。また、指定されたデータベースの指定されたテーブルに対する上記の権限を同期アカウントに付与することもできます。たとえば、user テーブルの test データベースに対する上記の権限をアカウントに付与するには、次のステートメントを実行します。GRANT SELECT, REPLICATION CLIENT ON test.user TO 'Account for data synchronization'@'%';

      説明

      REPLICATION SLAVE 権限はグローバル権限です。指定されたデータベースの指定されたテーブルに対するこの権限を同期アカウントに付与することはできません。

  3. MySQL データベースのバイナリロギング機能を有効にします。

    バイナリロギング機能が有効になっているかどうかを確認し、バイナリログの形式を照会するには、次の手順を実行します。

    • 次のステートメントを実行して、バイナリロギング機能が有効になっているかどうかを確認します。

      show variables like "log_bin";

      返された結果に ON が表示されている場合、バイナリロギング機能は有効になっています。

    • セカンダリデータベースを使用してデータを同期する場合は、次のステートメントを実行して、バイナリロギング機能が有効になっているかどうかを確認します。

      show variables like "log_slave_updates";

      返された結果に ON が表示されている場合、セカンダリデータベースのバイナリロギング機能は有効になっています。

    返された結果が上記の結果と異なる場合は、MySQL ドキュメントの説明に従ってバイナリロギング機能を有効にします。

    次のステートメントを実行して、バイナリログの形式を表示します。

    show variables like "binlog_format";

    返された結果:

    • ROW: バイナリログの形式は行です。

    • STATEMENT: バイナリログの形式はステートメントです。

    • MIXED: バイナリログの形式は混合です。

次のステップ

データソースが構成されると、ソース、宛先、および Data Integration 専用のリソースグループが接続されます。その後、Data Integration 専用のリソースグループを使用してデータソースにアクセスできます。ソースと宛先を DataWorks に追加し、ソリューションを作成するときにデータ同期ソリューションに関連付けることができます。

データソースを追加する方法の詳細については、「MySQL データソース」をご参照ください。