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

ApsaraDB RDS:ネイティブレプリケーションインスタンスの使用

最終更新日:Jun 23, 2026

本記事では、ApsaraDB RDS for MySQL のネイティブレプリケーションインスタンスを作成またはアップグレードする方法について説明します。また、この機能の権限と制限事項についても解説します。

前提条件

新しいネイティブレプリケーションインスタンスを作成、または既存のインスタンスをスペックアップするには、インスタンスが次の要件を満たす必要があります。インスタンスの詳細は、基本情報 ページで確認できます。

  • データベースバージョン: MySQL 5.7 (マイナーバージョン 20240930 以降) または MySQL 8.0 (マイナーバージョン 20250531 以降)

  • プロダクトシリーズ: Basic Edition

  • 課金方法:サブスクリプション、従量課金

    説明

    Serverless ネイティブレプリケーションインスタンスを使用するには、まず従量課金インスタンスを作成してネイティブレプリケーションを有効にした後、課金方法を Serverless に変更する必要があります。

  • サポート対象リージョン: 中国 (上海)、中国 (北京)、中国 (深圳)、中国 (広州)、中国 (成都)

    重要

    ApsaraDB RDS のネイティブレプリケーションは、現在上記のリージョンでのみ利用可能です。他のリージョンでのサポートは、将来的に追加される予定です。他のリージョンでこの機能が必要な場合は、チケットを送信してください。

課金

  • 新しいインスタンスの購入時にネイティブレプリケーションを有効にした場合、新しいインスタンスには標準料金が課金されます。既存のインスタンスをネイティブレプリケーションインスタンスにアップグレードしても、追加料金は発生しません。

  • ApsaraDB RDS for MySQL インスタンスへのフルデータインポート中に、自己管理データベースのバックアップを Object Storage Service (OSS) にアップロードしてから RDS にダウンロードする場合、バックアップが OSS に保存されている間、OSS ストレージ料金が発生します。

ネイティブ レプリケーションの権限

ApsaraDB RDS for MySQL ネイティブレプリケーションインスタンスの特権アカウントは、標準の ApsaraDB RDS for MySQL インスタンスでは利用できない権限を持っています。

レプリケーションコマンドの権限

ネイティブレプリケーションインスタンスでは、特権アカウントは以下のネイティブ MySQL レプリケーションコマンドを実行できます。

  • ソースデータベースとレプリカデータベース間のレプリケーションを設定する: CHANGE MASTER TO。詳細については、「CHANGE MASTER TO」をご参照ください。

  • レプリケーションプロセスを開始する: START SLAVE;。詳細については、「START SLAVE」をご参照ください。

  • レプリケーションプロセスを停止する: STOP SLAVE;。詳細については、「STOP SLAVE」をご参照ください。

  • レプリカデータベースの状態をリセットして、ソースデータベースからのレプリケーションプロセスを再開する: RESET SLAVE;。詳細については、「RESET SLAVE」をご参照ください。

パラメーター変更権限

ネイティブレプリケーションインスタンスでは、特権アカウントは以下の SQL ステートメントを実行して実行時パラメーターを変更できます。

  • データベースサーバーの読み取り専用モードを設定します。

    SET GLOBAL read_only = ON/OFF;

    ON に設定すると、サーバーは読み取り専用モードになります。OFF に設定すると、読み取り専用モードが無効になり、読み書き操作が許可されます。

  • 現在のセッションで実行された SQL ステートメントをバイナリログに書き込むかどうかを制御します。

    SET SESSION sql_log_bin = ON/OFF;

    ON に設定すると、セッション内の SQL 操作がバイナリログに記録されます。OFF に設定すると、セッションで実行された SQL ステートメントはバイナリログに記録されません。

  • 次のグローバルトランザクション識別子 (GTID) を設定します。

    SET SESSION GTID_NEXT = "your_gtid_value";

インスタンス移行や仕様変更などのメンテナンス操作中、ネイティブレプリケーションコマンドの実行権限とパラメーター変更権限は一時的に取り消されます。これはインスタンスのレプリケーションプロセスには影響しません。メンテナンス作業が完了すると、システムは権限を復元します。

注意事項

ApsaraDB RDS for MySQL ネイティブレプリケーションインスタンスには、以下の制限事項があります。

制限事項

  • インスタンスは読み取り専用になります。

  • メジャーバージョンアップグレードはサポートされていません。

  • プロダクトシリーズのアップグレード (例:Basic Edition から High-availability Edition または Cluster Edition へ) はサポートされていません。

  • Virtual Private Cloud (VPC) の切り替えはサポートされていません。

  • データベースとテーブルのリカバリーはサポートされていません。

  • 既存のインスタンスをネイティブレプリケーションインスタンスにアップグレードする際、約 30 秒の一時的な接続障害が発生する可能性があります。この操作はオフピーク時間に実行し、アプリケーションに再接続メカニズムが備わっていることを確認することを推奨します。

