ログ バックアップのトラブルシューティング

このドキュメントでは、ログ バックアップ中の一般的な問題とその解決策をまとめています。

br restore pointコマンドを使用してダウンストリーム クラスターを復元した後、TiFlash からデータにアクセスできません。私は何をすべきか?

v6.2.0 では、PITR はクラスターの TiFlash レプリカの復元をサポートしていません。データを復元した後、次のステートメントを実行して、スキーマまたはテーブルの TiFlash レプリカを設定する必要があります。

ALTER TABLE table_name SET TIFLASH REPLICA @count;

v6.3.0 以降のバージョンでは、PITR がデータの復元を完了した後、BR は、対応する時間の上流クラスター内の TiFlash レプリカの数に従って、 ALTER TABLE SET TIFLASH REPLICAの DDL ステートメントを自動的に実行します。次の SQL ステートメントを使用して、TiFlash レプリカの設定を確認できます。

SELECT * FROM INFORMATION_SCHEMA.tiflash_replica;

ノート:

現在、PITR は、復元段階での TiFlash へのデータの直接書き込みをサポートしていません。したがって、PITR がデータの復元を完了した直後は、TiFlash レプリカは使用できません。代わりに、TiKV ノードからデータがレプリケートされるまで、一定期間待機する必要があります。レプリケーションの進行状況を確認するには、 INFORMATION_SCHEMA.tiflash_replicaテーブルのprogress情報を確認します。

ログ バックアップ タスクのstatusERRORになった場合はどうすればよいですか?

ログ バックアップ タスク中に失敗し、再試行後に回復できない場合、タスク ステータスはERRORになります。次に例を示します。

br log status --pd x.x.x.x:2379 ● Total 1 Tasks. > #1 < name: task1 status: ○ ERROR start: 2022-07-25 13:49:02.868 +0000 end: 2090-11-18 14:07:45.624 +0000 storage: s3://tmp/br-log-backup0ef49055-5198-4be3-beab-d382a2189efb/Log speed(est.): 0.00 ops/s checkpoint[global]: 2022-07-25 14:46:50.118 +0000; gap=11h31m29s error[store=1]: KV:LogBackup:RaftReq error-happen-at[store=1]: 2022-07-25 14:54:44.467 +0000; gap=11h23m35s error-message[store=1]: retry time exceeds: and error failed to get initial snapshot: failed to get the snapshot (region_id = 94812): Error during requesting raftstore: message: "read index not ready, reason can not read index due to merge, region 94812" read_index_not_ready { reason: "can not read index due to merge" region_id: 94812 }: failed to get initial snapshot: failed to get the snapshot (region_id = 94812): Error during requesting raftstore: message: "read index not ready, reason can not read index due to merge, region 94812" read_index_not_ready { reason: "can not read index due to merge" region_id: 94812 }: failed to get initial snapshot: failed to get the snapshot (region_id = 94812): Error during requesting raftstore: message: "read index not ready, reason can not read index due to merge, region 94812" read_index_not_ready { reason: "can not read index due to merge" region_id: 94812 }

この問題を解決するには、エラー メッセージで原因を確認し、指示に従ってください。問題が解決したら、次のコマンドを実行してタスクを再開します。

br log resume --task-name=task1 --pd x.x.x.x:2379

バックアップ タスクが再開されたら、 br log statusを使用してステータスを確認できます。タスクのステータスがNORMALになると、バックアップ タスクは続行されます。

● Total 1 Tasks. > #1 < name: task1 status: ● NORMAL start: 2022-07-25 13:49:02.868 +0000 end: 2090-11-18 14:07:45.624 +0000 storage: s3://tmp/br-log-backup0ef49055-5198-4be3-beab-d382a2189efb/Log speed(est.): 15509.75 ops/s checkpoint[global]: 2022-07-25 14:46:50.118 +0000; gap=6m28s

ノート:

この機能は、複数のバージョンのデータをバックアップします。長時間のバックアップ タスクが失敗し、ステータスがERRORになると、このタスクのチェックポイント データはsafe pointに設定され、 safe pointのデータは 24 時間以内にガベージ コレクションされません。したがって、エラーが再開された後、バックアップ タスクは最後のチェックポイントから続行されます。タスクが 24 時間以上失敗し、最後のチェックポイント データがガベージ コレクションされている場合、タスクを再開するとエラーが報告されます。この場合、最初にタスクを停止してから新しいバックアップ タスクを開始するbr log stopコマンドしか実行できません。

br log resumeコマンドを使用して中断されたタスクを再開するときに、エラー メッセージErrBackupGCSafepointExceededが返された場合はどうすればよいですか?

Error: failed to check gc safePoint, checkpoint ts 433177834291200000: GC safepoint 433193092308795392 exceed TS 433177834291200000: [BR:Backup:ErrBackupGCSafepointExceeded]backup GC safepoint exceeded

ログ バックアップ タスクを一時停止した後、MVCC データがガベージ コレクションされるのを防ぐために、一時停止中のタスク プログラムは、現在のチェックポイントをサービス セーフポイントとして自動的に設定します。これにより、24 時間以内に生成された MVCC データを確実に残すことができます。バックアップ チェックポイントの MVCC データが 24 時間以上生成されている場合、チェックポイントのデータはガベージ コレクションされ、バックアップ タスクは再開できません。

この問題に対処するには、 br log stopを使用して現在のタスクを削除し、 br log startを使用してログ バックアップ タスクを作成します。同時に、後続の PITR のフル バックアップを実行できます。