PolarDB for MySQL では、データベースまたはテーブルの復旧タスクを送信してから約 5 ~ 10 分後(復旧するデータサイズに関係なく)、復旧タスクの完了を待たずに、復旧タスク内のデータベースとテーブルの全データをクエリできる高速インポート機能を提供しています。
シナリオ
高速インポート機能は、新しいデータベースとテーブルの復旧プロセスと互換性があり、復旧タスクと同時にクエリ操作を実行できます。
高速インポート機能は、次の 2 つのシナリオで高速化に使用できます。
データまたはテーブルが誤って削除され、特定の時点を特定できない場合、従来の復旧タスクの完了には時間がかかる場合があります。高速インポート機能を使用すると、復旧タスクの完了を待たずに、データをすばやくクエリして検証できます。
少量のデータが誤って削除されたが、テーブルが大きい場合、高速インポート機能を使用すると、
INSERT ... SELECT ...を使用して復旧タスク内のテーブルから必要なデータをすばやく取得し、誤って削除されたデータを含むテーブルに挿入することで、効率を向上させることができます。
サポートされているバージョン
クラスタは、リビジョンバージョン 8.0.1.1.49 以降の MySQL 8.0.1 を実行している必要があります。 エンジンバージョンのクエリで指定されているように、クラスタのリビジョンバージョンを確認できます。
注意事項
この機能はカナリアリリース段階にあります。この機能を使用するには、お問い合わせください。
file-per-table 構成(デフォルト)のみがサポートされています。復旧タスクの実行中に圧縮または暗号化されていないテーブルのデータのみをクエリできます。
復旧タスク内のテーブル数が 1000 未満の場合、
高速インポート機能はデフォルトで有効になっており、復旧プロセス中に全データをクエリできます。説明復旧タスクの数が 1000 を超える場合、
高速インポート機能は有効になりません。タスク管理フローは、現在のタスク送信に基づいて、高速インポート機能を有効にするかどうかを自動的に決定します。クエリ操作は、プライマリノードと読み取り専用ノードでのみサポートされています。 カラムストア読み取り専用ノードが存在する場合は、ヒントを使用して、クエリリクエストをプライマリノードまたは行ストア読み取り専用ノードに強制的にルーティングできます。そうでない場合、データは返されません。
バッファプールリソースが十分な場合、復旧中のテーブルへのアクセスは、通常のテーブルと同等の効率を提供します。ただし、クラスタのワークロードが高い場合、復旧中のテーブルへのアクセスの効率は、通常のビジネス運用への影響を軽減するために制限されます。復旧タスクが完了する前は、テーブルには読み取り専用モードでのみアクセスできます。
使用方法
データベースとテーブルの復旧タスクを送信する
データベースとテーブルの復旧タスクを送信した後、ページの右上隅にある詳細リンクをクリックして、タスク詳細ページにアクセスできます。

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

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

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

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