このトピックでは、セルフマネージドMySQLインスタンスのデータを、セルフマネージドMySQLインスタンスと同じMySQLバージョンを実行するApsaraDB RDS for MySQLインスタンスに移行する方法について説明します。 セルフマネージドMySQLインスタンスで完全バックアップを実行し、完全バックアップファイルをObject Storage Service (OSS) バケットにアップロードし、OSSバケットからApsaraDB RDSコンソールに完全バックアップファイルをインポートしてから、完全バックアップファイルから新しいRDSインスタンスにデータを復元できます。
前提条件
移行プロセス
移行プロセスは、次の手順で構成されます。
環境
このトピックでは、自己管理型MySQLインスタンスがElastic Compute Service (ECS) インスタンスにデプロイされています。 自己管理型MySQLインスタンスの作成に使用されるイメージは、CentOS Linux V8.3.2011を実行します。 イメージが他のLinuxディストリビューションを実行する場合は、必要なコマンドを使用する必要があります。 詳細については、「カスタム起動タブでインスタンスを作成する」をご参照ください。
ステップ1: Percona XtraBackupのインストール
Percona XtraBackupはPerconaによって開発され、稼働時間に影響を与えることなくMySQLデータベースをバックアップするのに役立ちます。 Percona XtraBackupは、さまざまなストレージエンジンと互換性があります。 UbuntuにPercona XtraBackupをインストールする方法の詳細については、「付録1: Ubuntuに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バックアップヘルパーをインストールする
前提条件
Goプログラミング言語がインストールされています。 Goがインストールされていない場合は、CLIで次のコマンドを実行してGoをインストールします。
sudo yum install -y go
Unzipユーティリティがインストールされています。 Unzipがインストールされていない場合は、CLIで次のコマンドを実行してUnzipをインストールします。
sudo yum install -y unzip
上記のコマンドは、CentOSでのみサポートされます。 Ubuntuを使用している場合は、付録2: UbuntuオペレーティングシステムにGoとUnzipをインストールするに基づいてユーティリティをインストールします。
手順
MySQL Backup Helperのソースコードパッケージをダウンロードします。
wget https://github.com/aliyun/mysql-backup-helper/archive/refs/heads/master.zip
説明MySQL Backup Helperのソースコードパッケージは、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インスタンスをバックアップし、バックアップデータをRDSインスタンスに移行する
MySQL Backup Helperを使用して、セルフマネージドMySQLインスタンスがバックアップをサポートしているかどうかを確認します。
cd ~/mysql-backup-helper-master && ./backup_helper -host <The IP address of the host in which the self-managed MySQL instance resides> -port <The port that is used to connect to the self-managed MySQL instance> -user <The username of the root account that is used to connect to the self-managed MySQL instance> --password <The password of the root account that is used to connect to the self-managed MySQL instance>
セルフマネージドMySQLインスタンスがバックアップをサポートしている場合は、セルフマネージドMySQLインスタンスで完全バックアップを実行し、完全バックアップファイルをOSSバケットにアップロードします。 OSSバケットが作成されていない場合は、作成します。 詳細は、「前提条件 (Prerequisites)」をご参照ください。
MySQLのバージョンに基づいてコマンドを選択する必要があります。
MySQL 5.7
innobackupex --backup --host=<The IP address of the host in which the self-managed MySQL instance resides> --port=<The port that is used to connect to the self-managed MySQL instance> --user=<The username of the root account that is used to connect to the self-managed MySQL instance> --password=<The password of the root account that is used to connect to the self-managed MySQL instance> --stream=xbstream --compress <The temporary directory that is used to store the full backup file> | ./mysql-backup-helper-master/oss_stream/oss_stream -accessKeyId <The AccessKey ID of your Alibaba Cloud account> -accessKeySecret <The AccessKey secret of your Alibaba Cloud account> -bucketName <The name of your OSS bucket> -endpoint <The endpoint that is used to connect to your OSS bucket> -objectName <The name of the full backup file>
例:
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 LTAI5tCqY18jvvKk**** -accessKeySecret 4A5Q7ZVzcYnWMQPysXFxld**** -bucketName test -endpoint oss-********.aliyuncs.com -objectName backup_qp.xb
セルフマネージドMySQLインスタンスのデータ量は、完全バックアップの完了に必要な時間にも影響します。 データ量が多いほど時間がかかる。 セルフマネージドMySQLインスタンスに大量のデータがある場合は、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 LTAI5tCqY18jvvKk**** -accessKeySecret 4A5Q7ZVzcYnWMQPysXFxld**** -bucketName test -endpoint oss-ap-southeast-1.aliyuncs.com -objectName backup_qp.xb' &
MySQL 8.0
xtrabackup --backup --host=<The IP address of the host in which the self-managed MySQL instance resides> --port=<The port that is used to connect to the self-managed MySQL instance> --user=<The username of the root account that is used to connect to the self-managed MySQL instance> --password=<The password of the root account that is used to connect to the self-managed MySQL instance> --stream=xbstream <The temporary directory that is used to store the full backup file> | ./mysql-backup-helper-master/oss_stream/oss_stream -accessKeyId <The AccessKey ID of your Alibaba Cloud account> -accessKeySecret <The AccessKey secret of your Alibaba Cloud account> -bucketName <The name of your OSS bucket> -endpoint <The endpoint that is used to connect to your OSS bucket> -objectName <The name of the full backup file>
例:
xtrabackup --backup --host=<The IP address of the host in which the self-managed MySQL instance resides> --port=<The port that is used to connect to the self-managed MySQL instance> --user=<The username of the root account that is used to connect to the self-managed MySQL instance> --password=<The password of the root account that is used to connect to the self-managed MySQL instance> --stream=xbstream <The temporary directory that is used to store the full backup file> | ./mysql-backup-helper-master/oss_stream/oss_stream -accessKeyId <The AccessKey ID of your Alibaba Cloud account> -accessKeySecret <The AccessKey secret of your Alibaba Cloud account> -bucketName <The name of your OSS bucket> -endpoint <The endpoint that is used to connect to your OSS bucket> -objectName <The name of the full backup file>
セルフマネージドMySQLインスタンスのデータ量は、完全バックアップの完了に必要な時間にも影響します。 データ量が多いほど時間がかかる。 セルフマネージドMySQLインスタンスに大量のデータがある場合は、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 LTAI5tCqY18jvvKk**** -accessKeySecret 4A5Q7ZVzcYnWMQPysXFxld**** -bucketName test -endpoint oss-ap-southeast-1.aliyuncs.com -objectName backup_qp.xb' &
説明フルバックアップ中の自己管理型MySQLインスタンスのステータスは、フルバックアップの完了に必要な時間に影響します。 たとえば、多数の書き込み操作から多数のredoログレコードが生成されたり、完全バックアップ中に大規模なトランザクションが実行されたりすると、必要な時間が長くなります。 完全バックアップが完了すると、システムは
完了したOK !
メッセージ。OSSバケットに一時的にアクセスできない場合は、完全バックアップファイルをコンピューターに保存することを推奨します。 OSSバケットが期待どおりに実行されたら、完全バックアップファイルをOSSバケットにアップロードできます。 詳細については、「付録3: 完全バックアップの実行、完全バックアップファイルのコンピューターへの保存、および完全バックアップファイルのOSSバケットへのアップロード」をご参照ください。
完全バックアップファイルをOSSバケットにアップロードした後、OSSコンソールにログインして、アップロードが成功したかどうかを確認できます。 アップロードに失敗した場合は、この手順を繰り返すことができます。
ApsaraDB for RDS コンソールにログインします。 上部のナビゲーションバーで、自己管理型MySQLインスタンスのデータを復元するリージョンを選択します。 左側のナビゲーションウィンドウで、バックアップ をクリックします。
ユーザーバックアップ タブで、バックアップのインポート をクリックします。
インポートガイドウィザードで、表示されたメッセージを読み、3. データのインポートのインポート手順。
説明[バックアップのインポート] ウィザードでは、移行プロセスを説明します。 詳細については、「付録3: 完全バックアップの実行、完全バックアップファイルのコンピューターへの保存、および完全バックアップファイルのOSSバケットへのアップロード」をご参照ください。
1. ソースデータベースをバックアップしますのバックアップ: 自己管理型MySQLインスタンスで完全バックアップを実行します。
2. バックアップファイルをOSSにアップロードしますにアップロードする: 自己管理型MySQLインスタンスの完全バックアップファイルをOSSバケットにアップロードします。
3. データのインポートステップで、次のパラメーターを設定し、OK をクリックします。
パラメーター
説明
MySQLバージョン
5.7/8.0の値が自動的に表示されます。
説明MySQL 5.7またはMySQL 8.0を実行する自己管理インスタンスのデータをインポートできます。
リージョン
ステップ1で指定したリージョン。 このパラメーターは、完全バックアップファイルを格納するOSSバケットのリージョンに設定する必要があります。
OSSバケット
自己管理型MySQLインスタンスの完全バックアップファイルを格納するOSSバケット。 OSSバケットの詳細については、「オブジェクトのアップロード」をご参照ください。
OSSファイル名
OSSバケットにオブジェクトとして保存されている完全バックアップファイル。 [OSSファイル名] フィールドに完全バックアップファイルの名前を入力して、ファイルを検索できます。 あいまい一致と完全一致がサポートされています。
説明OSSバケットにオブジェクトとして保存される完全バックアップファイルは、
_QP.XB
形式である必要があります。 または、_QP.XB
形式のファイルをTAR.GZ
形式のパッケージに圧縮し、そのパッケージをオブジェクトとしてOSSバケットに保存することもできます。 詳細については、「付録5: 制限」をご参照ください。注
完全バックアップファイルを識別するのに役立つ説明。
Zone
フルバックアップファイルを保存するOSSバケットのゾーン。 ゾーンを選択すると、ApsaraDB RDSはそのゾーンに1桁の数秒でスナップショットを作成します。 これにより、フルバックアップファイルをOSSバケットにインポートするのに必要な時間が大幅に短縮されます。
説明完全バックアップファイルがインポートされた後、完全バックアップファイルのデータを新しいRDSインスタンスに復元できます。 新しいRDSインスタンスは、選択したゾーンにあります。
ストレージ容量
フルバックアップファイルに必要なストレージの量。 有効値: 20 ~ 6000: Unit: GB。
説明デフォルトでは、必要なストレージの量は、フルバックアップファイルのサイズの3倍です。 ファイルサイズに3を掛けた値が20 GBを超えない場合、このパラメーターはデフォルトで20になります。
説明ApsaraDB RDSがOSSへのアクセスを許可されていない場合は、3. データのインポートのインポート手順。 表示されるページの左下隅で、[権限付与ポリシーの確認] をクリックします。
詳細については、このページの手順をお読みください。
システムは、ユーザーバックアップ タブで完全バックアップファイルを検証するタスクを作成します。 タスクの ステータス パラメーターが 検証中 から 完了 に変わるまで待ちます。
重要ユーザーバックアップファイルの検証に必要な期間は、バックアップ時のRDSインスタンスのステータスによって異なります。 たとえば、次のシナリオでは、ユーザーバックアップファイルの検証に長い時間が必要です。インスタンスのバックアップ中にRDSインスタンスで多数の書き込み操作が実行され、したがって多数のredoログが生成されたり、インスタンスのバックアップ中にRDSインスタンスで大規模なトランザクションが実行されたりします。
必要な完全バックアップファイルを見つけて、バックアップ ID/バックアップ名 列の右側にある 操作 列の 復元 をクリックします。
次のパラメーターを設定し、[次へ: インスタンス設定] をクリックします。
パラメーター
説明
プライマリノードのゾーン
プライマリRDSインスタンスが属するゾーン。
説明ファイルをインポートするときに、フルバックアップファイルを保存するOSSバケットのゾーンを選択しなかった場合、このパラメーターが表示されます。 ファイルをインポートするときに、フルバックアップファイルを保存するOSSバケットのゾーンを選択した場合、このパラメーターは表示されません。
ストレージタイプ
ESSD PL1: 性能レベル1 (PL1) エンタープライズSSD (ESSD) 。
標準SSD: 標準SSDは、Alibaba Cloudの分散ストレージアーキテクチャに基づいて設計されたエラスティックブロックストレージデバイスです。 標準 SSD にデータを保存すると、コンピューティングをストレージから分離できます。
説明詳細については、「ストレージタイプ」をご参照ください。
[インスタンスタイプ]
汎用 (エントリレベル): 汎用RDSインスタンスは、割り当てられたメモリとI/Oリソースを排他的に占有します。 ただし、同じホストにデプロイされている他の汎用RDSインスタンスとCPUコアとストレージリソースを共有します。
説明インスタンスタイプを選択します。 各インスタンスタイプは、特定のCPUコア数、メモリ容量、最大接続数、および最大IOPSをサポートします。 詳細については、「プライマリ ApsaraDB RDS インスタンスタイプ」をご参照ください。
ストレージ容量
RDSインスタンスのストレージ容量を設定します。 ストレージ容量は、RDSインスタンスにデータファイル、システムファイル、ログファイル、およびトランザクションファイルを保存するためにプロビジョニングされます。 5 GBのステップサイズでストレージ容量を調整できます。
次のパラメーターを設定し、[次へ: 注文の確認] をクリックします。
パラメーター
説明
ネットワークタイプ
RDSインスタンスのネットワークタイプ。 [VPC] を選択します。 仮想プライベートクラウド (VPC) は、クラシックネットワークよりも高いセキュリティと優れたパフォーマンスを提供する分離されたネットワークです。 VPCネットワークタイプを選択した場合、VPCおよびプライマリノードのvSwitchパラメーターも設定する必要があります。
説明接続するRDSインスタンスとECSインスタンスは、同じVPCに存在する必要があります。 そうしないと、RDSインスタンスとECSインスタンスは内部ネットワーク経由で通信できません。
パラメーターテンプレート
RDSインスタンスで使用されるパラメーターテンプレート。 システムパラメータテンプレートまたはカスタムパラメータテンプレートを選択できます。 詳細については、「パラメーターテンプレートの使用」をご参照ください。
タイムゾーン
RDSインスタンスのタイムゾーンを選択します。
テーブル名のケース感度
RDSインスタンスのテーブル名が大文字と小文字を区別するかどうかを指定します。 セルフマネージドMySQLインスタンスのテーブル名が大文字と小文字を区別する場合、RDSインスタンスとセルフマネージドMySQLインスタンス間のデータ移行を容易にするために大文字と小文字を区別するを選択することを推奨します。
[パラメーター] セクションでRDSインスタンスの設定を確認し、[購入プラン] パラメーターを設定し、利用規約を読んで選択し、[今すぐ支払い] をクリックして支払いを完了します。
説明ApsaraDB RDSは、RDSインスタンスの作成に1〜5分かかります。 インスタンスが作成されるまで待ちます。
次のステップ
フルバックアップファイルの保持期間の設定
デフォルトでは、完全バックアップファイルはApsaraDB RDSにインポートされてから3日間保持されます。 ビジネス要件に基づいて保持期間を調整できます。
完全バックアップファイルが不要になった場合は、ファイルを削除できます。
ApsaraDB RDSコンソールにログインします。 上部のナビゲーションバーで、リージョンを選択します。 左側のナビゲーションウィンドウで、バックアップ をクリックします。
必要な完全バックアップファイルを見つけて、バックアップ ID/バックアップ名 列の右側にある 有効期限 列の 保存期間の設定 をクリックします。
表示されるダイアログボックスで、ApsaraDB RDSが提供するドロップダウンリストから保存期間を選択します。 または、カスタム保存期間 を選択し、数値を入力します。 上向き矢印または下向き矢印をクリックして、保持期間を調整できます。
説明有効期限 列には、フルバックアップファイルの有効期限が表示されます。 有効期限が2099を超えると、Permanentとして表示されます。
[OK] をクリックします。
フルバックアップファイルにタグを追加する
完全バックアップファイルをApsaraDB RDSにインポートした後、ファイルにタグを追加できます。
ApsaraDB RDSコンソールにログインします。 上部のナビゲーションバーで、リージョンを選択します。 左側のナビゲーションウィンドウで、バックアップ をクリックします。
必要な完全バックアップファイルを見つけて、バックアップ ID/バックアップ名 列の右側にある タグ 列の + タグの追加 をクリックします。
表示されるダイアログボックスで、タグの作成 をクリックし、タグの キー フィールドと 値 フィールドを指定し、パラメーターの右側にある OK をクリックしてタグを作成し、ダイアログボックスの右下隅にある OK をクリックします。
説明タグが存在する場合は、タグの選択 ドロップダウンリストからタグを選択して、タグを完全バックアップファイルに追加します。
フルバックアップファイルのタグを変更する場合は、タグの上にポインタを移動し、編集 をクリックします。 表示されるツールチップで、手順3を繰り返してタグを作成または選択します。
完全バックアップファイルのログデータを確認する
フルバックアップ中にセルフマネージドMySQLインスタンスでデータ変更が行われた場合、生成されたフルバックアップファイルにはデータ変更を記録するログ情報が含まれます。 ログ情報を使用して、増分データを復元できます。 詳細については、「手順3: セルフマネージドMySQLインスタンスをバックアップし、バックアップデータをRDSインスタンスに移行する」をご参照ください。
ApsaraDB RDSコンソールにログインします。 上部のナビゲーションバーで、リージョンを選択します。 左側のナビゲーションウィンドウで、バックアップ をクリックします。
必要な完全バックアップファイルを見つけて、[バックアップID /名前] 列の右側にある 操作 列の 詳細を表示 をクリックします。
表示されるメッセージで、ログデータを確認します。
説明次のリストは、ログ情報を示しています。
Master_Log_File:: 増分データを格納する最初のログファイルの名前。
Master_Log_Position:: 最初のログファイルの増分データを含む最初のログエントリ。
完全なバックアップファイルを削除する
フルバックアップファイルが不要になった場合は、ファイルを削除してコストを削減できます。
ApsaraDB RDSコンソールにログインします。 上部のナビゲーションバーで、リージョンを選択します。 左側のナビゲーションウィンドウで、バックアップ をクリックします。
必要な完全バックアップファイルを見つけて、バックアップ ID/バックアップ名 列の右側にある 操作 列の 削除 をクリックします。
表示されたメッセージボックスで、OK をクリックします。
その他の操作の実行
表示項目の設定: アイコンをクリックすると、[ユーザーバックアップ] タブで列を表示または非表示にできます。 デフォルトでは、すべての列が表示されます。
ApsaraDB RDSコンソールにログインします。 上部のナビゲーションバーで、リージョンを選択します。 左側のナビゲーションウィンドウで、バックアップ をクリックします。
タブの右上隅にあるアイコンをクリックします。 表示されるダイアログボックスで、表示または非表示にする列を選択し、またはアイコンをクリックして列を管理します。
説明左側のリストの列は非表示になり、右側のリストの列は表示されます。
[OK] をクリックします。
インスタンスリストのエクスポート: アイコンをクリックすると、バックアップ情報をCSVファイルとしてエクスポートできます。
ApsaraDB for RDS コンソールにログインします。 上部のナビゲーションバーで、リージョンを選択します。 左側のナビゲーションウィンドウで、[バックアップ] をクリックします。
タブの右上隅にあるアイコンをクリックして、バックアップ情報をエクスポートします。
更新: アイコンをクリックして、[ユーザーバックアップ] タブを更新できます。
ApsaraDB for RDS コンソールにログインします。 上部のナビゲーションバーで、リージョンを選択します。 左側のナビゲーションウィンドウで、[バックアップ] をクリックします。
アイコンをクリックして、[ユーザーバックアップ] タブを更新します。