権限の制限

  • 特権アカウントの制限

    ネイティブレプリケーションに必要な一部の SUPER 権限は、ApsaraDB RDS for MySQL インスタンスの特権アカウントにのみ付与されます。CHANGE MASTERSTART SLAVE などのネイティブコマンドは、特権アカウントのみが実行できます。

  • レプリケーション権限許可リスト

    ネイティブレプリケーションが外部のバイナリログイベントを適用する際、まず権限をチェックします。RDS は以下のリストを超える権限を必要とする操作を適用せず、レプリケーションが停止します。

    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, 
    DROP, RELOAD, PROCESS, REFERENCES, INDEX,
    ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES,
    LOCK TABLES, EXECUTE, REPLICATION SLAVE,
    REPLICATION CLIENT, CREATE VIEW, SHOW VIEW,
    CREATE ROUTINE, ALTER ROUTINE, CREATE USER, 
    EVENT, TRIGGER ON *.* TO XXX; 
  • システムデータベースの制限

    mysqlsysinformation_schemaperformance_schema__recyclebin__ を含む、システムデータベースに対するすべての操作は無視されます。

    説明

    RDS は、CREATE USER や GRANT など、間接的にシステムデータベースを変更する操作を無視しません。ただし、SQL ステートメントはレプリケーション権限許可リストに準拠する必要があります。GRANT super on *.* to xxx; のような権限昇格操作は、レプリケーションを停止させます。

  • GTID の制限

    MySQL のネイティブレプリケーション構成では、ソースデータベースとレプリカデータベースは同じグローバルトランザクション識別子 (GTID) モードを使用する必要があり、両方とも有効または両方とも無効にする必要があります。ApsaraDB RDS for MySQL は GTID モードの無効化をサポートしていません。したがって、ApsaraDB RDS for MySQL インスタンスを外部ソースデータベースのレプリカとして使用する場合、互換性のために外部ソースデータベースで GTID モードを有効にする必要があります。

    レプリケーションを設定する前に、外部ソースデータベースで SHOW VARIABLES LIKE 'gtid_mode'; を実行して GTID モードが有効になっているかを確認します。有効になっていない場合は、SET GLOBAL gtid_mode=ON; を実行して有効にします。

ネイティブレプリケーションインスタンスへのアップグレード

新規インスタンス

新しい ApsaraDB RDS for MySQL インスタンスを購入する (標準作成ページ) 際、ページ下部の その他の設定 を展開し、ネイティブレプリケーション スイッチを有効にします。 なお、ネイティブレプリケーションオプションは、インスタンスが 前提条件 を満たしている場合にのみ表示されます。

既存のインスタンス

重要

既存のインスタンスをネイティブレプリケーションインスタンスにアップグレードする際、約 30 秒の一時的な接続障害が発生する可能性があります。この操作はオフピーク時間に実行し、アプリケーションに再接続メカニズムが備わっていることを確認することを推奨します。

  1. RDS インスタンス リストに移動し、リージョンを選択し、ターゲットインスタンスの ID をクリックします。 ターゲットインスタンスは、前提条件を満たす必要があります。

  2. 左側のナビゲーションバーで ネイティブレプリケーション をクリックし、ページで ネイティブレプリケーションを有効化 をクリックします。

  3. ダイアログボックスの情報を注意深く読み、決定 をクリックします。

    説明

    公式の ApsaraDB RDS サービスアカウントに、ご利用の OSS バケットへのアクセス、およびアカウント内での Elastic Network Interface (ENI) の作成とアタッチを許可していない場合は、対応するチェックボックスを選択して権限を付与してください。

