このトピックでは、mysqldumpを使用して、ApsaraDB RDS for MySQLインスタンスのデータを論理バックアップファイルから自己管理型MySQLインスタンスに復元する方法について説明します。
データ復元方法の選択方法の詳細については、「データ復元方法の概要」をご参照ください。
RDSインスタンスのデータを物理バックアップファイルから自己管理型MySQLインスタンスに復元する方法の詳細については、「ApsaraDB RDS For MySQLインスタンスのデータを物理バックアップファイルから自己管理型MySQLデータベースに復元する」をご参照ください。
RDSインスタンスのバックアップ方法の詳細については、「ApsaraDB RDSインスタンスのバックアップ」をご参照ください。
前提条件
RDSインスタンスは次の要件を満たしています。
RDSインスタンスは、MySQL 8.0、MySQL 5.7、MySQL 5.6、またはMySQL 5.5を実行します。
RDSインスタンスはRDS High-availability Editionを実行します。
RDSインスタンスはローカルディスクを使用しています。
説明RDSインスタンスの [基本情報] ページに移動して、RDSインスタンスに関する前述の情報を表示できます。
RDSインスタンスで論理バックアップが完了しました。 詳細については、「自動バックアップ機能の使用」をご参照ください。
RDSインスタンスのテーブルは、透過的データ暗号化 (TDE) を使用して暗号化されません。 TDEを使用してテーブルを暗号化すると、復元プロセス中にエラーが発生します。 論理バックアップファイルからRDSインスタンスのデータを復元する前に、暗号化されたテーブルを復号化する必要があります。 詳細については、「TDEの設定」をご参照ください。
ランタイム環境
自己管理インスタンスは64ビットLinuxオペレーティングシステムにインストールされ、RDSインスタンスと同じMySQLバージョンを実行します。 このトピックでは、CentOS 7とMySQL 5.7を例として使用します。
手順
- [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
表示されるページの左側のナビゲーションウィンドウで、[バックアップと復元] をクリックします。
タブで、[データバックアップ] タブをクリックします。 次に、ダウンロードする論理バックアップファイルを見つけて、[操作] 列の [インスタンスバックアップのダウンロード] をクリックします。
説明論理バックアップは手動で作成する必要があります。 詳細については、「ApsaraDB RDS For MySQLインスタンスの手動バックアップ」をご参照ください。
ダウンロードインスタンスバックアップが見つからない場合は、RDSインスタンスのMySQLバージョンが論理バックアップファイルのダウンロードをサポートしているかどうかを確認する必要があります。 詳細については、「バックアップファイルのダウンロード」をご参照ください。
[インスタンスバックアップファイルのダウンロード] ダイアログボックスで、[パブリックURLのコピー] の右側にあるアイコンをクリックします。
重要インターネットを介したバックアップダウンロードの無料クォータが提供されます。 インターネット経由でバックアップファイルをダウンロードするために消費するトラフィックの量が無料クォータを超えた場合、消費した過剰なトラフィックに対して課金されます。 詳細については、「ApsaraDB RDS For MySQLインスタンスのバックアップファイルのダウンロード」をご参照ください。
Elastic Compute Service (ECS) インスタンスがRDSインスタンスと同じ仮想プライベートクラウド (VPC) にある場合、内部URLを使用して論理バックアップファイルをダウンロードできます。 このダウンロード方法は、より高速で安定しています。
自己管理インスタンスが実行されているLinuxオペレーティングシステムにログインします。 次に、次のコマンドを実行して、論理バックアップファイルをダウンロードします。
wget -c '<論理バックアップファイルをダウンロードできるパブリックURL>' -O <ダウンロードしたバックアップファイルに使用するファイル名>.tar
説明-cオプションは再開可能ダウンロード機能を有効にします。
-Oオプションは, 指定したファイル名に基づいて, ダウンロードした論理バックアップファイルを保存することを指定します。
次のコマンドを実行して、ダウンロードした論理バックアップファイルを解凍します。このファイルには、デフォルトのシステムデータベースの圧縮ファイルと、作成したデータベースの圧縮ファイルが含まれます。
tar xvf <ダウンロードした論理バックアップファイルの名前>.tar -C /tmp
例:
tar xvf hins123456.tar -C /tmp
説明次のようなエラーメッセージが表示された場合
これはtarアーカイブのように見えません
、ダウンロードしたファイルがRDSインスタンスの論理バックアップファイルであるかどうかを確認する必要があります。復元するデータベースの圧縮ファイルを解凍します。 圧縮ファイルの名前の末尾には
が付いています。sql.gz
。gzip -d /tmp /復元するデータベースの圧縮ファイルの名前
例:
gzip -d /tmp/testdata_datafull_202012101615_160xxxxxx.sql.gz
説明. 解凍プロセス中に生成されたsqlファイルは、ステップ10でインポートされます。
次のコマンドを実行して自己管理インスタンスにログインし、空のデータベースを作成します。
説明以降の手順で使用するユーザーには、内のすべてのSQL文を実行する権限が必要です。sqlファイル。
mysql -u user -p <データベースのパスワード> データベースの作成 <空のデータベースの名前>; 終了
次のコマンドを実行して、をインポートします。sqlファイルを空のデータベースに挿入します。
mysql -u root -p <空のデータベースの名前> < /tmp /解凍されたファイルの名前
例:
mysql -u user -p testdb < /tmp/testdata_datafull_202012101615_160xxxxxx.sql
説明上記のコマンドが正常に実行されると、パスワードの入力を求めるメッセージが表示されます。 パスワードを入力してEnterキーを押します。
「キーリングからマスターキーが見つかりません」というエラーメッセージが表示された場合は、RDSインスタンスがすべての前提条件を満たしているかどうかを確認してください。
空のデータベースにログオンします。 次に、データベースにデータが存在するかどうかを確認します。 データベースにデータが存在する場合、RDSインスタンスのデータは自己管理インスタンスに正常に復元されます。
よくある質問
RDSインスタンスに論理バックアップファイルがないのはなぜですか?
デフォルトでは、システムは物理バックアップを作成します。 必要に応じて、論理バックアップを手動で作成する必要があります。 詳細については、「自動バックアップ機能の使用」をご参照ください。
論理バックアップファイルをダウンロードすると、[バックアップセットの復元ポイント] 列の値が0と表示されるのはなぜですか。
ApsaraDB RDS for MySQLでは、物理バックアップファイルとログバックアップファイルを使用して、特定の時点にデータを復元できます。 ApsaraDB RDSコンソールには、[バックアップセットの復元ポイント] 列があります。 この列では、各物理バックアップファイルのタイムスタンプを表示できます。 論理バックアップファイルを使用してデータを特定の時点に復元することはできません。 すべての論理バックアップファイルの [バックアップセットの復元ポイント] 列の値は0です。
24行目の
ERROR 1840 (HY000): @ @ GLOBAL.GTID_PURGEDは、@ @ GLOBAL.GTID_EXECUTEDが空の場合にのみ設定できます。
エラーメッセージが表示されますか?この問題はGTIDが原因で発生します。 次の方法を使用して問題を解決できます。
GTID機能を有効にします。 次に、このトピックの「手順」セクションの手順を繰り返して、データを復元します。
GTID機能を無効にします。
でGTID_PURGEDパラメーターをコメントアウトします。インポートするsql
ファイル。 次に、このトピックの「手順」セクションの手順を繰り返して、データを復元します。同期レプリケーションモードが無効であることを確認します。 次に、自己管理インスタンスにログインし、
reset master
コマンドを実行し、このトピックの「手順」セクションの手順を繰り返してデータを復元します。
26行目の
ERROR 3546 (HY000): @ @ GLOBAL.GTID_PURGEDを変更できない場合はどうすればよいですか。追加されたgtidセットが @ @ GLOBAL.GTID_EXECUTED
エラーメッセージと重なってはいけません。インポートされた
。sql
ファイルには、自己管理インスタンスにある特定のGTIDが含まれています。 この場合、自己管理インスタンスにログインし、reset master
コマンドを実行してから、このトピックの「手順」セクションの手順を繰り返してデータを復元します。データが自己管理インスタンスに復元された後、データが自己管理インスタンスのセカンダリインスタンスに自動的に同期されないのはなぜですか。
インポートした
に
ファイル。 設定が指定されている場合、データ復元をセカンダリRDSインスタンスに自動的に同期することはできません。SESSION.SQL_LOG_BIN= 0
があるか確認してください。sql