RDS コンソールを使用して、Object Storage Service (OSS) から自己管理 MySQL データベースの完全バックアップを新しい ApsaraDB RDS for MySQL インスタンスに復元します。
前提条件
-
ご利用の自己管理 MySQL データベースがクラウド移行の要件を満たしている必要があります。詳細については、「付録: 制限事項」をご参照ください。
-
ターゲットリージョンに OSS バケットが必要です。お持ちでない場合は、「コンソールでバケットを作成」をご参照ください。
説明ターゲットリージョンは、RDS インスタンスを作成するリージョンである必要があります。
移行プロセス
移行には、次のステップが含まれます。
ステップ 1: Percona Xtrabackup のインストール
チュートリアル環境
このチュートリアルでは、CentOS Linux release 8.3.2011 を実行している Alibaba Cloud Elastic Compute Service (ECS) インスタンスを使用します。異なるバージョンを使用する場合は、コマンドを適宜調整してください。ECS インスタンスを作成するには、「ECS インスタンスの作成」をご参照ください。
ステップ 1: Percona XtraBackup のインストール
Percona XtraBackup は、MySQL データベースの物理ホットバックアップを作成するためのツールです。複数のデータベースエンジンをサポートしています。Ubuntu については、「付録 1: Ubuntu への Percona XtraBackup のインストール」をご参照ください。
MySQL のバージョンに一致する Percona 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.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
ステップ 2: MySQL Backup Helper のインストール
前提条件
-
Golang がインストールされていない場合は、次のコマンドを実行します。
sudo yum install -y go -
unzip がインストールされていない場合は、次のコマンドを実行します。
sudo yum install -y unzip
上記のコマンドは CentOS 用です。Ubuntu を使用している場合は、「付録 2: Ubuntu への Golang と Unzip のインストール」をご参照ください。
手順
-
MySQL Backup Helper のソースコードパッケージをダウンロードします。
wget https://github.com/aliyun/mysql-backup-helper/archive/refs/heads/master.zip説明最新のソースコードパッケージは mysql-backup-helper で入手できます。
-
MySQL Backup Helper のソースコードパッケージを展開します。
unzip master.zip -
mysql-backup-helper-master ディレクトリに移動し、main.go ファイルをコンパイルして backup_helper 実行可能ファイルを生成します。
cd mysql-backup-helper-master go build -a -o backup_helper main.go -
oss_stream ディレクトリに移動し、oss_stream.go ファイルをコンパイルして oss_stream 実行可能ファイルを生成します。
cd oss_stream go build -a -o oss_stream oss_stream.go
ステップ 3: データベースのバックアップとアップロード
-
MySQL Backup Helper を使用して、自己管理 MySQL データベースがバックアップをサポートしていることを確認します。
cd ~/mysql-backup-helper-master && ./backup_helper -host <host_address> -port <port> -user <root_username> --password <root_password>
-
確認後、自己管理データベースの完全バックアップを実行し、バックアップファイルを OSS にアップロードします。OSS バケットを作成していない場合は、前提条件をご参照ください。
MySQL のバージョンに対応するコマンドを選択してください。
MySQL 5.7
innobackupex --backup --host=<host_address> --port=<port> --user=<root_username> --password=<root_password> --stream=xbstream --compress <temp_backup_directory> | ./mysql-backup-helper-master/oss_stream/oss_stream -accessKeyId <access_key_id> -accessKeySecret <access_key_secret> -bucketName <bucket_name> -endpoint <bucket_endpoint> -objectName <custom_backup_filename>例:
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-********.aliyuncs.com -objectName backup_qp.xbデータベースが大きいほど、バックアップに時間がかかります。データベースが大きい場合は、予期せぬログアウトによる中断を防ぐために、
nohupコマンドを使用してバックグラウンドでバックアップを実行してください。以下はコマンドの例です。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' &MySQL 8.0
xtrabackup --backup --host=<host_address> --port=<port> --user=<root_username> --password=<root_password> --stream=xbstream --compress <temp_backup_directory> | ./mysql-backup-helper-master/oss_stream/oss_stream -accessKeyId <access_key_id> -accessKeySecret <access_key_secret> -bucketName <bucket_name> -endpoint <bucket_endpoint> -objectName <custom_backup_filename>例:
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-****.aliyuncs.com -objectName backup_qp.xbデータベースが大きいほど、バックアップに時間がかかります。データベースが大きい場合は、予期せぬログアウトによる中断を防ぐために、
nohupコマンドを使用してバックグラウンドでバックアップを実行してください。以下はコマンドの例です。nohup sh -c 'xtrabackup --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ --stream=xbstream /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' &説明-
バックアップ時間はインスタンスのワークロードに依存します。たとえば、多くの redo ログを生成する大量の書き込み操作や、インスタンスで実行されている大規模トランザクションは、バックアップ時間を増加させます。バックアップが完了すると、
completed OK !が表示されます。 -
現在 OSS にアクセスできない場合は、データベースをローカルディスクにバックアップし、後でファイルをアップロードできます。詳細については、「付録 3: 完全バックアップの実行と OSS へのアップロードを別々のステップで行う」をご参照ください。
-
このステップを完了した後、OSS コンソールにログインしてアップロードを確認できます。アップロードが失敗した場合は、ステップ 2 を繰り返してください。
-
-
RDS インスタンスリストにログインし、ページ左上でリージョンを選択し、左側のナビゲーションウィンドウで バックアップ をクリックします。
-
ユーザーバックアップ タブで、バックアップのインポート をクリックします。
-
バックアップのインポート ダイアログボックスで、指示を読み、3. データのインポート タブに到達するまで 次へ をクリックします。
説明ウィザードがバックアップのインポートプロセスをガイドします。詳細については、「完全バックアップの実行と OSS へのアップロードを別々のステップで行う」をご参照ください。
-
1. データベースのバックアップ:自己管理データベースの完全バックアップを実行します。
-
2. バックアップファイルをOSSにアップロードします:完全バックアップファイルを OSS にアップロードします。
-
-
3. データのインポート タブで、次のパラメーターを設定し、OK をクリックします。
パラメーター
説明
MySQLバージョン
システムは自動的に 5.7/8.0 を表示します。
説明MySQL 5.7 または 8.0 を実行している自己管理データベースからのバックアップのみをインポートできます。
リージョン
ステップ 1 で選択したリージョンです。このリージョンは、バックアップファイルを含む OSS バケットのリージョンと一致している必要があります。
OSS バケット
バックアップファイルを含む OSS バケットを選択します。OSS バケットの詳細については、「ファイルのアップロード」をご参照ください。
OSS オブジェクト名
OSS バケットからバックアップファイルを選択します。OSS オブジェクト名 の横にあるテキストボックスにファイル名を入力してファイルを検索できます。あいまい一致と完全一致の両方がサポートされています。
説明OSS のバックアップファイルは
_QP.XB形式である必要があります。また、_QP.XB形式のファイルをTAR.GZファイルに圧縮して保存することもできます。 制限事項の詳細については、「付録: 使用制限」をご参照ください。補足
バックアップファイルにカスタムの備考を入力します。
ゾーン
ユーザーバックアップのアベイラビリティゾーンを選択します。選択すると、システムはそのゾーンにスナップショットを作成し、バックアップのインポート時間を大幅に短縮します。
説明このユーザーバックアップから新しいインスタンスにデータを復元する場合、新しいインスタンスはこのアベイラビリティゾーンに配置されます。
説明-
RDS に OSS へのアクセスを権限付与していない場合は、3. データのインポート ページの下部にある 権限付与 をクリックします。権限付与ページで、権限付与 をクリックします。
-
バックアップのインポートに関する詳細については、このページの指示をお読みください。
-
-
システムは ユーザーバックアップ ページでバックアップファイルの検証タスクを作成します。タスクの ステータス が 検証中 から 完了 に変わるまで待ちます。
重要検証時間は、バックアップ中のソースインスタンスの状態に依存します。たとえば、多くの redo ログを生成する大量の書き込み操作や、ソースインスタンスで実行されている大規模トランザクションは、検証時間を増加させます。
-
ターゲットのバックアップを見つけ、バックアップ ID/バックアップ名 の 操作 列にある 復元 をクリックします。
-
次のパラメーターを設定し、[次へ: インスタンス設定] をクリックします。
カテゴリ
説明
プライマリノードのゾーン
プライマリインスタンスのアベイラビリティゾーンを選択します。
説明このパラメーターは、ユーザーバックアップをインポートする際にアベイラビリティゾーンを選択しなかった場合にのみ表示されます。
ストレージタイプ
-
ESSD PL1: PL1 パフォーマンスを提供する Enhanced SSD (ESSD) クラウドディスク。
-
標準 SSD: 分散ストレージアーキテクチャに基づく弾性ブロックストレージデバイス。SSD クラウドディスクを選択すると、コンピューティングとストレージが分離されます。
説明詳細については、「ストレージタイプ」をご参照ください。
インスタンスタイプ
汎用 (エントリーレベル): 専用のメモリと I/O リソースを提供し、CPU とストレージリソースは同じサーバー上の他の汎用インスタンスと共有します。
説明各インスタンスタイプには、特定の CPU コア数、メモリサイズ、最大接続数、および最大 IOPS があります。詳細については、「プライマリインスタンスタイプ」をご参照ください。
バケット
データ、システムファイル、ログファイル、およびトランザクションファイルの合計容量。ストレージ容量は 5 GB 単位で調整できます。
-
-
次のパラメーターを設定し、次へ:注文の確認 をクリックします。
カテゴリ
説明
タイプ
VPC: クラシックネットワークよりも高いセキュリティとパフォーマンスを提供する分離されたネットワーク環境。VPC と プライマリノードの VSwitch を指定する必要があります。
説明VPC がターゲットの ECS インスタンスで使用されているものと同じであることを確認してください。そうでない場合、RDS と ECS インスタンスは内部ネットワーク経由で通信できません。
パラメーターテンプレート
インスタンスのパラメータテンプレートを指定します。システムテンプレートまたはカスタムテンプレートを使用して、インスタンスパラメータを事前に設定できます。詳細については、「パラメータテンプレートの使用」をご参照ください。
タイムゾーン
インスタンスのタイムゾーンを設定します。
テーブル名での大文字と小文字の区別
インスタンス内のテーブル名で大文字と小文字を区別するかどうかを指定します。ソースデータベースのテーブル名で大文字と小文字が区別される場合は、データ移行を容易にするために 敏感なケース を選択します。
-
パラメーター を確認し、購入プラン を選択し、利用規約を読んで同意し、今すぐ支払い をクリックします。
説明インスタンスの作成には 1〜5 分かかります。
操作
保持期間の設定
インポートされたユーザーバックアップは、デフォルトで 3 日間保持されます。ビジネスニーズに応じて、この保持期間を変更できます。
ユーザーバックアップが不要になった場合は、削除できます。
-
RDS インスタンスリストにログインします。ページ左上でリージョンを選択します。左側のナビゲーションウィンドウで バックアップ をクリックします。
-
ターゲットの バックアップ ID/バックアップ名 の 有効期限 列にある 保存期間の設定 をクリックします。
-
ダイアログボックスで、ドロップダウンリストから事前設定された保持期間を選択するか、カスタム保存期間 チェックボックスを選択して値を入力します。
説明有効期限 には、バックアップの有効期限が表示されます。有効期限が 2099 年以降の場合、無期限 と表示されます。
-
OK をクリックします。
タグの追加
管理を容易にするために、インポートしたバックアップにタグを追加できます。
-
RDS インスタンスリストにログインします。ページ左上でリージョンを選択します。左側のナビゲーションウィンドウで バックアップ をクリックします。
-
ターゲットの バックアップ ID/バックアップ名 の タグ 列にある + タグの追加 をクリックします。
-
タグの作成 をクリックし、キー と 値 を入力し、テキストボックスの右側にある OK をクリックします。その後、ダイアログボックスの右下隅にある OK をクリックします。
説明すでにタグを作成している場合は、タグの選択 をクリックして既存のタグを追加できます。
-
既存のタグを変更するには、タグにカーソルを合わせ、ポップアップで 編集 をクリックし、ステップ 3 を繰り返します。
ログ詳細の表示
自己管理データベースのバックアップ中にソースデータベースが変更された場合、バックアップファイルには増分データの復元に使用できるログ情報が含まれます。
-
RDS インスタンスリストにログインします。ページ左上でリージョンを選択します。左側のナビゲーションウィンドウで バックアップ をクリックします。
-
ターゲットの バックアップ ID の 操作 列にある 詳細を表示 をクリックします。
-
ダイアログボックスで、ログの詳細を表示できます。
説明ログ情報には、次のフィールドが含まれます。
-
Master_Log_File::増分データが開始されるログファイルの名前です。
-
Master_Log_Position:ログファイル内の増分データの開始位置です。
-
ユーザーバックアップの削除
コストを節約するために、不要になったユーザーバックアップを削除します。
-
RDS インスタンスリストにログインします。ページ左上でリージョンを選択します。左側のナビゲーションウィンドウで バックアップ をクリックします。
-
ターゲットの バックアップ ID/バックアップ名 の 操作 列にある 削除 をクリックします。
-
ダイアログボックスで、OK をクリックします。
その他の操作
-
表示項目の設定: バックアップリストに表示される列をカスタマイズします。
-
RDS インスタンスリストにログインします。ページ左上でリージョンを選択します。左側のナビゲーションウィンドウで バックアップ をクリックします。
-
ページの右側で、
アイコンをクリックします。ポップアップウィンドウで、列を選択し、
または
アイコンをクリックして列を表示または非表示にします。説明左側のペインの列は非表示になります。右側のペインの列は表示されます。
-
OK をクリックします。
-
-
インスタンスリストのエクスポート: 現在のすべてのユーザーバックアップのリストを CSV ファイルにエクスポートします。
-
RDS インスタンスリストにログインします。ページ左上でリージョンを選択します。左側のナビゲーションウィンドウで バックアップ をクリックします。
-
ページの右側で、
アイコンをクリックしてリソースリストをエクスポートします。
-
-
更新: ユーザーバックアップリストを更新します。
-
RDS インスタンスリストにログインします。ページ左上でリージョンを選択します。左側のナビゲーションウィンドウで バックアップ をクリックします。
-
ページの右側で、
アイコンをクリックしてユーザーバックアップリストを更新します。
-