重要
このページは英語版のページを機械翻訳しています。原文はこちらからご覧ください。

BRの概要

BR (バックアップと復元)は、TiDBクラスタデータの分散バックアップと復元のためのコマンドラインツールです。定期的なバックアップと復元に加えて、互換性が確保されている限り、BRを使用して大規模なデータ移行を行うこともできます。

このドキュメントでは、BRのアーキテクチャ、機能、および使用上のヒントについて説明します。

BRアーキテクチャ

BRは、バックアップまたは復元コマンドを各TiKVノードに送信します。コマンドを受信した後、TiKVは対応するバックアップまたは復元操作を実行します。

各TiKVノードには、バックアップ操作で生成されたバックアップファイルが保存され、復元中に保存されたバックアップファイルが読み取られるパスがあります。

br-arch

BR設計の詳細については、 BRの設計原則を参照してください。

BRの機能

このセクションでは、BRの機能とパフォーマンスへの影響について説明します。

TiDBクラスタデータをバックアップする

  • クラスタスナップショットのバックアップ:TiDBクラスタのスナップショットには、特定の時間におけるトランザクション的に一貫性のあるデータが含まれています。 BRを使用してTiDBクラスタのスナップショットデータをバックアップできます。詳細については、 TiDBクラスタスナップショットをバックアップしますを参照してください。
  • 増分データのバックアップ:TiDBクラスタの増分データは、最新のスナップショットと前のスナップショットの間の変更を表します。インクリメンタルデータはフルデータに比べてサイズが小さく、スナップショットバックアップと併用できるため、バックアップデータの量が少なくなります。詳細については、 インクリメンタルデータをバックアップするを参照してください。
  • データベースまたはテーブルのバックアップ:スナップショットと増分データのバックアップに加えて、BRは特定のデータベースまたはテーブルのバックアップと不要なデータの除外をサポートします。詳細については、 データベースまたはテーブルをバックアップしますを参照してください。
  • バックアップデータの暗号化:BRは、バックアップデータの暗号化とAmazonS3サーバー側の暗号化をサポートしています。必要に応じて暗号化方式を選択できます。詳細については、 バックアップデータを暗号化するを参照してください。

パフォーマンスへの影響

TiDBクラスタを適切に構成することでこの値を10%以下に減らすことができます。 TiKVノードのバックアップ速度はスケーラブルで、50 MB/sから100MB/sの範囲です。詳細については、 バックアップのパフォーマンスと影響を参照してください。

バックアップデータのストレージタイプ

BRは、Amazon S3、Google Cloud Storage、Azure Blob Storage、NFS、およびその他のS3互換のファイルストレージサービスへのデータのバックアップをサポートしています。詳細については、 データを外部ストレージにバックアップするを参照してください。

TiDBクラスタデータを復元する

  • スナップショットバックアップの復元:スナップショットバックアップデータを新しいクラスタに復元できます。詳細については、 TiDBクラスタスナップショットを復元するを参照してください。
  • 増分バックアップの復元:増分バックアップデータをクラスタに復元できます。詳細については、 増分バックアップを復元するを参照してください。
  • データベースまたはテーブルをバックアップから復元する:特定のデータベースまたはテーブルの一部を復元できます。プロセス中に、BRは不要なデータを除外します。詳細については、 データベースまたはテーブルを復元するを参照してください。

パフォーマンスへの影響

データの復元はスケーラブルな速度で実行されます。通常、速度はTiKVノードあたり100MB/秒です。 BRは、新しいクラスタへのデータの復元のみをサポートし、ターゲットクラスタのリソースを可能な限り使用します。詳細については、 復元のパフォーマンスと影響を参照してください。

BRを使用する前に

BRを使用する前に、その使用制限、互換性、およびその他の考慮事項に注意してください。

使用制限

このセクションでは、BRの使用制限について説明します。

サポートされていないシナリオ

BRがTiCDCまたはTiDBBinlogのアップストリームクラスタにデータを復元する場合、 BinlogまたはBinlogは復元されたデータをダウンストリームクラスタに複製できません。

互換性

BRとTiDBクラスタの互換性の問題は次のとおりです。

  • クロスバージョンの互換性の問題があります:

    v5.4.0より前では、BRはcharset=GBKのテーブルを復元できません。同時に、BRのどのバージョンもv5.4.0より前のTiDBクラスタへのcharset=GBKのテーブルの復元をサポートしていません。

  • 一部の機能が有効または無効になると、KV形式が変更される場合があります。これらの機能がバックアップおよび復元中に一貫して有効または無効にされていない場合、互換性の問題が発生する可能性があります。

