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

ApsaraDB RDS:MySQL 5.7 または MySQL 8.0 を実行するセルフマネージドインスタンスから ApsaraDB RDS for MySQL インスタンスへのデータ移行

最終更新日:Aug 22, 2026

この方法は、移行中にセルフマネージド MySQL インスタンスをオフラインにできる場合に使用します。Percona XtraBackup でフル物理バックアップを取得し、Object Storage Service (OSS) にストリーミングして、ApsaraDB RDS コンソール経由でインポートすることで、新しい RDS インスタンスを作成します。

データベースをオフラインにできない場合は、Data Transmission Service (DTS) を使用して、最小限のダウンタイムで移行します。

前提条件

開始する前に、以下が用意されていることを確認してください。

  • 移行要件を満たすセルフマネージド MySQL インスタンス。完全なリストについては、「制限事項」をご参照ください。

  • 移行先の RDS インスタンスと同じリージョンにある OSS バケット。作成する必要がある場合は、「バケットの作成」をご参照ください。

  • セルフマネージド MySQL インスタンスを実行しているホストにインストールされている Go と Unzip。

制限事項

続行する前に、以下の制限事項を確認してください。

カテゴリ

制約

[MySQL バージョン]

ソースは MySQL 5.7.32 以前、または MySQL 8.0.18 以前である必要があります。ソースと移行先は同じ MySQL バージョンである必要があります。

バックアップツール

MySQL 5.7 には Percona XtraBackup 2.4 が、MySQL 8.0 には Percona XtraBackup 8.0 が必要です。

バックアップ範囲

フルバックアップのみ。差分バックアップファイルとログバックアップファイルはサポートされていません。バックアップ完了後に生成された増分データは含まれません。

XtraBackup オプション

--tables、--tables-exclude、--tables-file、--databases、--databases-file オプションはサポートされていません。

バックアップファイル形式

ファイルは _QP.XB 形式であるか、TAR.GZ として圧縮されている必要があります。ファイル名に特殊文字を含めることはできません。

OSS 暗号化

OSS バケットを作成するときは、[暗号化方式] を [なし] に設定します。暗号化されたバケットはサポートされていません。

OSS リージョン

OSS バケットは RDS インスタンスと同じリージョンにある必要があります。

OSS ファイルサイズ

CLI 経由でパート単位でアップロードする場合、最大 16 TB です。

データディレクトリ

datadir ディレクトリは、デフォルトのストレージパスである必要があります。mysqladmin -u<username> -p<password> variables | grep datadir を実行して確認します。

InnoDB 設定

innodb_data_file_path は、デフォルト値 ibdata1 に設定する必要があります。

移行先

データは新しい RDS インスタンスにのみ復元でき、既存のインスタンスには復元できません。移行先は、RDS Basic Edition で標準 SSD を使用し、MySQL 5.7 または MySQL 8.0 を実行している従量課金インスタンスである必要があります。

ストレージ

移行先の RDS インスタンスには、ソースデータよりも大きいストレージ容量が必要です。

移行されないもの

ユーザーアカウント、カスタム関数、ストアドプロシージャ、タイムゾーン情報は移行されません。移行前にこれらを控えておき、移行後に手動で追加してください。

GTID ベースのレプリケーション

移行後に増分データをレプリケートする予定がある場合は、ソースインスタンスで GTID ベースのレプリケーションを有効にし、gtid_mode と enforce_gtid_consistency を ON に設定します。

AliyunRDSImportRole

ApsaraDB RDS に OSS へのアクセスを承認すると、Resource Access Management (RAM) に AliyunRDSImportRole という名前の RAM ロールが作成されます。このロールは変更または削除しないでください。

バックアップの保持

移行が完了する前に OSS からバックアップファイルを削除しないでください。

移行されないオブジェクトの特定

ソースインスタンスで次のクエリを実行して、移行後に再作成する必要があるストアドプロシージャと関数をリストアップします。

SELECT ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE
FROM information_schema.routines
WHERE ROUTINE_SCHEMA NOT IN ('sys', 'information_schema', 'performance_schema', 'mysql');

続行する前に、ユーザーアカウントとタイムゾーンの設定も控えておいてください。

