TiDB バックアップと復元の使用概要
このドキュメントでは、バックアップ方法の選択方法、バックアップ データの管理方法、バックアップおよび復元ツールのインストールと展開方法など、TiDB のバックアップおよび復元機能の使用に関するベスト プラクティスについて説明します。
推奨されるプラクティス
TiDB のバックアップおよび復元機能を使用する前に、推奨されるバックアップおよび復元ソリューションを理解しておくことをお勧めします。
データをバックアップするにはどうすればいいですか?
TiDB には 2 種類のバックアップが用意されています。どちらを使用すればよいでしょうか?フル バックアップには、特定の時点のクラスターの完全なデータが含まれます。ログ バックアップには、TiDB に書き込まれたデータの変更が含まれます。両方の種類のバックアップを同時に使用することをお勧めします。
- ログ バックアップの開始:
tiup br log start
コマンドを実行して、ログ バックアップ タスクを開始します。その後、タスクはすべての TiKV ノードで実行され続け、指定されたstorageに TiDB データの変更を小さなバッチで定期的にバックアップします。 - スナップショット (完全) バックアップを定期的に実行する:
tiup br backup full
コマンドを実行して、クラスターのスナップショットを指定されたstorageにバックアップします。たとえば、毎日午前 0 時にクラスターのスナップショットをバックアップします。
バックアップデータを管理するにはどうすればいいですか?
BR は基本的なバックアップと復元機能のみを提供し、バックアップ管理はサポートしていません。したがって、バックアップ データの管理方法を自分で決定する必要がありますが、次のような質問が含まれる可能性があります。
- どのバックアップstorageシステムを選択すればよいですか?
- バックアップ タスク中にバックアップ データをどのディレクトリに配置すればよいですか?
- フルバックアップデータとログバックアップデータのディレクトリをどのように整理すればよいでしょうか?
- storageシステム内の履歴バックアップデータをどのように処理しますか?
次のセクションでは、これらの質問に一つずつ答えていきます。
バックアップstorageシステムを選択する
バックアップ データは、Amazon S3、Google Cloud Storage (GCS)、または Azure Blob Storage に保存することをお勧めします。これらのシステムを使用すると、バックアップ容量や帯域幅の割り当てについて心配する必要がなくなります。
TiDB クラスターを自社構築のデータ センターに導入する場合は、次のプラクティスが推奨されます。
- バックアップstorageシステムとしてミニオ構築し、S3 プロトコルを使用してデータを MinIO にバックアップします。
- ネットワーク ファイル システム (NFS、NAS など) ディスクを br コマンドライン ツールとすべての TiKV インスタンスにマウントし、POSIX ファイル システム インターフェイスを使用して、対応する NFS ディレクトリにバックアップ データを書き込みます。
注記:
NFS または Amazon S3、GCS、Azure Blob Storage プロトコルをサポートするstorageシステムを選択しない場合、バックアップされたデータは各 TiKV ノードで生成されます。バックアップ データを収集すると、データの冗長性や運用および保守の問題が発生する可能性があるため、これはBR を使用する推奨方法ではないことに注意してください。
バックアップデータディレクトリを整理する
- 統合管理のため、スナップショット バックアップとログ バックアップを同じディレクトリ (例:
backup-${cluster-id}
) に保存します。 - 各スナップショット バックアップを、バックアップの日付が含まれるディレクトリ (例:
backup-${cluster-id}/fullbackup-202209081330
) に保存します。 - ログ バックアップは、たとえば
backup-${cluster-id}/logbackup
の固定ディレクトリに保存されます。ログ バックアップ プログラムは、毎日logbackup
ディレクトリの下にサブディレクトリを作成し、毎日バックアップされたデータを区別します。
履歴バックアップデータの処理
各バックアップ データのライフ サイクル (たとえば 7 日間) を設定する必要があるとします。このようなライフ サイクルはバックアップ保持期間と呼ばれ、バックアップ チュートリアルでも説明されます。
- PITR を実行するには、復元ポイントより前のフルバックアップと、フルバックアップと復元ポイント間のログバックアップを復元する必要があります。そのため、フルスナップショットより前のログバックアップのみを削除することをお勧めします。バックアップ保持期間を超えるログバックアップの場合は、
tiup br log truncate
コマンドを使用して、指定した時点より前のバックアップを削除できます。 - 保存期間を超えたバックアップ データについては、バックアップ ディレクトリを削除またはアーカイブできます。
データを復元するにはどうすればいいですか?
- 完全バックアップ データのみを復元するには、
tiup br restore
使用して、指定したバックアップの完全復元を実行します。 - ログ バックアップを開始し、定期的に完全バックアップを実行している場合は、
tiup br restore point
コマンドを実行して、バックアップ保持期間内の任意の時点にデータを復元できます。
BRをデプロイて使用する
BRを展開するには、次の要件が満たされていることを確認してください。
- BR、TiKV ノード、およびバックアップstorageシステムは、バックアップ速度よりも大きいネットワーク帯域幅を提供します。ターゲット クラスターが特に大きい場合、バックアップおよび復元速度のしきい値は、バックアップ ネットワークの帯域幅によって制限されます。
- バックアップstorageシステムは、十分な読み取りおよび書き込みパフォーマンス (IOPS) を提供します。そうでない場合、バックアップまたは復元中にパフォーマンスのボトルネックになる可能性があります。
- TiKV ノードには、バックアップ用に少なくとも 2 つの追加 CPU コアと高性能ディスクが搭載されています。そうでない場合、バックアップはクラスターで実行されているサービスに影響を及ぼす可能性があります。
- BR は、8 個以上のコアと 16 GiB 以上のメモリを備えたノード上で実行されます。
バックアップと復元機能は、コマンドライン ツール、SQL コマンドの実行、 TiDB Operatorの使用など、さまざまな方法で使用できます。次のセクションでは、これら 3 つの方法について詳しく説明します。
br コマンドラインツールを使用する (推奨)
TiDB は、br コマンドライン ツールを使用したバックアップと復元をサポートします。
tiup install br
コマンドをTiUPオンラインを使用してbrコマンドラインツールをインストールするまで実行できます。br
コマンドを使用してデータをバックアップおよび復元する方法の詳細については、次のドキュメントを参照してください。
SQL文を使用する
TiDB は、SQL ステートメントを使用した完全バックアップと復元をサポートします。
BACKUP
: 完全なスナップショット データをバックアップします。RESTORE
: スナップショットバックアップデータを復元します。SHOW BACKUPS|RESTORES
: バックアップと復元の進行状況を表示します。
Kubernetes でTiDB Operatorを使用する
Kubernetes では、 TiDB Operatorを使用して TiDB クラスターのデータを Amazon S3、GCS、または Azure Blob Storage にバックアップし、これらのシステム内のバックアップ データからデータを復元することができます。詳細については、 TiDB Operatorを使用したデータのバックアップと復元参照してください。