BRの概要
ブラジル (バックアップと復元) は、TiDB クラスター データの分散バックアップと復元のためのコマンド ライン ツールです。定期的なバックアップとリストアに加えて、BR は互換性が確保されている限り、大規模なデータ移行にも使用できます。
このドキュメントでは、BR のアーキテクチャ、機能、および使用上のヒントについて説明します。
BRアーキテクチャ
BR は、各 TiKV ノードにバックアップまたは復元コマンドを送信します。コマンドを受け取った後、TiKV は対応するバックアップまたは復元操作を実行します。
各 TiKV ノードには、バックアップ操作で生成されたバックアップ ファイルが格納されるパスと、復元時に格納されたバックアップ ファイルが読み込まれるパスがあります。
BR 設計の詳細については、 BR の設計原則を参照してください。
BRの特徴
このセクションでは、BR の機能とパフォーマンスへの影響について説明します。
TiDB クラスター データのバックアップ
- クラスター スナップショットのバックアップ: TiDB クラスターのスナップショットには、特定の時点でトランザクション的に一貫性のあるデータが含まれています。 BR を使用して、TiDB クラスターのスナップショット データをバックアップできます。詳細については、 TiDB クラスターのスナップショットをバックアップするを参照してください。
- 増分データのバックアップ: TiDB クラスターの増分データは、最新のスナップショットと以前のスナップショットの間の変更を表します。増分データは、フル データに比べてサイズが小さく、スナップショット バックアップと併用できるため、バックアップ データの量を減らすことができます。詳細については、 増分データのバックアップを参照してください。
- データベースまたはテーブルのバックアップ : スナップショットおよび増分データ バックアップに加えて、BR は特定のデータベースまたはテーブルのバックアップと不要なデータの除外をサポートします。詳細については、 データベースまたはテーブルのバックアップを参照してください。
- バックアップデータの暗号化: BR は、バックアップ データの暗号化と Amazon S3 サーバー側の暗号化をサポートしています。必要に応じて暗号化方式を選択できます。詳細については、 バックアップ データの暗号化を参照してください。
パフォーマンスへの影響
TiDB クラスターに対するバックアップの影響は 20% 未満に抑えられており、TiDB クラスターを適切に構成することで、この値を 10% 以下に減らすことができます。 TiKV ノードのバックアップ速度はスケーラブルで、50 MB/秒から 100 MB/秒の範囲です。詳細については、 バックアップのパフォーマンスと影響を参照してください。
バックアップ データのストレージの種類
BR は、Amazon S3、Google Cloud Storage、Azure Blob Storage、NFS、およびその他の S3 互換ファイル ストレージ サービスへのデータのバックアップをサポートしています。詳細については、 データを外部ストレージにバックアップするを参照してください。
TiDB クラスター データの復元
- スナップショット バックアップの復元: スナップショット バックアップ データを新しいクラスターに復元できます。詳細については、 TiDB クラスターのスナップショットを復元するを参照してください。
- 増分バックアップの復元: 増分バックアップ データをクラスタに復元できます。詳細については、 増分バックアップを復元するを参照してください。
- バックアップからデータベースまたはテーブルを復元する : 特定のデータベースまたはテーブルの一部を復元できます。処理中、BR は不要なデータを除外します。詳細については、 データベースまたはテーブルを復元するを参照してください。
パフォーマンスへの影響
データの復元は、スケーラブルな速度で実行されます。通常、速度は TiKV ノードあたり 100 MB/秒です。 BR は、新しいクラスターへのデータの復元のみをサポートし、ターゲット クラスターのリソースを可能な限り使用します。詳細については、 復元性能と影響を参照してください。
BRを使用する前に
BR を使用する前に、その使用制限、互換性、およびその他の考慮事項に注意してください。
利用制限
BRの使用制限について説明します。
サポートされていないシナリオ
BR が TiCDC または TiDB Binlog のアップストリーム クラスターにデータを復元する場合、TiCDC またはBinlogは、復元されたデータをダウンストリーム クラスターにレプリケートできません。
互換性
BR と TiDB クラスターの互換性の問題は次のとおりです。
バージョン間の互換性の問題があります。
v5.4.0 より前では、BR は
charset=GBK
でテーブルを復元できません。同時に、v5.4.0 より前の TiDB クラスターへのcharset=GBK
のテーブルの復元をサポートする BR のバージョンはありません。一部の機能を有効または無効にすると、KV 形式が変更される場合があります。バックアップと復元中にこれらの機能が一貫して有効化または無効化されていない場合、互換性の問題が発生する可能性があります。
これらの機能は次のとおりです。
特徴 | 問題 | 解決 |
---|---|---|
クラスタ化されたインデックス | #565 | リストア中のtidb_enable_clustered_index グローバル変数の値がバックアップ中の値と一致していることを確認してください。そうしないと、 default not found や不整合なデータ インデックスなど、データの不整合が発生する可能性があります。 |
新しい照合順序 | #352 | リストア中のnew_collations_enabled_on_first_bootstrap 変数の値がバックアップ中の値と一致していることを確認してください。そうしないと、不整合なデータ インデックスが発生し、チェックサムが渡されない可能性があります。 |
グローバル一時テーブル | データのバックアップと復元には、BR v5.3.0 以降のバージョンを使用していることを確認してください。そうしないと、バッキングされたグローバル一時テーブルの定義でエラーが発生します。 |
ただし、バックアップと復元中に前述の機能が一貫して有効または無効になっていることを確認した後でも、BR と TiKV/TiDB/PD の間の一貫性のない内部バージョンまたは一貫性のないインターフェイスが原因で、互換性の問題が引き続き発生する可能性があります。このようなケースを回避するために、BR には組み込みのバージョン チェックが用意されています。
バージョンチェック
BR は、バックアップとリストアを実行する前に、TiDB クラスターのバージョンと BR のバージョンを比較および確認します。メジャー バージョンの不一致がある場合 (たとえば、BR v4.x と TiDB v5.x)、BR は終了するよう促します。バージョン チェックを強制的にスキップするには、 --check-requirements=false
を設定します。
バージョン チェックをスキップすると、互換性が失われる可能性があることに注意してください。 BR と TiDB のバージョン間のバージョン互換性マッピングは次のとおりです。
バックアップ版(縦)\リストア版(横) | BR nightly を使用して TiDB nightly を復元する | BR v5.0 を使用して TiDB v5.0 を復元する | BR v4.0 を使用して TiDB v4.0 を復元する |
---|---|---|---|
BR nightly を使用して TiDB を毎晩バックアップする | ✅ | ✅ | ❌ (非整数クラスター化インデックス タイプの主キーを持つテーブルが TiDB v4.0 クラスターに復元される場合、BR は警告なしにデータ エラーを引き起こします。) |
BR v5.0 を使用して TiDB v5.0 をバックアップする | ✅ | ✅ | ❌ (非整数クラスター化インデックス タイプの主キーを持つテーブルが TiDB v4.0 クラスターに復元される場合、BR は警告なしにデータ エラーを引き起こします。) |
BR v4.0 を使用して TiDB v4.0 をバックアップする | ✅ | ✅ | ✅ (TiKV >= v4.0.0-rc.1 で、BR に#233のバグ修正が含まれていて、TiKV に#7241のバグ修正が含まれていない場合、BR は TiKV ノードを再起動させます。) |
BR nightly または v5.0 を使用して TiDB v4.0 をバックアップします | ❌ (TiDB のバージョンが v4.0.9 より前の場合、 #609の問題が発生する可能性があります。) | ❌ (TiDB のバージョンが v4.0.9 より前の場合、 #609の問題が発生する可能性があります。) | ❌ (TiDB のバージョンが v4.0.9 より前の場合、 #609の問題が発生する可能性があります。) |
いくつかのヒント
以下は、BR を使用するための推奨操作の一部です。
- アプリケーションへの影響を最小限に抑えるために、オフピーク時にバックアップ操作を実行することをお勧めします。
- BR は、新しいクラスターへのデータの復元のみをサポートし、ターゲット クラスターのリソースを可能な限り使用します。したがって、本番クラスターにデータを復元することはお勧めしません。そうしないと、サービスが影響を受ける可能性があります。
- 複数のバックアップまたは復元操作を 1 つずつ実行することをお勧めします。バックアップまたは復元操作を並行して実行すると、パフォーマンスが低下し、オンライン アプリケーションにも影響します。さらに悪いことに、複数のタスク間のコラボレーションが不足していると、タスクが失敗し、クラスターのパフォーマンスに影響を与える可能性があります。
- バックアップ データの保存には、Amazon S3、Google Cloud Storage、および Azure Blob Storage をお勧めします。
- BR ノードと TiKV ノード、およびバックアップ ストレージ システムに、適切な書き込み/読み取りパフォーマンスを確保するのに十分なネットワーク帯域幅があることを確認してください。不十分なストレージ容量は、バックアップまたは復元操作のボトルネックになる可能性があります。