仕組み

  1. セルフマネージド MySQL インスタンスを実行しているホストに Percona XtraBackup をインストールします。

  2. backup_helper (互換性チェック) と oss_stream (OSS へのアップロード) を提供する MySQL Backup Helper をインストールします。

  3. 互換性チェックを実行し、フルバックアップを取得して、OSS に直接ストリーミングします。次に、ApsaraDB RDS コンソール経由でバックアップファイルをインポートして、新しい RDS インスタンスを作成します。

このガイドでは、CentOS Linux V8.3.2011 を実行している Elastic Compute Service (ECS) インスタンスを使用します。Ubuntu 固有の手順については、「付録1:Ubuntu への Percona XtraBackup のインストール」および「付録2:Ubuntu への Go と Unzip のインストール」をご参照ください。

手順1:Percona XtraBackup のインストール

Percona XtraBackup は、稼働時間に影響を与えることなくフルバックアップをサポートする MySQL 用のホットバックアップツールです。お使いの MySQL バージョンに対応するバージョンをインストールしてください。

MySQL 5.7

MySQL 5.7 — Percona XtraBackup 2.4 を使用します。

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

MySQL 8.0 — Percona XtraBackup 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」をご参照ください。

手順2:MySQL Backup Helper のインストール

MySQL Backup Helper は、インスタンスが移行をサポートしているかどうかをチェックする backup_helper と、バックアップを OSS に直接ストリーミングする oss_stream の 2 つのツールを提供します。

依存関係のインストール (CentOS)

sudo yum install -y go
sudo yum install -y unzip

Ubuntu の場合は、「付録2」をご参照ください。

MySQL Backup Helper のビルド

  1. ソースコードをダウンロードします。

    wget https://github.com/aliyun/mysql-backup-helper/archive/refs/heads/master.zip
  2. パッケージを解凍します。

    unzip master.zip
  3. backup_helper のビルド:

    cd mysql-backup-helper-master
    go build -a -o backup_helper main.go
  4. oss_stream のビルド:

    cd oss_stream
    go build -a -o oss_stream oss_stream.go

手順3:バックアップと移行

3.1 移行の互換性チェック

backup_helper を実行して、ソースインスタンスが移行をサポートしていることを検証します:

cd ~/mysql-backup-helper-master && ./backup_helper \
  -host <host-ip> \
  -port <port> \
  -user <username> \
  --password <password>

プレースホルダーを実際の値に置き換えます。

プレースホルダー

説明

例

<host-ip>

MySQL インスタンスを実行しているホストの IP アドレス

127.0.0.1

<port>

MySQL ポート

3306

<username>

root アカウントのユーザー名

root

<password>

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

Aa123456@

チェックに合格したら、次の手順に進みます。

3.2 バックアップと OSS へのアップロード

警告

Percona XtraBackup は、パスワードを含む完全なコマンドラインを、バックアップ内の xtrabackup_info ファイルに書き込みます。アップロードが完了したら、このファイルが機密性の高い資格情報を公開していないことを確認してください。

バックアップを実行し、OSS バケットに直接ストリーミングします。お使いの MySQL バージョンに対応するコマンドを選択してください。

MySQL 5.7

MySQL 5.7 — innobackupex を使用します:

innobackupex --backup \
  --host=<host-ip> \
  --port=<port> \
  --user=<username> \
  --password=<password> \
  --stream=xbstream \
  --compress <temp-dir> | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId <AccessKey-ID> \
  -accessKeySecret <AccessKey-secret> \
  -bucketName <bucket-name> \
  -endpoint <OSS-endpoint> \
  -objectName <backup-file-name>

例:

innobackupex --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
  --stream=xbstream --compress /root/mysql/data | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId LTAI**************** \
  -accessKeySecret ****** \
  -bucketName test \
  -endpoint oss-ap-southeast-1.aliyuncs.com \
  -objectName backup_qp.xb

MySQL 8.0

MySQL 8.0 では xtrabackup を使用します:

xtrabackup --backup \
  --host=<host-ip> \
  --port=<port> \
  --user=<username> \
  --password=<password> \
  --stream=xbstream \
  --compress <temp-dir> | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId <AccessKey-ID> \
  -accessKeySecret <AccessKey-secret> \
  -bucketName <bucket-name> \
  -endpoint <OSS-endpoint> \
  -objectName <backup-file-name>

