RawKV のバックアップと復元

TiKV と PD は、RawKV と呼ばれる TiDB なしで使用する場合、KV データベースを構成できます。バックアップと復元 (BR) は、RawKV を使用する製品のデータのバックアップと復元をサポートします。このドキュメントでは、RawKV をバックアップおよび復元する方法について説明します。

RawKV のバックアップ

一部のシナリオでは、TiKV は TiDB とは独立して実行される場合があります。そのため、BR は TiDBレイヤーのバイパスと TiKV でのデータのバックアップをサポートしています。

br backup raw --pd $PD_ADDR \ -s "local://$BACKUP_DIR" \ --start 31 \ --ratelimit 128 \ --end 3130303030303030 \ --format hex \ --cf default

上記のコマンドは、デフォルト CF の[0x31, 0x3130303030303030)から$BACKUP_DIRまでのすべてのキーをバックアップします。

このコマンドでは、 --start--endの値は、TiKV に送信される前に--formatで指定された形式を使用してデコードされます。現在、次の形式が利用可能です。

  • "raw": 入力文字列はバイナリ形式のキーとして直接エンコードされます。
  • "hex": デフォルトのエンコード形式。入力文字列は 16 進数として扱われます。
  • "escaped": 最初に入力文字列をエスケープ (バックスラッシュ) してから、バイナリ形式 (例: abc\xFF\x00\r\n ) にエンコードします。

ノート:

  • ローカル ストレージを使用する場合は、すべてのバックアップ SST ファイルを--storageで指定されたパス内のすべての TiKV ノードにコピーする必要があります。各 TiKV ノードが最終的に SST ファイルの一部のみを読み取る必要がある場合でも、次の理由により、すべてのノードが完全なアーカイブへのフル アクセスを必要とします。

    • データは複数のピアに複製されます。 SST を取り込む場合、これらのファイルはすべてのピアに存在する必要があります。これは、単一ノードからの読み取りで十分なバックアップとは異なります。
    • 復元中に各ピアが分散される場所はランダムです。どのノードがどのファイルを読み取るかは事前にわかりません。
  • これらは、ローカル パスに NFS をマウントするか、S3 を使用するなど、共有ストレージを使用することで回避できます。ネットワーク ストレージを使用すると、すべてのノードがすべての SST ファイルを自動的に読み取ることができます。この場合、前述の警告は適用されなくなります。

  • また、1 つのクラスターに対して同時に実行できる復元操作は 1 つだけであることに注意してください。そうしないと、予期しない動作が発生する可能性があります。詳細については、 よくある質問を参照してください。

RawKV の復元

RawKV のバックアップと同様に、次のコマンドを実行して RawKV を復元できます。

br restore raw --pd $PD_ADDR \ -s "local://$BACKUP_DIR" \ --start 31 \ --end 3130303030303030 \ --ratelimit 128 \ --format hex \ --cf default

この例では、範囲[0x31, 0x3130303030303030)のバックアップされたすべてのキーが TiKV クラスターに復元されます。これらのキーのコーディング形式は、バックアップ プロセス中のキーのコーディング形式と同じです。