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

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

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

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

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

使用制限

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

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

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

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

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

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

ノート:

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

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

brがバックアップを再試行する場合、バックアップされるデータやチェックポイントによって記録されなかったデータなど、バックアップされたデータの一部を再度バックアップする必要がある場合があります。

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

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

実装の詳細

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

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

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

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