ステップ 2:データレプリケーションの設定

  1. 自己管理データベースに Percona XtraBackup をインストールし、バックアップを実行する

    1. Percona XtraBackup のインストール:

      CentOS へのインストール

      • MySQL 5.7

        wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.29/binary/redhat/8/x86_64/percona-xtrabackup-24-2.4.29-1.el8.x86_64.rpm
        yum localinstall percona-xtrabackup-24-2.4.29-1.el8.x86_64.rpm
      • MySQL 8.0

        wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.35-31/binary/redhat/8/x86_64/percona-xtrabackup-80-8.0.35-31.1.el8.x86_64.rpm
        yum localinstall percona-xtrabackup-80-8.0.35-31.1.el8.x86_64.rpm

      Ubuntu へのインストール

      1. Percona XtraBackup をインストールします。

        • MySQL 5.7

          # 1. Percona リポジトリパッケージをダウンロードします。
          wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb
          
          # 2. リポジトリパッケージをインストールします。
          sudo dpkg -i percona-release_latest.generic_all.deb
          
          # 3. パッケージリストを更新します。
          sudo apt-get update
          
          # 4. Percona XtraBackup をインストールします。
          sudo apt-get install -y percona-xtrabackup-24
        • MySQL 8.0

          # 1. Percona リポジトリパッケージをダウンロードします (前のステップで実行していない場合)。
          wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb
          
          # 2. リポジトリパッケージをインストールします。
          sudo dpkg -i percona-release_latest.generic_all.deb
          
          # 3. パッケージリストを更新します。
          sudo apt-get update
          
          # 4. Percona XtraBackup をインストールします。
          sudo apt-get install -y percona-xtrabackup-80
      2. qpress をインストールします。Ubuntu 用の Percona XtraBackup には qpress が含まれていないため、別途インストールする必要があります。

        sudo apt-get install -y qpress
    2. バックアップを作成します。

      以下の 3 つの圧縮方法は xtrabackup コマンドに基づいており、主に InnoDB ストレージエンジンを使用するインスタンスに適しています。データベースに MyISAM テーブルが含まれている場合は、innobackupex コマンドを使用してください。

      デフォルトの qpress 圧縮

      xtrabackup --backup \
        --host=127.0.0.1 \
        --port=3306 \
        --user=<your_user> \
        --password=<your_password> \
        --stream=xbstream \
        --compress > ./<your_backup.xb>

      QuickLZ 圧縮

      この方法には Percona XtraBackup 8.0.34-29 以前が必要です。詳細については、Percona XtraBackup の公式ドキュメントをご参照ください。

      xtrabackup --backup \
        --host=127.0.0.1 \
        --port=3306 \
        --user=<your_user> \
        --password=<your_password> \
        --stream=xbstream \
        --compress > ./<your_backup_qp.xb>

      外部 ZSTD 圧縮

      xtrabackup --backup \
        --host=127.0.0.1 \
        --port=3306 \
        --user=<your_user> \
        --password=<your_password> \
        --stream=xbstream \
        | zstd -q - > ./<your_backup.xb.zstd>
  2. 完全なデータをインポートし、データレプリケーションを自動的に設定する

    説明

    データをインポートする前に、ネットワーク接続が自己管理 MySQL データベースと ApsaraDB RDS for MySQL インスタンスの間に存在することを確認してください。

    OSS からのダウンロード

    1. 自己管理データベースのバックアップを OSS にアップロードする

      ossutil ツールや OSS SDK など、さまざまなツールを使用してバックアップファイルをアップロードできます。このトピックでは ossutil を例として使用します。

      重要

      送信先の OSS バケットと ApsaraDB RDS for MySQL インスタンスが同じリージョンにあることを確認してください。そうでない場合、RDS は OSS からバックアップファイルを取得できません。

      1. ossutil をインストールします。

        yum install -y unzip
        sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash
        ossutil config
      2. バックアップデータを OSS にアップロードします。

        ossutil -e <your_oss_endpoint> -i <your_accesskey_id> -k <your_accesskey_secret> cp <your_backup_file> oss://<your_bucket_name>/
    2. バックアップファイルを OSS から RDS にインポートし、レプリケーションリンクを自動的に設定する

      1. [RDS インスタンス] リストに移動してリージョンを選択し、宛先インスタンスの ID をクリックします。

      2. 左側のナビゲーションバーで、ネイティブレプリケーション をクリックします。

      3. ネイティブレプリケーションページで、全データのインポート をクリックし、次のパラメーターを設定して、決定 をクリックします。

        カテゴリ

        パラメーター

        説明

        バックアップインポート設定 (必須)

        MySQLバージョン

        システムは 5.7 または 8.0 を自動的に表示します。構成は不要です。

        メソッド

        OSS からインポート を選択します。

        OSS バケット

        自己管理データベースのバックアップファイルが保存されている OSS バケットを選択してください。OSS バケットの詳細については、「ファイルのアップロード」をご参照ください。

        OSS オブジェクト名

        OSS バケットから自己管理データベースのバックアップファイルを選択します。バックアップファイルが OSS バケットのサブディレクトリにある場合は、完全なパス名を手動で入力して検索する必要があります。以下の 3 つのバックアップファイル形式がサポートされています。

        • Percona XtraBackup によって生成された xbstream ファイル。

        • Percona XtraBackup の組み込み QuickLZ 圧縮を使用して生成された _qp.xb ファイル。

        • zstd を使用して圧縮された xbstream ファイルで、.xb.zst ファイル拡張子を持つもの。

        自動レプリケーション設定を有効にすることをお勧めします。システムが以下の構成に基づいてデータレプリケーションリンクを自動的にセットアップします。自動レプリケーション設定を有効にしない場合、完全データをインポートした後、レプリケーションリンクを手動でセットアップする必要があります。

        自動レプリケーション設定 (任意)

        レプリケーション自動構築

        このスイッチをオンにすると、自己管理 MySQL データベースから ApsaraDB RDS for MySQL インスタンスへのレプリケーション関係が自動的に確立されます。

        ソース IP

        ソースの自己管理データベースの IP アドレスを入力します。

        ソースポート

        ソースの自己管理データベースのポート番号を入力します。

        ソースアカウント

        ソースの自己管理データベースのユーザー名を入力します。ユーザーは REPLICATION CLIENT および REPLICATION SLAVE 権限を持っている必要があります。

        ソースアカウントのパスワード

        ソースユーザーアカウントのパスワードを入力します。

    バックアップの直接ストリーミング

    1. 自己管理データベースに backup-helper ツールをインストールし、バックアップ転送プロセスを開始する

      # backup-helper ツールをインストールします。
      wget -O backup-helper https://mysql-backup-helper.oss-cn-beijing.aliyuncs.com/v1.0.0-alpha/backup-helper && chmod +x backup-helper
      # バックアップ転送プロセスを開始します。
      # MySQL が実行中で、対応するバージョンの Percona XtraBackup がインストールされていることを確認してください。
      ./backup-helper --backup --mode=stream --host=<mysql_ip> --port=<mysql_port> --user=<mysql_user> --password=<mysql_password>
    2. データを RDS にインポートする

      1. ApsaraDB RDS コンソールにログインし、リージョンを選択して、宛先インスタンスの ID をクリックします。

      2. 左側のナビゲーションバーで、ネイティブレプリケーション をクリックします。

      3. ネイティブレプリケーションページで、全データのインポート をクリックし、次のパラメーターを設定して、決定 をクリックします。

        カテゴリ

        パラメーター

        説明

        バックアップインポート設定 (必須)

        MySQLバージョン

        システムは自動的に 5.7 または 8.0 を表示します。構成は不要です。

        メソッド

        ストリームバックアップからインポート を選択します。

        バックアップソース IP

        バックアップ転送に使用する IP アドレスを入力します。

        バックアップソースポート

        バックアップ転送に使用するポートを入力します。デフォルトのポートは 9999 です。

        自動レプリケーション設定を有効にすることを推奨します。システムは、以下の構成に基づいてデータレプリケーションリンクを自動的に設定します。自動レプリケーション設定を有効にしない場合は、完全データをインポートした後にレプリケーションリンクを手動で設定する必要があります。

        自動レプリケーション設定 (任意)

        レプリケーション自動構築

        このスイッチをオンにすると、自己管理 MySQL データベースから ApsaraDB RDS for MySQL インスタンスへのレプリケーション関係が自動的に確立されます。

        ソース IP

        ソースの自己管理データベースの IP アドレスを入力します。

        ソースポート

        ソースの自己管理データベースのポート番号を入力します。

        ソースアカウント

        ソースの自己管理データベースのユーザー名を入力します。ユーザーは REPLICATION CLIENT および REPLICATION SLAVE 権限を持っている必要があります。

        ソースアカウントのパスワード

        ソースユーザーアカウントのパスワードを入力します。

    完全データをインポートした際にレプリケーション自動構築を選択しなかった場合、または自動レプリケーションリンクで問題が発生して回復できない場合は、次のステップを参照して、自己管理 MySQL データベースから ApsaraDB RDS for MySQL インスタンスへのデータレプリケーションリンクを手動で確立できます。

    データレプリケーションの手動設定

    1. RDS インスタンスの特権アカウントを作成します。

    2. 自己管理データベースでレプリケーションアカウントを作成し、権限を付与します。

      -- レプリケーションアカウント 'replica' を作成します。本番環境では、'%' の代わりに特定の IP アドレスからのアクセスに制限することを推奨します。
      -- 'Test123!' を強力なパスワードに置き換えてください。
      CREATE USER 'replica'@'%' IDENTIFIED BY 'Test123!';
      
      -- 必要なレプリケーション権限を付与します。
      GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'replica'@'%';
      
      -- 権限の変更を適用します。
      FLUSH PRIVILEGES;
    3. 特権アカウントを使用して RDS インスタンスにログインし、手動でレプリケーションリンクを設定します。

      -- レプリケーションを設定します。
      CHANGE MASTER TO MASTER_HOST='<source_ip>', MASTER_PORT=<source_port>, MASTER_USER='<replication_user>', MASTER_PASSWORD='<replication_password>', MASTER_AUTO_POSITION=1;
      
      -- レプリケーションを開始します。
      START SLAVE;
      
      -- レプリケーションステータスを確認します。
      SHOW SLAVE STATUS;
  3. レプリケーションステータスの確認

    RDS インスタンス詳細のネイティブレプリケーション ページに戻り、データレプリケーションリンク情報を表示します。 レプリケーションステータスが [実行中] の場合、データレプリケーションリンクが正常に確立されたことを示します。

