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

ApsaraDB RDS:MySQL 5.7またはMySQL 8.0を実行する自己管理型インスタンスのデータをApsaraDB RDS for MySQLインスタンスに移行する

最終更新日:Jan 18, 2024

このトピックでは、セルフマネージドMySQLインスタンスのデータを、セルフマネージドMySQLインスタンスと同じMySQLバージョンを実行するApsaraDB RDS for MySQLインスタンスに移行する方法について説明します。 セルフマネージドMySQLインスタンスで完全バックアップを実行し、完全バックアップファイルをObject Storage Service (OSS) バケットにアップロードし、完全バックアップファイルをOSSバケットから一時RDSインスタンスにインポートしてから、完全バックアップファイルから宛先RDSインスタンスにデータを復元できます。

前提条件

  • Alibaba Cloud アカウントが作成済みであること。

  • 自己管理型インスタンスが移行条件を満たしていること。 詳細については、「付録5: 制限」をご参照ください。

  • OSSバケットは、ターゲットRDSインスタンスが存在するリージョンに作成されます。 バケットの作成方法の詳細については、「バケットの作成」をご参照ください。

    説明

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

移行プロセス

移行プロセスは、次の手順で構成されます。

ステップ1: Percona XtraBackupのインストール

ステップ2: MySQLバックアップヘルパーのインストール

手順3: セルフマネージドMySQLインスタンスのバックアップとバックアップデータの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をインストールする」をご参照ください。

  1. Perconaリポジトリをインストールします。

    sudo yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm
  2. Perconaリポジトリを有効にします。

    percona-release enable-only tools release
  3. 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をインストールする」をご参照ください。

  1. MySQL Backup Helperのソースコードパッケージをダウンロードします。

    wget https://github.com/aliyun/mysql-backup-helper/archive/refs/heads/master.zip
    説明

    MySQL Backup Helperのソースコードパッケージは、mysql-backup-helperページからダウンロードできます。

  2. MySQL Backup Helperのソースコードパッケージを解凍します。

    unzip master.zip
  3. mysql-backup-helper-masterフォルダーに移動し、main. Goファイルをbackup_helperという名前の実行可能ファイルにコンパイルします。

    cd mysql-backup-helper-master
    go build -a -o backup_helper main.go 
  4. oss_streamフォルダーに移動し、oss_stream.goファイルをoss_streamという名前の実行可能ファイルにコンパイルします。

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

