このトピックでは、セルフマネージドMySQLインスタンスのデータを、セルフマネージドMySQLインスタンスと同じMySQLバージョンを実行するApsaraDB RDS for MySQLインスタンスに移行する方法について説明します。 セルフマネージドMySQLインスタンスで完全バックアップを実行し、完全バックアップファイルをObject Storage Service (OSS) バケットにアップロードし、完全バックアップファイルをOSSバケットから一時RDSインスタンスにインポートしてから、完全バックアップファイルから宛先RDSインスタンスにデータを復元できます。
前提条件
移行プロセス
移行プロセスは、次の手順で構成されます。
環境
このトピックでは、自己管理型MySQLインスタンスがElastic Compute Service (ECS) インスタンスにデプロイされています。 自己管理型MySQLインスタンスの作成に使用されるイメージは、CentOS Linux V8.3.2011を実行します。 詳細については、「ウィザードを使用したインスタンスの作成」をご参照ください。
課金ルール
ユーザーバックアップファイルの後 がApsaraDB RDSインスタンスにインポートされた場合、ファイルは24時間以内に無料で保存されます。 ファイルが24時間以上保存されている場合は、ストレージ料金が課金されます。 詳細については、「ストレージ料金」をご参照ください。
ステップ1: Percona XtraBackupのインストール
Percona XtraBackupはPerconaによって開発され、稼働時間に影響を与えることなくMySQLデータベースをバックアップするのに役立ちます。 Percona XtraBackupは、さまざまなストレージエンジンと互換性があります。 UbuntuにPercona XtraBackupをインストールする方法の詳細については、「付録1: UbuntuにXtraBackupをインストールする」をご参照ください。
Perconaリポジトリをインストールします。
sudo yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm
Perconaリポジトリを有効にします。
percona-release enable-only tools release
Percona XtraBackup 2.4またはPercona XtraBackup 8.0をインストールします。
sudo yum install -y percona-xtrabackup-24# Percona XtraBackup 2.4をインストールします。 sudo yum install -y percona-xtrabackup-80# Percona XtraBackup 8.0をインストールします。
説明MySQLのバージョンに基づいてPercona XtraBackupのバージョンを選択する必要があります。
MySQL 5.7を使用する場合は、Percona XtraBackup 2.4をインストールする必要があります。
MySQL 8.0を使用する場合は、Percona XtraBackup 8.0をインストールする必要があります。
ステップ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バックアップヘルパーを使用して、セルフマネージドMySQLインスタンスがバックアップをサポートしているかどうかを確認します。
cd ~/mysql-backup-helper-master &&。/backup_helper -host <セルフマネージドMySQLインスタンスが存在するホストのIPアドレス> -port <セルフマネージドMySQLインスタンスへの接続に使用されるポート番号> -user <セルフマネージドMySQLインスタンスへの接続に使用されるルートアカウントのユーザー名> -- password <セルフへの接続に使用されるルートアカウントのパスワードマネージドMySQLインスタンス>
セルフマネージドMySQLインスタンスがバックアップをサポートしている場合は、セルフマネージドMySQLインスタンスで完全バックアップを実行し、完全バックアップファイルをOSSバケットにアップロードします。 OSSバケットが作成されていない場合は、作成します。 詳細については、このトピックの「前提条件」セクションを参照してください。
innobackupex -- backup -- host=<セルフマネージドMySQLインスタンスが存在するホストのIPアドレス> -- port=<セルフマネージドMySQLインスタンスへの接続に使用されるポート番号> -- user=<セルフマネージドMySQLインスタンスへの接続に使用されるルートアカウントのユーザー名> --=password <使用されるルートアカウントのパスワードを使用して、自己管理型MySQL instanc> -- stream=xbstream -- compress <フルバックアップファイルの格納に使用される一時ディレクトリ> | に接続します。/mysql-backup-helper-master/oss_stream/oss_stream -accessKeyId <Alibaba CloudアカウントのAccessKey ID> -accessKeySecret <Alibaba CloudアカウントのAccessKey secret> -bucketName <OSSバケットの名前> -endpoint <OSSバケットへの接続に使用されるエンドポイント> -objectName <フルバックアップファイルの名前>
例:
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 LTAI5tCqY18jvKk ******** -accessKeySecret 4A5Q7ZVzcYnWMQPysXFxld *********-bucketNameテスト-エンドポイントoss-*********** .aliyuncs.com -objectName backup_qp.xb
説明MySQL 8.0を実行する自己管理インスタンスで完全バックアップを実行する場合は、上記のコマンドのinnobackexをxtrabackupに置き換える必要があります。
フルバックアップ中の自己管理型MySQLインスタンスのステータスは、フルバックアップの完了に必要な時間に影響します。 たとえば、多数の書き込み操作から多数のredoログレコードが生成されたり、完全バックアップ中に大規模なトランザクションが実行されたりすると、必要な時間が長くなります。 完全バックアップが完了すると、システムは
完了したOK !
メッセージ。セルフマネージド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 -endpoin t oss-ap-southeast-1.aliyuncs.com -objectName backup_qp.xb ' &
OSSバケットに一時的にアクセスできない場合は、完全バックアップファイルをコンピューターに保存することを推奨します。 OSSバケットが期待どおりに実行されたら、完全バックアップファイルをOSSバケットにアップロードできます。 詳細については、「付録3: 完全バックアップの実行、完全バックアップファイルのコンピューターへの保存、および完全バックアップファイルのOSSバケットへのアップロード」をご参照ください。
完全バックアップファイルをOSSバケットにアップロードした後、OSSコンソールにログインして、アップロードが成功したかどうかを確認できます。 アップロードに失敗した場合は、この手順を繰り返すことができます。
ApsaraDB RDSコンソールにログインします。 上部のナビゲーションバーで、自己管理型MySQLインスタンスのデータを復元するリージョンを選択します。
左側のナビゲーションウィンドウで、バックアップ をクリックします。
表示されるページの [ユーザーバックアップ] タブで、バックアップのインポート をクリックします。
表示されるウィザードで、表示されるメッセージを読み、3. データのインポートのインポート手順。
OSSバケットドロップダウンリストからOSSバケットの名前を選択します。 ファイル名 セクションで、インポートするフルバックアップファイルを選択します。 [ゾーン] ドロップダウンリストから、完全バックアップファイルをインポートするゾーンを選択します。 次に、OK をクリックします。
説明ApsaraDB RDSがOSSリソースへのアクセスを許可されていない場合は、権限付与 をクリックします。 表示されるページの左下隅で、[権限付与ポリシーの確認] をクリックします。
ApsaraDB RDSは、バックアップファイルをチェックするタスクを作成します。 ユーザーバックアップ タブでタスクのステータスを確認できます。 タスクのステータスが検証中から完了に変わると、タスクは完了です。 タスクの完了に必要な時間は、フルバックアップ中の自己管理型MySQLインスタンスのステータスによって異なります。 たとえば、多数の書き込み操作から多数のredoログレコードが生成されたり、完全バックアップ中に大規模なトランザクションが実行されたりすると、タスクを完了するのに必要な時間が長くなります。
完全なバックアップファイルを検索し、操作 列の 復元 をクリックします。
次のパラメーターを設定し、[次へ: インスタンス設定] をクリックします。
パラメーター
説明
プライマリノードのゾーン
プライマリRDSインスタンスが属するゾーン。
説明ファイルをインポートするときに、フルバックアップファイルを保存するOSSバケットのゾーンを選択しなかった場合、このパラメーターが表示されます。 ファイルをインポートするときに、フルバックアップファイルを保存するOSSバケットのゾーンを選択した場合、このパラメーターは表示されません。
ストレージタイプ
ESSD PL1: 性能レベル1 (PL1) のESSD (enhanced SSD) 。
標準SSD: 標準SSDは、Alibaba Cloudの分散ストレージアーキテクチャに基づいて設計されたエラスティックブロックストレージデバイスです。 標準 SSD にデータを保存すると、コンピューティングをストレージから分離できます。
説明詳細については、「ストレージタイプ」をご参照ください。
[インスタンスタイプ]
汎用 (エントリレベル): 汎用RDSインスタンスは、割り当てられたメモリとI/Oリソースを排他的に占有します。 ただし、同じホストにデプロイされている他の汎用RDSインスタンスとCPUコアとストレージリソースを共有します。
説明各インスタンスタイプは、特定のCPUコア数、メモリ容量、最大接続数、および最大IOPSをサポートします。 詳細については、「プライマリApsaraDB RDSインスタンスタイプ」をご参照ください。
容量
RDSインスタンスにデータファイル、システムファイル、ログファイル、およびトランザクションファイルを保存するためにプロビジョニングされたストレージ容量。 5 GBのステップサイズでストレージ容量を調整できます。
次のパラメーターを設定し、[次へ: インスタンス設定] をクリックします。
パラメーター
説明
ネットワークタイプ
RDSインスタンスのネットワークタイプ。 [VPC] を選択します。 仮想プライベートクラウド (VPC) は、クラシックネットワークよりも高いセキュリティと優れたパフォーマンスを提供する分離されたネットワークです。 VPCネットワークタイプを選択した場合、VPCおよびプライマリノードのvSwitchパラメーターも設定する必要があります。
説明接続するRDSインスタンスとECSインスタンスは、同じVPCに存在する必要があります。 そうしないと、RDSインスタンスとECSインスタンスは内部ネットワーク経由で通信できません。
パラメーターテンプレート
RDSインスタンスで使用されるパラメーターテンプレート。 システムパラメータテンプレートまたはカスタムパラメータテンプレートを選択できます。 詳細については、「パラメータテンプレートを使用してApsaraDB RDS For MySQLインスタンスのパラメータを設定する」をご参照ください。
タイムゾーン
RDSインスタンスのタイムゾーン。
テーブル名のケース感度
RDSインスタンスのテーブル名が大文字と小文字を区別するかどうかを指定します。 セルフマネージドMySQLインスタンスのテーブル名が大文字と小文字を区別する場合、RDSインスタンスとセルフマネージドMySQLインスタンス間のデータ移行を容易にするために大文字と小文字を区別するを選択することを推奨します。
[パラメーター] セクションでRDSインスタンスの設定を確認し、[購入プラン] パラメーターを設定し、利用規約を読んで選択し、[今すぐ支払い] をクリックして支払いを完了します。
説明ApsaraDB RDSは、RDSインスタンスの作成に1〜5分かかります。 インスタンスが作成されるまで待ちます。
付録1: UbuntuオペレーティングシステムにPercona XtraBackupをインストールする
最新のPerconaパッケージをダウンロードします。
wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.de b
ダウンロードしたPerconaパッケージをインストールします。
sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.de b
Perconaリポジトリを有効にします。
percona-release enable-only tools release
ローカルリポジトリ内のソフトウェアアプリケーションのリストを更新します。
apt-getアップデート
Percona XtraBackup 2.4またはPercona XtraBackup 8.0をインストールします。
sudo apt-get install -y percona-xtrabackup-24# Percona XtraBackup 2.4をインストールします。 sudo apt-get install -y percona-xtrabackup-80# Percona XtraBackup 8.0をインストールします。
説明MySQLのバージョンに基づいてPercona XtraBackupのバージョンを選択する必要があります。 次のリストでは、バージョンマッピングについて説明します。
MySQL 5.7を使用する場合は、Percona XtraBackup 2.4をインストールする必要があります。
MySQL 8.0を使用する場合は、Percona XtraBackup 8.0をインストールする必要があります。
qpressをインストールします。
sudo apt-get install -y qpress
説明qpressは、Percona XtraBackupによって生成されたバックアップファイルを解凍するために使用されます。 Ubuntuオペレーティングシステムを使用している場合、Percona XtraBackupはqpressと統合されていないため、qpressをインストールする必要があります。
上記の手順のいずれかを実行したときに、[次のパッケージの依存関係が満たされていない]
に似たメッセージが表示された場合は、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アップデート sudo apt-get install -y golang-go
Unzipユーティリティをインストールします。
sudo apt-get -y install unzip
付録3: 完全バックアップを実行し、完全バックアップファイルをコンピューターに保存してから、完全バックアップファイルをOSSバケットにアップロードします。
セルフマネージドMySQLインスタンスで完全バックアップを実行し、完全バックアップファイルをコンピューターに保存します。
innobackupex -- backup -- host=<セルフマネージドMySQLインスタンスが存在するホストのIPアドレス> -- port=<セルフマネージドMySQLインスタンスへの接続に使用されるポート番号> -- user=<セルフマネージドMySQLインスタンスへの接続に使用されるルートアカウントのユーザー名> --=password <使用されるルートアカウントのパスワード自己管理型MySQLインスタンスに接続するには> -- stream=xbstream -- compress <フルバックアップファイルの格納に使用される一時ディレクトリ> > /<フルバックアップファイルの格納に使用されるディレクトリ> /<フルバックアップファイルの名前>_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インスタンスで実行される場合、上記のコマンドのinnobackupexをxtrabackupに置き換える必要があります。
OSS_Streamを使用して、完全バックアップファイルをOSSバケットにアップロードします。
cat /<完全バックアップファイルの格納に使用されるディレクトリ>/<完全バックアップファイルの名前>_qp.xb | 。/mysql-backup-helper-master/oss_stream/oss_stream -accessKeyId LTAI5tCqY18jvKk ******** -accessKeySecret 4A5Q7ZVzcYnWMQPysXFxld *********-bucketNameテスト-エンドポイントoss-*********** .aliyuncs.com -objectName backup_qp.xb
例:
cat /root/backup_qp.xb | /mysql-backup-helper-master/oss_stream/oss_stream -accessKeyId LTAI5tCqY18jvKk ******** -accessKeySecret 4A5Q7ZVzcYnWMQPysXFxld *********-bucketNameテスト-エンドポイントoss-*********** .aliyuncs.com -objectName backup_qp.xb
付録5: 制限
項目 | 説明 |
MySQL バージョン | 自己管理型MySQLインスタンスは、次のいずれかのMySQLバージョンを実行する必要があります。
説明
|
自己管理型MySQLインスタンス |
|
バックアップ |
|
OSS |
|
復元 |
|
レプリケーション |
|