例:

xtrabackup --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
  --stream=xbstream --compress /root/mysql/data | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId LTAI**************** \
  -accessKeySecret ******** \
  -bucketName test \
  -endpoint oss-ap-southeast-1.aliyuncs.com \
  -objectName backup_qp.xb

プレースホルダーを実際の値に置き換えます。

プレースホルダー

説明

例

<host-ip>

MySQL インスタンスを実行しているホストの IP アドレス

127.0.0.1

<port>

MySQL ポート

3306

<username>

root アカウントのユーザー名

root

<password>

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

Aa123456@

<temp-dir>

バックアップ用の一時ディレクトリ

/root/mysql/data

<AccessKey-ID>

Alibaba Cloud の AccessKey ID

LTAI5tXxx

<AccessKey-secret>

Alibaba Cloud の AccessKey Secret

xXxXxXx

<bucket-name>

OSS バケットの名前

test

<OSS-endpoint>

OSS バケットのエンドポイント

oss-ap-southeast-1.aliyuncs.com

<backup-file-name>

OSS 内のバックアップオブジェクトに割り当てる名前

backup_qp.xb

大規模なデータベースでは、セッションが切断された場合でもコマンドが中断されないように、nohup を使用してコマンドを実行します。 MySQL 5.7: MySQL 8.0:
nohup sh -c 'innobackupex --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ --stream=xbstream --compress /root/mysql/data | ./mysql-backup-helper-master/oss_stream/oss_stream -accessKeyId LTAI**************** -accessKeySecret ****** -bucketName test -endpoint oss-ap-southeast-1.aliyuncs.com -objectName backup_qp.xb' &
nohup sh -c 'xtrabackup --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
  --stream=xbstream --compress /root/mysql/data | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId LTAI**************** -accessKeySecret ****** \
  -bucketName test -endpoint oss-ap-southeast-1.aliyuncs.com -objectName backup_qp.xb' &

バックアップが完了すると、ターミナルに completed OK ! が表示されます。

OSS コンソールにログインして、ファイルが正常にアップロードされたことを確認します。アップロードに失敗した場合は、バックアップコマンドを再度実行してください。

OSS が一時的に利用できない場合は、まずバックアップをローカルファイルに保存し、後でアップロードします。「付録3:ローカルへのバックアップと OSS へのアップロード」をご参照ください。

