このトピックでは、ApsaraDB RDS for MySQL ネイティブレプリケーションインスタンスを作成する方法、または既存のインスタンスをネイティブレプリケーションインスタンスにアップグレードする方法について説明します。また、ネイティブレプリケーションインスタンスの権限と制限についても説明します。
前提条件
新しいネイティブレプリケーションインスタンスを作成するか、既存のインスタンスをアップグレードする前に、インスタンスが次の前提条件を満たしていることを確認してください。[基本情報] ページでインスタンスの詳細を表示できます。
データベースバージョン: MySQL 5.7 (マイナーバージョン 20240930 以降) または 8.0 (マイナーバージョン 20250531 以降)
プロダクトシリーズ: Basic Edition
課金方法: サブスクリプションおよび従量課金
説明Serverless のネイティブレプリケーションインスタンスを使用するには、まず従量課金インスタンスを作成し、ネイティブレプリケーションを有効にしてから、課金方法を Serverless に変更する必要があります。
サポートされているリージョン: 中国 (上海)、中国 (北京)、中国 (深圳)、中国 (広州)、および中国 (成都)
重要ApsaraDB RDS ネイティブレプリケーションは、現在上記のリージョンでのみ利用可能です。他のリージョンへのサポートは順次展開されています。他のリージョンでこの機能が必要な場合は、チケットを送信してください。
課金
ネイティブレプリケーションを有効にして新しいインスタンスを作成すると、インスタンス料金が課金されます。既存のインスタンスをネイティブレプリケーションインスタンスにアップグレードしても、追加料金は発生しません。
自己管理データベースのバックアップを Object Storage Service (OSS) にアップロードして完全データをインポートする場合、バックアップファイルを 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」をご参照ください。
パラメーター変更権限
ネイティブレプリケーションインスタンスでは、特権アカウントが次の 3 つの SQL 文を実行して実行時パラメーターを変更できます。
データベースサーバーの読み取り専用モードを設定します。
SET GLOBAL read_only = ON/OFF;ON に設定すると、サーバーは読み取り専用モードになります。OFF に設定すると、読み取り専用モードが無効になり、読み取り/書き込み操作が許可されます。
現在のセッションで実行された SQL 文がバイナリログに記録されるかどうかを設定します。
SET SESSION sql_log_bin = ON/OFF;ON に設定すると、セッション内の SQL 操作がバイナリログに記録されます。OFF に設定すると、セッションで実行された SQL 文はバイナリログに記録されません。
グローバルトランザクション ID (GTID) の次の値を設定します。
SET SESSION GTID_NEXT = "your_gtid_value";
マシン間の移行やアップグレードなどのメンテナンス操作中、ネイティブレプリケーションコマンドの権限とパラメーター変更権限は一時的に取り消されます。これはインスタンスのレプリケーションプロセスには影響しません。権限はメンテナンスタスクの完了後に復元されます。
注意
ApsaraDB RDS for MySQL ネイティブレプリケーションインスタンスには、次の制限があります:
制限
インスタンスは読み取り専用になります。
メジャーバージョンのアップグレードはサポートされていません。
プロダクトシリーズのアップグレードはサポートされていません (例: Basic Edition から High-availability Edition または Cluster Edition へ)。
VPC の切り替えはサポートされていません。
データベースとテーブルのリカバリはサポートされていません。
既存のインスタンスをネイティブレプリケーションインスタンスにアップグレードすると、約 30 秒の一時的な接続切断が発生する可能性があります。この操作はオフピーク時に実行し、アプリケーションに再接続メカニズムがあることを確認することをお勧めします。
権限の制限
特権アカウントの制限
ネイティブレプリケーション機能の一部の SUPER 権限は、ApsaraDB RDS for MySQL インスタンスの特権アカウントに付与されます。
CHANGE MASTERやSTART SLAVEなどのネイティブコマンドを実行できるのは、特権アカウントのみです。レプリケーション権限の制限
ネイティブレプリケーション機能が外部バイナリログを適用する際、最初に権限チェックを実行します。次の権限を超える操作は適用されず、レプリケーションが中断されます。
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;システムデータベースの制限
システムデータベースに対するすべての操作は無視されます。システムデータベースには、
mysql、sys、information_schema、performance_schema、および__recyclebin__が含まれます。説明CREATE USER や GRANT など、システムデータベースを間接的に変更する操作は無視されません。ただし、SQL 文はレプリケーション権限の制限に準拠する必要があります。
GRANT super on *.* to xxx;のように付与された権限を超える操作は、レプリケーションを中断させます。GTID の制限
MySQL ネイティブレプリケーション構成では、GTID モードはマスターデータベースとスレーブデータベースの両方で同じでなければなりません。GTID は両方で有効または無効にする必要があります。ApsaraDB RDS for MySQL インスタンスは GTID モードの無効化をサポートしていません。したがって、ApsaraDB RDS for MySQL インスタンスをスレーブとしてレプリケーション関係を確立するには、外部マスターデータベースでも GTID モードが有効になっている必要があります。
レプリケーション関係を設定する前に、外部マスターデータベースで
SHOW VARIABLES LIKE 'gtid_mode';を実行して GTID が有効になっているか確認してください。GTID が有効になっていない場合は、SET GLOBAL gtid_mode=ON;を実行して外部マスターで GTID モードを有効にしてください。
ネイティブレプリケーションインスタンスへのアップグレード
新しいインスタンスの作成時にネイティブレプリケーションを有効にする
[標準作成] ページで新しい ApsaraDB RDS for MySQL インスタンスを作成する際、ページ下部の [その他の設定] を展開し、[ネイティブレプリケーション] スイッチをオンにします。ネイティブレプリケーションオプションは、インスタンスが前提条件を満たしている場合にのみ表示されることに注意してください。