ネイティブレプリケーションの無効化

  1. [RDS インスタンス] リストに移動してリージョンを選択し、次にターゲットインスタンスの ID をクリックします。インスタンスはネイティブレプリケーションインスタンスである必要があります。

  2. 左側のナビゲーションバーで、ネイティブレプリケーション をクリックし、次に ネイティブレプリケーションの無効化 をクリックします。

  3. 決定 をクリックします。

    重要

    [はい] をクリックすると、自己管理 MySQL データベースと ApsaraDB RDS for MySQL ネイティブレプリケーションインスタンス間のレプリケーション関係が終了します。その後、インスタンスは標準の ApsaraDB RDS for MySQL インスタンスに戻り、読み取り専用モードから読み書きモードに切り替わり、書き込み操作を実行できるようになります。

関連コンテンツと API

  • ApsaraDB RDS for MySQL ネイティブレプリケーションインスタンスを作成するには、CreateDBInstance API オペレーションを呼び出すことができます。次の点にご注意ください。

    • インスタンスの基本構成は、前提条件を満たす必要があります。その他のパラメーターは、必要に応じて設定できます。

    • ExternalReplication パラメーターを ON に設定します。

  • 既存のインスタンスにネイティブレプリケーションリンクを設定するには、ImportUserBackupFile API オペレーションを呼び出すことができます。

