TiDB バックアップとリストアの使用概要
このドキュメントでは、バックアップ方法の選択方法、バックアップ データの管理方法、バックアップおよび復元ツールのインストールと展開方法など、TiDB のバックアップおよび復元機能の使用に関するベスト プラクティスについて説明します。
推奨されるプラクティス
TiDB のバックアップおよび復元機能を使用する前に、推奨されるバックアップおよび復元ソリューションを理解しておくことをお勧めします。
データをバックアップするにはどうすればいいですか?
TiDBには2種類のバックアップがあります。どちらを使用すればよいでしょうか?フルバックアップには、特定の時点におけるクラスターの全データが含まれます。ログバックアップには、TiDBに書き込まれたデータの変更が含まれます。両方のバックアップを同時に使用することをお勧めします。
- ログバックアップの開始:
tiup br log startのコマンドを実行してログバックアップタスクを開始します。その後、タスクはすべてのTiKVノードで実行され続け、TiDBデータの変更を小さなバッチで指定されたstorageに定期的にバックアップします。 - スナップショット(フル)バックアップを定期的に実行する:
tiup br backup fullのコマンドを実行して、クラスターのスナップショットを指定されたstorageにバックアップします。例えば、毎日午前0時にクラスターのスナップショットをバックアップします。
バックアップデータを管理するにはどうすればいいですか?
BRは基本的なバックアップと復元機能のみを提供し、バックアップ管理はサポートしていません。そのため、バックアップデータの管理方法をご自身で決定する必要があります。具体的には、以下のような点についてご検討ください。
- どのバックアップstorageシステムを選択すればよいですか?
- バックアップ タスク中にバックアップ データをどのディレクトリに配置すればよいですか?
- フルバックアップデータとログバックアップデータのディレクトリはどのように整理すればよいですか?
- storageシステム内の履歴バックアップ データをどのように処理しますか?
次のセクションでは、これらの質問に 1 つずつ答えていきます。
バックアップ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を使用したデータのバックアップと復元ご覧ください。