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 クラスターに復元されます。これらのキーのコーディング形式は、バックアップ プロセス中のキーのコーディング形式と同じです。