ステップ3: 自己管理型MySQLインスタンスをバックアップし、バックアップデータをRDSインスタンスに移行する

  1. MySQLバックアップヘルパーを使用して、セルフマネージドMySQLインスタンスがバックアップをサポートしているかどうかを確認します。

    cd ~/mysql-backup-helper-master &&。/backup_helper -host <セルフマネージドMySQLインスタンスが存在するホストのIPアドレス> -port <セルフマネージドMySQLインスタンスへの接続に使用されるポート番号> -user <セルフマネージドMySQLインスタンスへの接続に使用されるルートアカウントのユーザー名> -- password <セルフへの接続に使用されるルートアカウントのパスワードマネージドMySQLインスタンス>

  2. セルフマネージド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を実行する自己管理インスタンスで完全バックアップを実行する場合は、上記のコマンドのinnobackexxtrabackupに置き換える必要があります。

    • フルバックアップ中の自己管理型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コンソールにログインして、アップロードが成功したかどうかを確認できます。 アップロードに失敗した場合は、この手順を繰り返すことができます。

  3. ApsaraDB RDSコンソールにログインします。 上部のナビゲーションバーで、自己管理型MySQLインスタンスのデータを復元するリージョンを選択します。

  4. 左側のナビゲーションウィンドウで、バックアップ をクリックします。

  5. 表示されるページの [ユーザーバックアップ] タブで、バックアップのインポート をクリックします。

  6. 表示されるウィザードで、表示されるメッセージを読み、3. データのインポートのインポート手順。

  7. OSSバケットドロップダウンリストからOSSバケットの名前を選択します。 ファイル名 セクションで、インポートするフルバックアップファイルを選択します。 [ゾーン] ドロップダウンリストから、完全バックアップファイルをインポートするゾーンを選択します。 次に、OK をクリックします。

    説明
    • ApsaraDB RDSがOSSリソースへのアクセスを許可されていない場合は、権限付与 をクリックします。 表示されるページの左下隅で、[権限付与ポリシーの確認] をクリックします。

    • ApsaraDB RDSは、バックアップファイルをチェックするタスクを作成します。 ユーザーバックアップ タブでタスクのステータスを確認できます。 タスクのステータス検証中から完了に変わると、タスクは完了です。 タスクの完了に必要な時間は、フルバックアップ中の自己管理型MySQLインスタンスのステータスによって異なります。 たとえば、多数の書き込み操作から多数のredoログレコードが生成されたり、完全バックアップ中に大規模なトランザクションが実行されたりすると、タスクを完了するのに必要な時間が長くなります。

  8. 完全なバックアップファイルを検索し、操作 列の 復元 をクリックします。

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

    パラメーター

    説明

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

    プライマリ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のステップサイズでストレージ容量を調整できます。

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

    パラメーター

    説明

    ネットワークタイプ

    RDSインスタンスのネットワークタイプ。 [VPC] を選択します。 仮想プライベートクラウド (VPC) は、クラシックネットワークよりも高いセキュリティと優れたパフォーマンスを提供する分離されたネットワークです。 VPCネットワークタイプを選択した場合、VPCおよびプライマリノードのvSwitchパラメーターも設定する必要があります。

    説明

    接続するRDSインスタンスとECSインスタンスは、同じVPCに存在する必要があります。 そうしないと、RDSインスタンスとECSインスタンスは内部ネットワーク経由で通信できません。

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

    RDSインスタンスで使用されるパラメーターテンプレート。 システムパラメータテンプレートまたはカスタムパラメータテンプレートを選択できます。 詳細については、「パラメータテンプレートを使用してApsaraDB RDS For MySQLインスタンスのパラメータを設定する」をご参照ください。

    タイムゾーン

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

    テーブル名のケース感度

    RDSインスタンスのテーブル名が大文字と小文字を区別するかどうかを指定します。 セルフマネージドMySQLインスタンスのテーブル名が大文字と小文字を区別する場合、RDSインスタンスとセルフマネージドMySQLインスタンス間のデータ移行を容易にするために大文字と小文字を区別するを選択することを推奨します。

  11. [パラメーター] セクションでRDSインスタンスの設定を確認し、[購入プラン] パラメーターを設定し、利用規約を読んで選択し、[今すぐ支払い] をクリックして支払いを完了します。

    説明

    ApsaraDB RDSは、RDSインスタンスの作成に1〜5分かかります。 インスタンスが作成されるまで待ちます。

付録1: UbuntuオペレーティングシステムにPercona XtraBackupをインストールする

  1. 最新のPerconaパッケージをダウンロードします。

    wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.de b
  2. ダウンロードしたPerconaパッケージをインストールします。

    sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.de b
  3. Perconaリポジトリを有効にします。

    percona-release enable-only tools release
  4. ローカルリポジトリ内のソフトウェアアプリケーションのリストを更新します。

    apt-getアップデート
  5. 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をインストールする必要があります。

  6. 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バケットにアップロードします。

  1. セルフマネージド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インスタンスで実行される場合、上記のコマンドのinnobackupexxtrabackupに置き換える必要があります。

  2. 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 5.7.32以前

  • MySQL 8.0.18以前

説明
  • セルフマネージドMySQLインスタンスは、ターゲットRDSインスタンスと同じMySQLバージョンを実行する必要があります。 たとえば、MySQL 5.7を実行するセルフマネージドMySQLインスタンスのバックアップデータは、MySQL 5.7を実行するRDSインスタンスにのみ復元できます。

  • MySQLバージョンが要件を満たしていない場合は、「セルフマネージドMySQLデータベースからApsaraDB RDS for MySQLインスタンスへのデータ移行」の手順に基づいてデータを移行できます。

自己管理型MySQLインスタンス

  • 自己管理型MySQLインスタンスのデータは、インスタンスが存在するホストのdatadirディレクトリに格納する必要があります。 CLIで次のコマンドを実行して、datadirディレクトリにアクセスできます。mysqladmin -u <セルフマネージドMySQLインスタンスへの接続に使用されるルートアカウントのユーザー名> -p <セルフマネージドMySQLインスタンスへの接続に使用されるルートアカウントのパスワード> variables | grep datadir

  • innodb_data_file_pathパラメーターをデフォルト値ibdata1に設定する必要があります。

