チェックポイントバックアップ

スナップショット バックアップは、ディスクの枯渇やノードのクラッシュなどの回復可能なエラーにより中断される可能性があります。TiDB v6.5.0 より前では、中断前にバックアップされたデータはエラーが解決された後でも無効になり、バックアップを最初から開始する必要がありました。大規模なクラスターの場合、これにはかなりの追加コストがかかります。

TiDB v6.5.0 では、バックアップと復元 (BR) にチェックポイント バックアップ機能が導入され、中断されたバックアップを続行できるようになりました。この機能により、中断されたバックアップのほとんどのデータを保持できます。

アプリケーションシナリオ

TiDB クラスターが大きく、障害発生後に再度バックアップする余裕がない場合は、チェックポイント バックアップ機能を使用できます。br コマンドライン ツール (以下、 brと略します) は、バックアップされたシャードを定期的に記録します。これにより、次回のバックアップ再試行では、異常終了に近いバックアップの進行状況を使用できます。

実装の詳細

スナップショットバックアップ中、 br​​テーブルを対応するキースペースにエンコードし、バックアップ RPC 要求を生成してから TiKV ノードに送信します。バックアップ要求を受信すると、 TiKV ノードは要求された範囲内のデータをバックアップします。 TiKV ノードは、リージョンのデータのバックアップを完了するたびに、この範囲のバックアップ情報をbrに返します。

br TiKV ノードから返された情報を記録し、 brバックアップされたキー範囲を取得するのに役立ちます。チェックポイント バックアップ機能は、定期的に新しいバックアップ情報を外部storageにアップロードし、バックアップされたキー範囲を永続化できるようにします。

brバックアップを再試行すると、外部storageからバックアップされたキー範囲が読み取られ、バックアップ タスクのキー範囲と比較されます。差分データは、チェックポイント バックアップでまだバックアップする必要があるキー範囲をbr判断するのに役立ちます。

使用制限

チェックポイント バックアップは GC メカニズムに依存しており、バックアップされたすべてのデータを回復することはできません。詳細については、次のセクションで説明します。

バックアップの再試行はGCの前に行う必要があります

バックアップ中、 br PD 内のバックアップ スナップショットのgc-safepoint定期的に更新して、データがガベージ コレクションされるのを回避しますbr終了すると、 gc-safepoint時間内に更新できません。その結果、次のバックアップ再試行の前に、データがガベージ コレクションされる可能性があります。

この状況を回避するために、 gcttl指定されていない場合、 brデフォルトでgc-safepointを約 1 時間保持します。必要に応じてgcttlパラメータを設定して保持期間を延長できます。

次の例では、 gcttlを 15 時間 (54000 秒) に設定して、保持期間gc-safepointを延長します。

tiup br backup full \ --storage local:///br_data/ --pd "${PD_IP}:2379" \ --gcttl 54000

注記:

バックアップ前に作成されたgc-safepointは、スナップショット バックアップが完了すると削除されます。手動で削除する必要はありません。

一部のデータは再度バックアップする必要があります

brバックアップを再試行すると、バックアップ中のデータやチェックポイントで記録されていないデータなど、バックアップ済みのデータの一部を再度バックアップする必要がある場合があります。

  • 中断がエラーによって発生した場合、 br終了前にバックアップされたデータのメタ情報を保持します。この場合、次の再試行では、バックアップ中のデータのみを再度バックアップする必要があります。

  • brプロセスがシステムによって中断された場合、 br外部storageにバックアップされたデータのメタ情報を永続化できません。5 br 30 秒ごとにメタ情報を永続化するため、中断前の最後の 30 秒間にバックアップされたデータは永続化できず、次の再試行で再度バックアップする必要があります。

このページは役に立ちましたか?