3.3 ApsaraDB RDS コンソールでのバックアップのインポート

  1. ApsaraDB RDS コンソールにログインします。上部メニューで、移行先の RDS インスタンスのリージョンを選択します。左側のナビゲーションペインで、[バックアップ] をクリックします。

  2. [ユーザーバックアップ] タブで、[バックアップのインポート] をクリックします。

  3. [インポートガイド] ウィザードで指示を読み、「3. データのインポート」画面が表示されるまで [次へ] をクリックします。

    ウィザードの「1. ソースデータベースのバックアップ」と[「2. OSSへのバックアップファイルのアップロード」]の手順は、このガイドの手順 3.1 と 3.2 に対応します。
  4. 「3. データのインポート」画面で、次のパラメーターを設定し、[OK] をクリックします。

    ApsaraDB RDS が OSS へのアクセスを承認されていない場合は、この手順の下部にある[承認] をクリックします。表示されたページで、[承認ポリシーの確認] をクリックします。

    パラメーター

    説明

    [MySQL バージョン]

    [5.7/8.0] が自動的に表示されます。MySQL 5.7 と MySQL 8.0 の両方がサポートされています。

    [リージョン]

    バックアップファイルを保存する OSS バケットのリージョン。移行先の RDS インスタンスのリージョンと一致する必要があります。

    [OSS バケット]

    バックアップファイルが保存されている OSS バケット。詳細については、「オブジェクトのアップロード」をご参照ください。

    [OSS ファイル名]

    OSS バケット内のバックアップオブジェクト。 あいまい一致と完全一致をサポートします。 ファイルは _QP.XB 形式、または TAR.GZ として圧縮されている必要があります。

    [メモ]

    バックアップファイルを識別するための任意の説明。

    [ゾーン]

    OSS バケットのゾーン。ゾーンを選択すると、ApsaraDB RDS が数秒でスナップショットを作成できるため、インポート時間が短縮されます。新しい RDS インスタンスはこのゾーンに作成されます。

    [ストレージ容量]

    バックアップファイルに必要なストレージ容量。有効な値:20~6000 GB。デフォルトはバックアップファイルサイズの 3 倍 (最小 20 GB) です。

  5. [ユーザーバックアップ] タブで、検証タスクの [ステータス] が [検証中] から [完了] に変わるのを待ちます。

    重要

    検証時間はさまざまです。バックアップ中に書き込みアクティビティや大規模なトランザクションが多いインスタンスは、検証に時間がかかる場合があります。

  6. バックアップファイルを見つけ、[操作] 列の [復元] をクリックします。

  7. 次のパラメーターを設定し、[次へ:インスタンス設定] をクリックします。

    パラメーター

    説明

    [プライマリノードのゾーン]

    プライマリ RDS インスタンスのゾーン。バックアップファイルのインポート時にゾーンを選択しなかった場合にのみ表示されます。

    [ストレージタイプ]

    [ESSD PL1]:パフォーマンスレベル 1 のエンタープライズ SSD。[標準SSD]:標準の Elastic Block Storage デバイス。詳細については、「ストレージタイプ」をご参照ください。

    [インスタンスタイプ]

    [汎用 (エントリーレベル)]:排他的に割り当てられたメモリと I/O、共有 CPU とストレージ。完全なリストについては、「プライマリ ApsaraDB RDS インスタンスタイプ」をご参照ください。

    [ストレージ容量]

    データファイル、システムファイル、ログファイル、トランザクションファイル用のストレージ容量。5 GB 単位で調整可能です。

  8. 次のパラメーターを設定し、[次へ:注文の確認] をクリックします。

    パラメーター

    説明

    [ネットワークタイプ]

    [VPC] を選択します。Virtual Private Cloud (VPC) は、より高いセキュリティと優れたパフォーマンスを提供します。[VPC] と [プライマリノードのvSwitch] も設定する必要があります。RDS インスタンスに接続する ECS インスタンスは、同じ VPC 内にある必要があります。

    [パラメーターテンプレート]

    システムまたはカスタムのパラメーターテンプレート。「パラメーターテンプレートの使用」をご参照ください。

    [タイムゾーン]

    RDS インスタンスのタイムゾーン。

    [テーブル名の大文字と小文字の区別]

    ソースインスタンスのテーブル名で大文字と小文字が区別される場合は、[大文字/小文字を区別] を選択して一貫性を保ちます。

  9. [パラメーター] セクションでインスタンス設定を確認し、[購入プラン] を設定し、利用規約に同意して、[今すぐ支払う] をクリックします。

    ApsaraDB RDS がインスタンスを作成するのに 1~5 分かかります。

次のステップ

バックアップ保持期間の設定

デフォルトでは、インポートされたバックアップファイルは 3 日間保持されます。要件に応じて保持期間を調整してください。

  1. ApsaraDB RDS コンソールにログインします。リージョンを選択し、左側のナビゲーションペインで [バックアップ] をクリックします。

  2. バックアップファイルを見つけます。[有効期限] 列で、[保持期間の設定] をクリックします。

  3. ドロップダウンリストから保持期間を選択するか、[カスタム保持期間] を選択して値を入力します。

  4. [OK] をクリックします。

有効期限が 2099 年を超える場合は、[永続] と表示されます。

バックアップファイルへのタグの追加

  1. ApsaraDB RDS コンソールにログインします。リージョンを選択し、[バックアップ] をクリックします。

  2. バックアップファイルを見つけます。[タグ] 列で、[+追加] をクリックします。

  3. ダイアログボックスで [ラベルを作成] をクリックし、[キー] と [値] を入力し、フィールドの横にある [OK] をクリックしてタグを作成し、右下隅の [OK] をクリックします。

    既存のタグを使用するには、[ラベルを選択] ドロップダウンリストから選択します。
  4. タグを更新するには、タグにカーソルを合わせ、[編集] をクリックします。ツールチップで、手順 3 を繰り返します。

増分リカバリのためのログデータの確認