バックアップ

  • 自己管理型MySQLインスタンスの完全バックアップが完了すると、自己管理型インスタンスで生成された増分データは完全バックアップファイルに含まれません。

  • 自己管理型MySQLインスタンスがMySQL 5.7を実行する場合、Percona XtraBackup 2.4を使用してインスタンスをバックアップする必要があります。

  • Percona XtraBackupを使用して自己管理型MySQLインスタンスをバックアップする場合、-- tables-- tables-exclude-- tables-file-- databases、または -- databases-fileオプションを設定できません。

  • OSSバケットから暗号化されたオブジェクトを読み取ることはできません。 したがって、OSSバケットを作成するときは、Encryption MethodパラメーターをNoneに設定する必要があります。

  • 差分バックアップファイルとログバックアップファイルはサポートされていません。

  • フルバックアップファイルの名前に特殊文字を含めることはできません。 完全バックアップファイルの名前に特殊文字が含まれている場合、ファイルをターゲットRDSインスタンスにインポートできません。

  • ApsaraDB RDSのサービスアカウントにOSSバケットへのアクセスを許可すると、Resource access Management (RAM) にAliyunRDSImportRoleという名前のRAMロールが作成されます。 このRAMロールを変更または削除しないでください。 このRAMロールを変更または削除した場合、ApsaraDB RDSはOSSバケットからオブジェクトをダウンロードできません。

  • 移行が完了する前に、OSSバケットから完全バックアップファイルを削除しないでください。 移行が完了する前に完全バックアップファイルを削除すると、移行は失敗します。

  • OSSバケットにオブジェクトとして保存されている完全バックアップファイルの名前には、_QP.XBまたはTAR.GZを追加する必要があります。

OSS

  • CLIを使用して完全バックアップファイルを部品のセットとしてOSSバケットにアップロードする場合は、ファイルのサイズが16テラバイトを超えないようにする必要があります。 詳細については、「制限事項」をご参照ください。

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

復元

  • 自己管理型MySQLインスタンスのデータは、新しいRDSインスタンスにのみ移行できます。 これにより、意図しない操作による既存のRDSインスタンスのデータの上書きを防ぐことができます。

  • 自己管理MySQLインスタンスのデータを、ストレージ容量が自己管理MySQLインスタンスのデータ量よりも少ないRDSインスタンスに移行することはできません。 詳細については、「プライマリApsaraDB RDSインスタンスタイプ」をご参照ください。

  • OSSバケットからApsaraDB RDSに完全バックアップファイルをインポートすると、ApsaraDB RDSは一時RDSインスタンスを作成し、完全バックアップファイルを一時RDSインスタンスにインポートしてから、一時RDSインスタンスから移行先RDSインスタンスにデータを復元します。 一時RDSインスタンスのデフォルトのストレージ容量は、フルバックアップファイルのサイズの5倍です。 フルバックアップファイルをインポートした後、一時RDSインスタンスの使用可能なストレージが不十分な場合は、一時RDSインスタンスのストレージ容量を増やすことができます。

  • 自己管理型MySQLインスタンスのアカウント、カスタム関数、およびストアドプロシージャは、移行先RDSインスタンスに移行できません。 アカウント、カスタム関数、およびストアドプロシージャを記録する必要があります。 移行が完了したら、アカウント、カスタム関数、およびストアドプロシージャを移行先RDSインスタンスに手動で追加する必要があります。

  • セルフマネージドMySQLインスタンスのタイムゾーン情報は、移行先RDSインスタンスに移行できません。 タイムゾーン情報を記録する必要があります。 移行が完了したら、移行先RDSインスタンスのタイムゾーンを手動で設定する必要があります。

  • 移行先RDSインスタンスは、標準SSDを使用してRDS Basic EditionでMySQL 5.7またはMySQL 8.0を実行する従量課金インスタンスである必要があります。

レプリケーション

  • データは、グローバルトランザクション識別子 (GTID) のみに基づいて複製できます。 そのため、セルフマネージドMySQLインスタンスでGTIDベースのレプリケーションを有効にし、gtid_modeパラメーターとenforce_gtid_consistencyパラメーターをONに設定する必要があります。

  • バックアップ検証レコードのデフォルトの保持期間は7日です。 ApsaraDB RDSは、7日前に生成されたバックアップ検証レコードとこれらのレコードのスナップショットを自動的に削除します。 そのため、移行が完了したら、できるだけ早い機会に自己管理型MySQLインスタンスの増分データを移行先RDSインスタンスにレプリケートすることを推奨します。