付録:ネットワーク構成

ネットワーク接続の問題の詳細については、「接続とネットワーキング」をご参照ください。

シナリオ

ユースケース

設定方法

料金

同じ VPC 内のリソース間のアクセス

Elastic Compute Service (ECS) インスタンス上の自己管理 MySQL データベース

同じ VPC 内では、ネットワーク接続はデフォルトで利用でき、追加の構成は必要ありません。RDS インスタンスの IP アドレスから ECS インスタンスのセキュリティグループへのポート 3306 でのインバウンドトラフィックを許可するには、セキュリティグループを構成するだけで済みます。

ApsaraDB RDS for MySQL ネイティブレプリケーションインスタンスに接続した後、show variables like 'report_host'; コマンドを実行して IP アドレスを取得できます。

なし

異なる VPC 内のリソース間のアクセス

Alibaba Cloud 上のクロス VPC およびクロスリージョンデータ同期

  • VPC ピアリング接続料金

  • CEN 接続料金: CEN インスタンスは無料ですが、データ転送と帯域幅使用量に対して料金が発生する場合があります。

オンプレミスデータセンターとクラウドベースの RDS インスタンス間のアクセス

データセンター内の自己管理データベースから RDS ネイティブレプリケーションインスタンスへのレプリケーション

VPN Gateway または Express Connect を使用して、データセンターのネットワークを RDS ネイティブレプリケーションインスタンスが存在する VPC に接続できます。

料金は使用する方法によって異なります。詳細については、公式ドキュメントをご参照ください。

クラウド間アクセス

他のクラウド上のデータベースから RDS ネイティブレプリケーションインスタンスへのレプリケーション

マルチクラウド環境では、アクセスにはクラウド間のネットワーク接続が必要です。RDS がソースで、他のクラウド上のデータベースが宛先である RDS ネイティブレプリケーションシナリオでは、VPN や専用線など、他のクラウドが提供するネットワークサービスを使用してネットワーク接続を確立できます。

料金は使用する方法によって異なります。詳細については、公式ドキュメントをご参照ください。

パブリックネットワークアクセス (非推奨)

該当なし

RDS ネイティブレプリケーションインスタンスは、インターネット経由での外部ノードへのアクセスをサポートしています。ただし、セキュリティリスクのため、この方法は推奨しません。

料金は使用する方法によって異なります。詳細については、公式ドキュメントをご参照ください。