これらの機能は次のとおりです。

特徴問題解決
クラスター化されたインデックス#565復元中のtidb_enable_clustered_indexのグローバル変数の値が、バックアップ中の値と一致していることを確認してください。そうしないと、 default not foundやデータインデックスの不整合など、データの不整合が発生する可能性があります。
新しい照合順序#352復元中のnew_collations_enabled_on_first_bootstrap変数の値が、バックアップ中の値と一致していることを確認してください。そうしないと、一貫性のないデータインデックスが発生し、チェックサムが渡されない可能性があります。
グローバル一時テーブルデータのバックアップと復元には、BRv5.3.0以降のバージョンを使用していることを確認してください。そうしないと、バックアップされたグローバル一時テーブルの定義でエラーが発生します。

ただし、バックアップと復元中に前述の機能が一貫して有効または無効になっていることを確認した後でも、BRとTiKV / TiDB / PD間の内部バージョンまたはインターフェイスの一貫性がないため、互換性の問題が発生する可能性があります。このようなケースを回避するために、BRには組み込みのバージョンチェックが用意されています。

バージョンチェック

バックアップと復元を実行する前に、BRはTiDBクラスタのバージョンとBRのバージョンを比較して確認します。メジャーバージョンの不一致(たとえば、BRv4.xとTiDBv5.x)がある場合、BRは終了するようにリマインダーを表示します。バージョンチェックを強制的にスキップするには、 --check-requirements=falseを設定します。

バージョンチェックをスキップすると、非互換性が生じる可能性があることに注意してください。 BRバージョンとTiDBバージョン間のバージョン互換性マッピングは次のとおりです。

バックアップバージョン(垂直)\復元バージョン(水平)毎晩BRを使用して、毎晩TiDBを復元しますBRv5.0を使用してTiDBv5.0を復元しますBRv4.0を使用してTiDBv4.0を復元します
毎晩BRを使用してTiDBを毎晩バックアップします❌(非整数のクラスター化インデックスタイプの主キーを持つテーブルがTiDB v4.0クラスタに復元された場合、BRは警告なしにデータエラーを引き起こします。)
BRv5.0を使用してTiDBv5.0をバックアップします❌(非整数のクラスター化インデックスタイプの主キーを持つテーブルがTiDB v4.0クラスタに復元された場合、BRは警告なしにデータエラーを引き起こします。)
BRv4.0を使用してTiDBv4.0をバックアップします✅(TiKV> = v4.0.0-rc.1で、BRに#233のバグ修正が含まれ、TiKVに#7241のバグ修正が含まれていない場合、BRによってTiKVノードが再起動します。)
BRnightlyまたはv5.0を使用してTiDBv4.0をバックアップします❌(TiDBバージョンがv4.0.9より前の場合、 #609の問題が発生する可能性があります。)❌(TiDBバージョンがv4.0.9より前の場合、 #609の問題が発生する可能性があります。)❌(TiDBバージョンがv4.0.9より前の場合、 #609の問題が発生する可能性があります。)

いくつかのヒント

以下は、BRを使用するためのいくつかの推奨操作です。

  • アプリケーションへの影響を最小限に抑えるために、オフピーク時にバックアップ操作を実行することをお勧めします。
  • BRは、新しいクラスタへのデータの復元のみをサポートし、ターゲットクラスタのリソースを可能な限り使用します。したがって、データを実稼働クラスタに復元することはお勧めしません。そうしないと、サービスが影響を受ける可能性があります。
  • 複数のバックアップまたは復元操作を1つずつ実行することをお勧めします。バックアップまたは復元操作を並行して実行すると、パフォーマンスが低下し、オンラインアプリケーションにも影響します。さらに悪いことに、複数のタスク間のコラボレーションが不足していると、タスクが失敗し、クラスタのパフォーマンスに影響を与える可能性があります。
  • バックアップデータの保存には、Amazon S3、Google Cloud Storage、AzureBlobStorageをお勧めします。
  • BRノードとTiKVノード、およびバックアップストレージシステムに、適切な書き込み/読み取りパフォーマンスを確保するのに十分なネットワーク帯域幅があることを確認してください。不十分なストレージ容量は、バックアップまたは復元操作のボトルネックになる可能性があります。

も参照してください