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

PolarDB:高速インポート

最終更新日:May 14, 2025

PolarDB for MySQL では、データベースまたはテーブルの復旧タスクを送信してから約 5 ~ 10 分後(復旧するデータサイズに関係なく)、復旧タスクの完了を待たずに、復旧タスク内のデータベースとテーブルの全データをクエリできる高速インポート機能を提供しています。

シナリオ

説明

高速インポート機能は、新しいデータベースとテーブルの復旧プロセスと互換性があり、復旧タスクと同時にクエリ操作を実行できます。

高速インポート機能は、次の 2 つのシナリオで高速化に使用できます。

  • データまたはテーブルが誤って削除され、特定の時点を特定できない場合、従来の復旧タスクの完了には時間がかかる場合があります。高速インポート機能を使用すると、復旧タスクの完了を待たずに、データをすばやくクエリして検証できます。

  • 少量のデータが誤って削除されたが、テーブルが大きい場合、高速インポート機能を使用すると、INSERT ... SELECT ... を使用して復旧タスク内のテーブルから必要なデータをすばやく取得し、誤って削除されたデータを含むテーブルに挿入することで、効率を向上させることができます。

サポートされているバージョン

クラスタは、リビジョンバージョン 8.0.1.1.49 以降の MySQL 8.0.1 を実行している必要があります。 エンジンバージョンのクエリで指定されているように、クラスタのリビジョンバージョンを確認できます。

注意事項

説明

この機能はカナリアリリース段階にあります。この機能を使用するには、お問い合わせください。

  • file-per-table 構成(デフォルト)のみがサポートされています。復旧タスクの実行中に圧縮または暗号化されていないテーブルのデータのみをクエリできます。

  • 復旧タスク内のテーブル数が 1000 未満の場合高速インポート機能はデフォルトで有効になっており、復旧プロセス中に全データをクエリできます。

    説明

    復旧タスクの数が 1000 を超える場合、高速インポート機能は有効になりません。タスク管理フローは、現在のタスク送信に基づいて、高速インポート機能を有効にするかどうかを自動的に決定します。

  • クエリ操作は、プライマリノードと読み取り専用ノードでのみサポートされています。 カラムストア読み取り専用ノードが存在する場合は、ヒントを使用して、クエリリクエストをプライマリノードまたは行ストア読み取り専用ノードに強制的にルーティングできます。そうでない場合、データは返されません。

  • バッファプール リソースが十分な場合、復旧中のテーブルへのアクセスは、通常のテーブルと同等の効率を提供します。ただし、クラスタのワークロードが高い場合、復旧中のテーブルへのアクセスの効率は、通常のビジネス運用への影響を軽減するために制限されます。

  • 復旧タスクが完了する前は、テーブルには読み取り専用モードでのみアクセスできます。

使用方法

データベースとテーブルの復旧タスクを送信する

データベースとテーブルの復旧タスクを送信した後、ページの右上隅にある詳細リンクをクリックして、タスク詳細ページにアクセスできます。

image

タスク詳細ページで、タスクのリアルタイムの進捗状況を確認できます。手順 4 が完了した後、show databasesshow tables などの文を実行することで、復旧タスクでデータベースまたはテーブルが作成されたことを確認できます。その後、データベースまたはテーブルの全データをクエリできます。

image

高速読み取り専用アクセス

information_schema.fast_import_tablespaces テーブルをクエリして、現在の復旧タスクで高速読み取り専用アクセスをサポートするすべてのテーブルに関する情報を取得できます。

説明

データがインポートされているテーブルに高速読み取り専用アクセスを実行できますが、特定のテーブル名はクエリ結果に表示されません。 SHOW PROCESSLIST コマンドを実行して、dbms_rman.import を含む SQL 文を表示し、復旧中のテーブルの名前を取得できます。

SELECT * FROM information_schema.fast_import_tablespaces;

図 1. 復旧中のテーブルの全データに読み取り専用アクセスできます。

image

図 2. 高速アクセスが有効になっている他のテーブルの全データに読み取り専用アクセスできます。

image.png

よくある質問

復旧中のテーブルをクエリすると、データが返されないのはなぜですか?

現在のタスクでプライマリノード上のデータベースとテーブルを復旧する手順が完了し、次の条件を満たしていることを確認してください。

  • テーブル情報は information_schema.fast_import_tablespaces テーブルに存在します。

  • または、dbms_rman.import を含む SQL 文が実行中で、注意事項の条件を満たしています。

復旧中の大きなテーブルをクエリすると、どのような影響がありますか?

高速インポート機能は、主に迅速な検証とデータ復旧に使用されます。この機能を使用する場合は、次の点に注意してください。

  • 復旧中のテーブルのクエリは、同じデータ量の通常のテーブルのクエリと同等の影響をクラスタに与えます。

  • 復旧中のテーブルに対して、継続的、長期、大規模なクエリを実行しないことをお勧めします。

復旧中のテーブルで更新操作を実行すると、エラーが返されるのはなぜですか?

information_schema.fast_import_tablespaces テーブル内のテーブル、および dbms_rman.import を含む SQL 文が実行されているテーブルは、復旧中または復旧予定です。これらのテーブルは読み取り専用アクセスのみを許可し、更新または変更操作はサポートしていません。

image

お問い合わせ

高速インポート機能についてご質問がある場合は、DingTalk グループ 28000021116 にご参加ください。グループの専門家と直接話し合って質問することができます。また、PolarDB for MySQL アシスタントは 24 時間 365 日いつでも質問に答えることができます。