バックアップ中にソースインスタンスでデータ変更が発生した場合、バックアップファイルには増分リカバリのためのログ情報が含まれています。

  1. ApsaraDB RDS コンソールにログインします。リージョンを選択し、[バックアップ] をクリックします。

  2. バックアップファイルを見つけ、[操作] 列の [詳細の表示] をクリックします。

  3. 表示されるメッセージで、ログデータを確認します。

    • Master_Log_File: 増分データを含む最初のログファイル。

    • Master_Log_Position: そのファイル内の増分データを含む最初のログエントリ。

バックアップ検証レコードのデフォルトの保持期間は 7 日間です。移行後、できるだけ早くソースインスタンスから移行先の RDS インスタンスに増分データをレプリケートしてください。

バックアップファイルの削除

バックアップファイルが不要になった場合は、ストレージコストを削減するために削除してください。

  1. ApsaraDB RDS コンソールにログインします。リージョンを選択し、[バックアップ] をクリックします。

  2. バックアップファイルを見つけ、[操作] 列の [削除] をクリックします。

  3. 確認ダイアログボックスで、[OK] をクリックします。

RDS インスタンスのアップグレード

移行後、新しい RDS インスタンスで次の操作を実行できます。

[ユーザーバックアップ] タブでのその他の操作

  • 列のフィルター: 右上隅の 自定义列表项 アイコンをクリックして、列を表示または非表示にします。 右 アイコンと 左 アイコンを使用して、非表示リスト (左) と表示リスト (右) の間で列を移動します。 [OK] をクリックします。

  • インスタンスリストのエクスポート: 导出资源列表 アイコンをクリックすると、バックアップ情報を CSV ファイルとしてエクスポートできます。

  • 更新: 刷新 アイコンをクリックして、[ユーザーバックアップ] タブを更新します。

付録1:Ubuntu への Percona XtraBackup のインストール

お使いの MySQL バージョンに対応するバージョンを選択してください。

MySQL 8.0

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

    wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.35-31/binary/debian/jammy/x86_64/percona-xtrabackup-80_8.0.35-31-1.jammy_amd64.deb
    sudo dpkg -i percona-xtrabackup-80_8.0.35-31-1.jammy_amd64.deb
  2. qpress をインストールします。

    sudo apt-get install -y qpress
The following packages have unmet dependencies が表示された場合は、apt-get -f install を実行して依存関係を解決してから、再試行してください。

付録2:Ubuntu への Go と Unzip のインストール

Go プログラミング言語をインストールします。

sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt-get update
sudo apt-get install -y golang-go

Unzip をインストールします。

sudo apt-get -y install unzip

付録3:ローカルへのバックアップと OSS へのアップロード

この方法は、バックアップ実行時に OSS が一時的に利用できない場合に使用します。

手順1:ローカルファイルへのバックアップ

お使いの MySQL バージョンに対応するコマンドを選択してください。

MySQL 5.7:

innobackupex --backup \
  --host=<host-ip> --port=<port> \
  --user=<username> --password=<password> \
  --stream=xbstream --compress <temp-dir> \
  > /<backup-dir>/<backup-file-name>_qp.xb

例:

innobackupex --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
  --stream=xbstream --compress /root/mysql/data > /root/backup_qp.xb

MySQL 8.0:

xtrabackup --backup \
  --host=<host-ip> --port=<port> \
  --user=<username> --password=<password> \
  --stream=xbstream --compress <temp-dir> \
  > /<backup-dir>/<backup-file-name>_qp.xb

例:

xtrabackup --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
  --stream=xbstream --compress /root/mysql/data > /root/backup_qp.xb

手順2:ローカルファイルの OSS へのアップロード

OSS が利用可能な場合は、oss_stream を使用してアップロードします:

cat /<backup-dir>/<backup-file-name>_qp.xb | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId LTAI**************** \
  -accessKeySecret ******** \
  -bucketName test \
  -endpoint oss-ap-southeast-1.aliyuncs.com \
  -objectName backup_qp.xb

例:

cat /root/backup_qp.xb | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId LTAI**************** \
  -accessKeySecret ******** \
  -bucketName test \
  -endpoint oss-ap-southeast-1.aliyuncs.com \
  -objectName backup_qp.xb