TiDB 増分バックアップおよび復元ガイド
TiDB クラスターの増分データは、期間の開始スナップショットと終了スナップショットの間の差分データと、この期間中に生成された DDL です。フル (スナップショット) バックアップ データと比較して、増分データは小さいため、バックアップ データの量を減らすスナップショット バックアップを補完します。増分バックアップを実行するには、指定された期間内に生成された MVCC データがTiDB GC メカニズムによってガベージ コレクションされていないことを確認してください。たとえば、1 時間ごとに増分バックアップを実行するには、 tidb_gc_life_time 1 時間より大きい値に設定する必要があります。
増分データのバックアップ
増分データをバックアップするには、最後のバックアップ タイムスタンプ--lastbackuptsを指定してbr backupコマンドを実行します。このように、br コマンドライン ツールは、 lastbackuptsから現在までの間に生成された増分データを自動的にバックアップします。 --lastbackupts取得するには、 validateコマンドを実行します。次に例を示します。
LAST_BACKUP_TS=`tiup br validate decode --field="end-version" --storage "s3://backup-101/snapshot-202209081330?access-key=${access-key}&secret-access-key=${secret-access-key}"| tail -n1`
次のコマンドは、 (LAST_BACKUP_TS, current PD timestamp]からこの期間中に生成された DDL までの増分データをバックアップします。
tiup br backup full --pd "${PD_IP}:2379" \
--storage "s3://backup-101/snapshot-202209081330/incr?access-key=${access-key}&secret-access-key=${secret-access-key}" \
--lastbackupts ${LAST_BACKUP_TS} \
--ratelimit 128
--lastbackupts: 最後のバックアップのタイムスタンプ。--ratelimit: バックアップ タスクを実行するTiKV ごとの最大速度 (MiB/秒)。storage: バックアップ データのstorageパス。増分バックアップ データは、以前のスナップショット バックアップとは別のパスに保存する必要があります。前の例では、増分バックアップ データは、フル バックアップ データの下のincrディレクトリに保存されます。詳細については、 バックアップstorageURL の構成を参照してください。
増分データの復元
増分データを復元する場合は、 LAST_BACKUP_TSより前にバックアップされたすべてのデータがターゲット クラスターに復元されていることを確認してください。また、増分復元ではデータが更新されるため、復元中に他の書き込みが行われないようにする必要があります。そうしないと、競合が発生する可能性があります。
次のコマンドは、 backup-101/snapshot-202209081330ディレクトリに格納されている完全バックアップ データを復元します。
tiup br restore full --pd "${PD_IP}:2379" \
--storage "s3://backup-101/snapshot-202209081330?access-key=${access-key}&secret-access-key=${secret-access-key}"
次のコマンドは、 backup-101/snapshot-202209081330/incrディレクトリに保存されている増分バックアップ データを復元します。
tiup br restore full --pd "${PD_IP}:2379" \
--storage "s3://backup-101/snapshot-202209081330/incr?access-key=${access-key}&secret-access-key=${secret-access-key}"