diff --git a/br/backup-and-restore-tool.md b/br/backup-and-restore-tool.md index 80e88e9f3b7a..9a90ad10e17a 100644 --- a/br/backup-and-restore-tool.md +++ b/br/backup-and-restore-tool.md @@ -56,14 +56,28 @@ SST 文件以 `storeID_regionID_regionEpoch_keyHash_cf` 的格式命名。格式 下面是使用 BR 进行备份恢复的几条限制: -- BR 只支持在 TiDB v3.1 及以上版本使用。 - BR 恢复到 TiCDC / Drainer 的上游集群时,恢复数据无法由 TiCDC / Drainer 同步到下游。 - BR 只支持在 `new_collations_enabled_on_first_bootstrap` [开关值](/character-set-and-collation.md#排序规则支持)相同的集群之间进行操作。这是因为 BR 仅备份 KV 数据。如果备份集群和恢复集群采用不同的排序规则,数据校验会不通过。所以恢复集群时,你需要确保 `select VARIABLE_VALUE from mysql.tidb where VARIABLE_NAME='new_collation_enabled';` 语句的开关值查询结果与备份时的查询结果相一致,才可以进行恢复。 - - 对于 v3.1 集群,TiDB 尚未支持 new collation,因此可以认为 new collation 未打开 - - 对于 v4.0 集群,请通过 `SELECT VARIABLE_VALUE FROM mysql.tidb WHERE VARIABLE_NAME='new_collation_enabled';` 查看 new collation 是否打开。 +### 兼容性 - 例如,数据备份在 v3.1 集群。如果恢复到 v4.0 集群中,查询恢复集群的 `new_collation_enabled` 的值为 `true`,则说明创建恢复集群时打开了 new collation 支持的开关。此时恢复数据,可能会出错。 +BR 和 TiDB 集群的兼容性问题分为以下两方面: + ++ 某些功能在开启或关闭状态下,会导致 KV 格式发生变化,因此备份和恢复期间没有统一开启或关闭,就会带来不兼容的问题 ++ BR 部分版本和 TiDB 集群的接口不兼容 + +下表整理了会导致 KV 格式发生变化的功能。 + +| 功能 | 相关 issue | 解决方式 | +| ---- | ---- | ----- | +| New collation | [#352](https://github.com/pingcap/br/issues/352) | 确保恢复时集群的 `new_collations_enabled_on_first_bootstrap` 变量值和备份时的一致,否则会导致数据索引不一致和 checksum 通不过。 | +| 恢复集群开启 TiCDC 同步 | [#364](https://github.com/pingcap/br/issues/364#issuecomment-646813965) | TiKV 暂不能将 BR ingest 的 SST 文件下推到 TiCDC,因此使用 BR 恢复时候需要关闭 TiCDC。 | + +在上述功能确保备份恢复一致的**前提**下,BR 和 TiKV/TiDB/PD 还可能因为版本内部协议不一致/接口不一致出现不兼容的问题,因此 BR 内置了版本检查。 + +### 版本检查 + +BR 内置版本会在执行备份和恢复操作前,对 TiDB 集群版本和自身版本进行对比检查。如果大版本不匹配(比如 BR v4.x 和 TiDB v5.x 上),BR 会提示退出。如要跳过版本检查,可以通过设置 `--check-requirements=false` 强行跳过版本检查,但是可能会遇到版本不兼容的问题。TiDB v4.0 用 BR 备份后,不完全支持恢复到 v5.0 以及之后版本,详细信息见 [BR 版本检查(stable 版文档)](https://docs.pingcap.com/zh/tidb/stable/backup-and-restore-tool#版本检查)。 ### 运行 BR 的最低机型配置要求