既存のインスタンスをネイティブレプリケーションインスタンスにアップグレードする
既存のインスタンスをネイティブレプリケーションインスタンスにアップグレードすると、約 30 秒の一時的な接続切断が発生する可能性があります。この操作はオフピーク時に実行し、アプリケーションに再接続メカニズムがあることを確認することをお勧めします。
RDS インスタンスリストに移動し、リージョンを選択して、ターゲットインスタンスの ID をクリックします。ターゲットインスタンスは前提条件を満たしている必要があります。
左側のナビゲーションウィンドウで、[ネイティブレプリケーション] をクリックします。次に、[ネイティブレプリケーションを有効にする] をクリックします。
ポップアップウィンドウの内容をよく読み、[OK] をクリックします。
説明公式の ApsaraDB RDS サービスアカウントに OSS へのアクセス権限と Elastic Network Interface (ENI) の作成およびアタッチ権限を付与していない場合は、まず対応するチェックボックスを選択してこれらの権限を付与する必要があります。
ステップ 2: 自己管理データベースから ApsaraDB RDS for MySQL へのデータレプリケーションの設定
XtraBackup をインストールし、自己管理データベースでバックアップを実行する
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.rpmMySQL 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 へのインストール
XtraBackup のインストール
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.rpmMySQL 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
qpress のインストール: Ubuntu にインストールされた XtraBackup には qpress が含まれていないため、別途インストールする必要があります。
sudo apt-get install -y qpress
バックアップの実行:
以下の 3 つの圧縮方法は
XtraBackupコマンドに基づいており、主に InnoDB エンジンを使用するインスタンスに適しています。データベースに MyISAM テーブルが含まれている場合は、innobackupexコマンドを使用してください。方法 1: デフォルトの qpress 圧縮
xtrabackup --backup \ --host=127.0.0.1 \ --port=3306 \ --user=<user_of_self-managed_MySQL> \ --password=<password> \ --stream=xbstream \ --compress > ./<backup_file_name_such_as_backup_1206.xb>方法 2: QuickLZ 圧縮
この方法では、XtraBackup バージョン 8.0.34-29 以前を使用する必要があります。詳細については、「Percona XtraBackup 公式チュートリアル」をご参照ください。
xtrabackup --backup \ --host=127.0.0.1 \ --port=3306 \ --user=<user_of_self-managed_MySQL> \ --password=<password> \ --stream=xbstream \ --compress > ./<backup_file_name_such_as_backup_1206_qp.xb>方法 3: 外部 ZSTD 圧縮
xtrabackup --backup \ --host=127.0.0.1 \ --port=3306 \ --user=<user_of_self-managed_MySQL> \ --password=<password> \ --stream=xbstream \ | zstd -q - > ./<backup_file_name_such_as_backup_1206.xb.zstd>
完全データをインポートし、データレプリケーションを自動的に設定する
説明データをインポートする前に、ネットワーク設定を構成して、自己管理 MySQL データベースと ApsaraDB RDS for MySQL インスタンス間のネットワーク接続を確保してください。
方法 1: OSS からバックアップファイルをインポートする
自己管理データベースのバックアップを OSS にアップロードする
ossutil や OSS SDK (ソフトウェア開発キット) など、さまざまなツールを使用してバックアップファイルをアップロードできます。このトピックでは ossutil を例として使用します。
重要ターゲットの OSS バケットが RDS MySQL インスタンスと同じリージョンにあることを確認してください。そうでない場合、RDS はアップロード中に OSS バックアップファイルを取得できません。
ossutil をインストールします。
yum install -y unzip sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash ossutil configバックアップデータを OSS にアップロードします。
ossutil -e <OSS_Endpoint> -i <your_AccessKeyId> -k <your_AccessKeySecret> cp <backup_file_name> oss://<Bucket_name>/
OSS から RDS にバックアップファイルをインポートし、レプリケーションリンクを自動的に設定する
RDS インスタンスリストに移動し、リージョンを選択して、ターゲットインスタンスの ID をクリックします。
左側のナビゲーションウィンドウで、[ネイティブレプリケーション] をクリックします。
[ネイティブレプリケーション] ページで、[完全データのインポート] をクリックし、パラメーターを設定して、[OK] をクリックします。
設定カテゴリ
パラメーター
説明
バックアップアップロード方法 (必須)
MySQL バージョン
システムは自動的に 5.7 または 8.0 を表示します。設定は不要です。
方法
[OSS からダウンロード] を選択します。
OSS バケット
自己管理データベースのバックアップファイルが保存されている OSS バケットを選択します。OSS バケットの詳細については、「ファイルのアップロード」をご参照ください。
OSS ファイル名
OSS バケットから自己構築データベースのバックアップファイルを選択します。バックアップファイルが OSS バケットのサブディレクトリに保存されている場合は、手動で完全なパスを入力して検索する必要があります。次の 3 つのバックアップファイル形式がサポートされています:
XtraBackup によって直接生成された
xbstreamファイル。XtraBackup の組み込み quicklz 圧縮を使用して生成された
_qp.xbファイル。zstd で圧縮された
xbstreamファイル (.xb.zstサフィックス付き)。
自動レプリケーション設定を有効にすることをお勧めします。システムは、以下の設定に基づいてデータレプリケーションリンクを自動的に設定します。自動レプリケーション設定を有効にしない場合は、完全データをインポートした後に手動でレプリケーションリンクを設定する必要があります。
自動レプリケーションリンク設定 (オプション)
自動レプリケーション設定
スイッチをオンにして、自己管理 MySQL データベースから ApsaraDB RDS for MySQL インスタンスへのレプリケーション関係を自動的に設定します。
レプリケーションソース IP
ソースの自己管理データベースの IP アドレスを入力します。
レプリケーションソースポート
ソースの自己管理データベースのポート番号を入力します。
レプリケーションソースアカウント
ソースの自己管理データベースのアカウントを入力します。ソースアカウントには
REPLICATION CLIENTおよびREPLICATION SLAVE権限が必要です。レプリケーションアカウントのパスワード
ソースの自己管理データベースのアカウントのパスワードを入力します。
方法 2: 自己管理データベースのバックアップを RDS に転送する
自己管理データベースに 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 が実行されており、自己管理データベースのバージョンに基づいて対応するバージョンの XtraBackup がインストールされていることを確認してください) ./backup-helper --backup --mode=stream --host=<MySQL_IP> --port=<MySQL_port> --user=<MySQL_account> --password=<MySQL_password>RDS にデータをインポートする
ApsaraDB RDS コンソールにログインし、ページ上部でリージョンを選択して、インスタンス ID をクリックします。
左側のナビゲーションウィンドウで、[ネイティブレプリケーション] をクリックします。
[ネイティブレプリケーション] ページで、[完全データのインポート] をクリックし、パラメーターを設定して、[OK] をクリックします。
設定カテゴリ
パラメーター
説明
バックアップアップロード方法 (必須)
MySQL バージョン
システムは自動的に 5.7 または 8.0 を表示します。設定は不要です。
方法
[直接ストリームバックアップ] を選択します。
バックアップソース IP
バックアップ転送用の IP アドレスを入力します。
バックアップソースポート
バックアップ転送用のポートを入力します。デフォルトは 9999 です。
自動レプリケーション設定を有効にすることをお勧めします。システムは、以下の設定に基づいてデータレプリケーションリンクを自動的に設定します。自動レプリケーション設定を有効にしない場合は、完全データをインポートした後に手動でレプリケーションリンクを設定する必要があります。
自動レプリケーションリンク設定 (オプション)
自動レプリケーション設定
スイッチをオンにして、自己管理 MySQL データベースから ApsaraDB RDS for MySQL インスタンスへのレプリケーション関係を自動的に設定します。
レプリケーションソース IP
ソースの自己管理データベースの IP アドレスを入力します。
レプリケーションソースポート
ソースの自己管理データベースのポート番号を入力します。
レプリケーションソースアカウント
ソースの自己管理データベースのアカウントを入力します。ソースアカウントには
REPLICATION CLIENTおよびREPLICATION SLAVE権限が必要です。レプリケーションアカウントのパスワード
ソースの自己管理データベースのアカウントのパスワードを入力します。
完全データをインポートする際に [自動レプリケーション設定] を選択しなかった場合、または自動レプリケーションリンクが失敗して回復できない場合は、次の手順に従って、自己管理 MySQL データベースから ApsaraDB RDS for MySQL インスタンスへのデータレプリケーションリンクを手動で設定できます。
レプリケーションステータスの表示
RDS インスタンスの [ネイティブレプリケーション] ページに戻り、データレプリケーションリンク情報を表示します。レプリケーションステータスが [実行中] の場合、データレプリケーションリンクが確立されています。
ネイティブレプリケーションのシャットダウン
RDS インスタンスリストに移動し、リージョンを選択して、ターゲットインスタンスの ID をクリックします。ターゲットインスタンスは前提条件を満たしている必要があります。
左側のナビゲーションウィンドウで、[ネイティブレプリケーション] をクリックします。次に、ページ上の [ネイティブレプリケーションモードを無効にする] をクリックします。
[OK] をクリックします。
重要[OK] をクリックすると、自己管理 MySQL データベースから ApsaraDB RDS for MySQL ネイティブレプリケーションインスタンスへのレプリケーション関係が終了します。ApsaraDB RDS for MySQL ネイティブレプリケーションインスタンスは、標準の ApsaraDB RDS for MySQL インスタンスに戻ります。インスタンスは読み取り専用から読み取り/書き込みに切り替わり、書き込み操作を実行できるようになります。
関連コンテンツと API 操作
CreateDBInstance API 操作を呼び出して ApsaraDB RDS for MySQL ネイティブレプリケーションインスタンスを作成するには、次の点に注意してください:
インスタンスの基本構成は前提条件を満たしている必要があります。必要に応じて他のパラメーターを設定します。
ExternalReplication を ON に設定します。
ImportUserBackupFile API 操作を呼び出して、既存のインスタンスのネイティブレプリケーションリンクを設定します。
付録: ネットワーク構成
詳細については、「接続とネットワーク」をご参照ください。
ビジネスシナリオ | シナリオ | 設定方法 | 料金 |
同じ VPC 内のインスタンス間のアクセス | ECS インスタンス上の自己管理 MySQL | 同じ VPC 内ではネットワーク接続がデフォルトで有効になっているため、追加の設定は不要です。ECS インスタンスのセキュリティグループでポート 3306 を RDS インスタンスの IP アドレスに対して開くために、セキュリティグループを設定するだけで済みます。 ApsaraDB RDS for MySQL ネイティブレプリケーションインスタンスに接続した後、 | なし |
異なる VPC 間のインスタンスのアクセス | Alibaba Cloud 上の VPC およびリージョンをまたぐデータ同期 |
|
|
オンプレミスのデータセンターとクラウド上の ApsaraDB RDS インスタンス間のアクセス | データセンター内の自己管理データベースから ApsaraDB RDS ネイティブレプリケーションインスタンスへ | VPN Gateway または専用線を使用して、データセンターを ApsaraDB RDS ネイティブレプリケーションインスタンスが存在する VPC に接続できます。 | 料金は方法によって異なります。詳細については、公式ドキュメントをご参照ください。 |
異なるクラウド間のアクセス | 別のクラウド上のデータベースから ApsaraDB RDS ネイティブレプリケーションインスタンスへ | マルチクラウド環境では、クラウド間のネットワーク接続を確立する必要があります。別のクラウド上のデータベースから ApsaraDB RDS ネイティブレプリケーションインスタンスにデータをレプリケートするには、VPN や専用線などのネットワークサービスを使用して接続を確立できます。 | 料金は方法によって異なります。詳細については、公式ドキュメントをご参照ください。 |
パブリックネットワークアクセス (非推奨) | / | ApsaraDB RDS ネイティブレプリケーションインスタンスはパブリックネットワーク経由のアクセスをサポートしています。ただし、セキュリティリスクがあるため、この方法は推奨されません。 | 料金は方法によって異なります。詳細については、公式ドキュメントをご参照ください。 |