Skip to content

br: disable restore checksum by default #20256

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all 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
3 changes: 2 additions & 1 deletion 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#校验和checksum)。

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

Expand Down
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#校验和checksum)。

## 全量备份命令行

Expand Down
Loading