Skip to content
Open
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions br/br-pitr-manual.md
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,8 @@ tiup br log metadata --storage='s3://backup-101/logbackup?access-key=${access-ke

> **注意:**
>
> 如果 `restore point` 指定 `--full-backup-storage` 为增量备份地址,那么需要保证该备份以及之前的任意增量备份的恢复,均将参数 `--allow-pitr-from-incremental` 设置为 `true`,使增量备份兼容后续的日志备份。
> - 如果 `restore point` 指定 `--full-backup-storage` 为增量备份地址,那么需要保证该备份以及之前的任意增量备份的恢复,均将参数 `--allow-pitr-from-incremental` 设置为 `true`,使增量备份兼容后续的日志备份。
> - 关于校验和(Checksum)配置,请参考[校验和配置](/br/br-snapshot-manual.md#校验和)。

执行 `tiup br restore point` 命令,你可以在新集群上进行 PITR,或者只恢复日志备份数据。

Expand Down Expand Up @@ -516,4 +517,4 @@ tiup br restore point --pd="${PD_IP}:2379"

> **注意:**
>
> 当恢复记录了快照(全量)恢复数据的日志备份时,需要使用 v9.0.0 及之后版本的 BR,否则可能导致记录下来的全量恢复数据无法被恢复。
> 当恢复记录了快照(全量)恢复数据的日志备份时,需要使用 v9.0.0 及之后版本的 BR,否则可能导致记录下来的全量恢复数据无法被恢复。
49 changes: 46 additions & 3 deletions br/br-snapshot-manual.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ summary: 介绍备份与恢复 TiDB 集群快照的命令行。
- [使用表库功能过滤恢复数据](#使用表库功能过滤恢复数据)
- [恢复系统表中存储的执行计划绑定信息](#恢复系统表中存储的执行计划绑定信息)
- [恢复加密的快照备份数据](#恢复加密的快照备份数据)
- [校验和](#校验和)

如果你想了解如何进行快照备份与恢复,可以参考以下教程:

Expand Down Expand Up @@ -48,8 +49,7 @@ tiup br backup full \

> **注意:**
>
> - 从 v8.5.0 起,在进行全量备份时,BR 工具默认不计算表级别的 checksum (`--checksum=false`) 以提升备份性能。
> - BR 工具已支持自适应 GC,会自动将 `backupTS`(默认是最新的 PD timestamp)注册到 PD 的 `safePoint`,保证 TiDB 的 GC Safe Point 在备份期间不会向前移动,即可避免手动设置 GC。
> BR 工具已支持自适应 GC,会自动将 `backupTS`(默认是最新的 PD timestamp)注册到 PD 的 `safePoint`,保证 TiDB 的 GC Safe Point 在备份期间不会向前移动,即可避免手动设置 GC。

备份期间终端会显示进度条,效果如下。当进度条达到 100% 时,表示备份完成。

Expand Down Expand Up @@ -178,7 +178,7 @@ tiup br restore full \
- `--ratelimit`:**每个 TiKV** 执行恢复任务的速度上限(单位 MiB/s)。
- `--log-file`:备份日志写入的目标文件。

恢复期间终端会显示进度条,效果如下。当进度条达到 100% 时,表示恢复完成。在完成恢复后,br 工具为了确保数据安全性,还会校验恢复数据
恢复期间终端会显示进度条,效果如下。当进度条达到 100% 时,表示恢复完成。在完成恢复后,如果启用了表级别[校验和](#校验和),BR 工具会进行表数据校验以确保数据的逻辑完整性。文件级别的校验和会始终进行,确保恢复文件的基本完整性

```shell
Split&Scatter Region <--------------------------------------------------------------------> 100.00%
Expand Down Expand Up @@ -286,3 +286,46 @@ tiup br restore full\
--crypter.method aes128-ctr \
--crypter.key 0123456789abcdef0123456789abcdef
```

## 校验和

校验和是 BR 工具用于验证备份和恢复数据完整性的一种方式。BR 工具支持两种级别的校验和:

1. **文件级别校验和**:对备份文件本身进行校验,确保文件在存储和传输过程中的完整性。这一校验始终开启,无法关闭。
2. **表级别校验和**:对表数据内容进行完整性校验,验证数据的业务逻辑一致性。这一校验可以通过参数开启或者关闭。

从性能和安全性的平衡考虑,BR 对表级别校验和的处理方式如下:

### 备份时的校验和

从 v8.5.0 起,在进行全量备份时,BR 工具默认不进行表级别校验和检查(`--checksum=false`),以提升备份性能。如果需要在备份过程中进行表级别校验和检查,可以显式指定 `--checksum=true`。文件级别的校验和将始终计算,确保备份文件的完整性。

计算表级别校验和可以在备份时验证数据的完整性,但会增加备份时间。在大多数情况下,可以安全地使用默认设置(不计算表级别校验和)来提高备份速度。

### 恢复时的校验和

从 v9.0.0 版本开始,BR 工具在执行恢复操作时默认不进行表级别校验和检查(`--checksum=false`),以提升恢复性能。如果需要进行表级别校验和检查,可以显式指定 `--checksum=true`。文件级别的校验和检查始终进行,确保恢复数据的基本完整性。

恢复完成后,通常会进行数据验证来确保数据安全性。在禁用表级别校验和的情况下,表数据的全面验证步骤会被跳过,从而加快恢复过程。对于对数据完整性有严格要求的场景,可以选择启用表级别校验和。

### 校验和配置示例

在备份时启用表级别校验和:

```shell
tiup br backup full \
--pd "${PD_IP}:2379" \
--storage "s3://${backup_collection_addr}/snapshot-${date}?access-key=${access-key}&secret-access-key=${secret-access-key}" \
--checksum=true \
--log-file backupfull.log
```

在恢复时启用表级别校验和:

```shell
tiup br restore full \
--pd "${PD_IP}:2379" \
--storage "s3://${backup_collection_addr}/snapshot-${date}?access-key=${access-key}&secret-access-key=${secret-access-key}" \
--checksum=true \
--log-file restorefull.log
```
1 change: 1 addition & 0 deletions br/use-br-command-line-tool.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ tiup br backup full --pd "${PD_IP}:2379" \
* `--tikv-max-restore-concurrency`:快照恢复阶段的单个 TiKV 节点的任务最大并发数。
* `--compression`:备份生成文件的压缩算法,支持 `lz4`、`snappy`、`zstd`,默认 `zstd`(多数情况下无须修改)。如何选择不同的压缩算法,可以参考[文档](https://github.com/EighteenZi/rocksdb_wiki/blob/master/Compression.md)。
* `--compression-level`:备份选择的压缩算法对应的压缩级别,`zstd` 默认为 3。大多数情况下无需设置。
* `--checksum`:是否计算并验证数据的校验和,默认为 `false`。详细信息请参考[校验和](/br/br-snapshot-manual.md#校验和)。

## 全量备份命令行

Expand Down