From 30e1abd6bb10891082ba88ac39cf64af4794a573 Mon Sep 17 00:00:00 2001 From: Hillium Date: Tue, 26 May 2020 10:41:02 +0800 Subject: [PATCH 01/18] br: add faq --- TOC.md | 1 + br/backup-and-restore-faq.md | 57 ++++++++++++++++++++++++++++++++++ troubleshoot-tidb-lightning.md | 10 ++++++ 3 files changed, 68 insertions(+) create mode 100644 br/backup-and-restore-faq.md diff --git a/TOC.md b/TOC.md index 83c6f744e6e0..81f466a7184b 100644 --- a/TOC.md +++ b/TOC.md @@ -157,6 +157,7 @@ + [工具使用指南](/ecosystem-tool-user-guide.md) + [工具下载](/download-ecosystem-tools.md) + Backup & Restore (BR) + + [BR 常见问题解答](/br/backup-and-restore-faq.md) + [使用 BR 进行备份和恢复](/br/backup-and-restore-tool.md) @余峻岑 + [BR 备份与恢复场景示例](/br/backup-and-restore-use-cases.md) @余峻岑 + TiDB Lightning @kenny diff --git a/br/backup-and-restore-faq.md b/br/backup-and-restore-faq.md new file mode 100644 index 000000000000..af58c469350f --- /dev/null +++ b/br/backup-and-restore-faq.md @@ -0,0 +1,57 @@ +--- +title: BR 常见问题解答 +summary: BR FAQ & troubleshooting +category: FAQ +--- + +# BR 常见问题解答 + +本文是 BR 的 FAQ,记录了一些在 BR 中的常见问题和解答。 + +我们无法穷尽所有问题,如果遇到未在其中且无法解决的问题,[AskTUG](http://asktug.com) 社区中的友善成员很乐意解答您的问题。 + +## BR 备份时,对写入影响多大? + +使用 sysbench 的 oltp_read_only 场景全速备份到非服务盘,对集群的影响依照表结构的不同,对集群 QPS 的影响在 15%~25% 之间。 + +如果需要控制备份带去的影响,可以使用 `--ratelimit` 选项限速。 + +## BR 会备份系统表吗? 等恢复的时候,这些系统表会冲突吗? + +全量备份的时候会过滤掉系统库(`information_schema`,`performance_schema`,`mysql`)。参考[备份原理](/br/backup-and-restore-tool.md#备份原理)。 + +## BR 遇到 Permission denied 错误,即便用 root 运行 BR 也没用,怎么办? + +确认 TiKV 是否有访问备份目录的权限。 + +使用 root 运行 BR 仍旧有可能会因为磁盘权限而失败,因为 sst 文件的落盘是由 TiKV 执行的。 + +> **提示:** +> +> 在恢复的时候也可能遇到同样的问题。在现版本 BR 的恢复中,在创建完毕所有表之前我们不会检验读权限。 +> 假如备份表的数量特别多,可能会因此遇到等了很长时间之后失败的尴尬状况。 +> 因此,最好在恢复前提前检查权限。 + +## BR 遇到 Error: msg:“Io(Os { ... })” 错误,怎么办? + +这类问题几乎都是 TiKV 在写盘的时候遇到的系统调用错误。检查备份目录的挂载方式和文件系统,试试看备份到其它文件夹或者其它硬盘。 + +目前已知备份到 samba 搭建的网盘时可能会遇到 `Code: 22(invalid argument)` 错误。 + +## 使用 local storage 的时候,BR 备份的文件会存在哪里? + +在使用 local storage 的时候,会在运行 BR 的节点生成 backupmeta,在各个 Region 的 Leader 节点生成 SST 文件。 + +## 恢复的时候,报错 “could not read local://...:download sst failed”,怎么办? + +在恢复的时候,每个节点都必须能够访问到**所有**的 SST 文件。 +默认情况下,假如使用 `local` storage,备份的 SST 文件会分散在各个节点中。 +此时是无法直接恢复的,必须将每个 TiKV 节点的备份数据拷贝到其它所有 TiKV 节点才能恢复。 + +事实上,建议在备份的时候挂载一块 NFS 网盘作为备份盘,[参考用例](/br/backup-and-restore-use-cases.md#将单表数据备份到网络盘推荐)。 + +## 备份数据会有多大,备份会有 replica 吗? + +备份的时候仅仅在每个 region 的 Leader 处生成该 region 的 SST 文件。因此备份的大小等于数据大小,不会有 replica。所以最终的总大小大约是 TiKV 数据总量 / replica 数。 + +但是假如想要从本地恢复数据,因为每个 TiKV 都必须要能访问到所有 SST 文件,在最终恢复的时候会有等同于恢复时 TiKV 节点数量的 replica。 diff --git a/troubleshoot-tidb-lightning.md b/troubleshoot-tidb-lightning.md index a43b36df52b3..915da4f77b8c 100644 --- a/troubleshoot-tidb-lightning.md +++ b/troubleshoot-tidb-lightning.md @@ -141,3 +141,13 @@ tidb-lightning-ctl --config conf/tidb-lightning.toml --checkpoint-error-destroy= **解决办法**: 目前无法绕过 TiDB 的限制,只能忽略这张表,确保其它表顺利导入。 + +## switch-mode 时遇到 `rpc error: code = Unimplemented ...` + +**原因**:集群中有不支持 switch-mode 的节点。 + +**解决办法**: + +目前已知的组件中,4.0.0-rc.2 之前的 TiFlash [不支持 switch-mode 操作](https://github.com/pingcap/tidb-lightning/issues/273)。 +如果集群中有 TiFlash 节点,可以将集群更新到 4.0.0-rc.2 或更新版本。 +如果不方便升级,也可以临时禁用 TiFlash。 \ No newline at end of file From a9d8798e20712e81f1effb9194ecf5155c2aff1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E5=B2=9A?= <36239017+YuJuncen@users.noreply.github.com> Date: Tue, 26 May 2020 13:51:49 +0800 Subject: [PATCH 02/18] Update backup-and-restore-faq.md --- br/backup-and-restore-faq.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/br/backup-and-restore-faq.md b/br/backup-and-restore-faq.md index af58c469350f..d65d5ad7a0da 100644 --- a/br/backup-and-restore-faq.md +++ b/br/backup-and-restore-faq.md @@ -9,6 +9,14 @@ category: FAQ 本文是 BR 的 FAQ,记录了一些在 BR 中的常见问题和解答。 我们无法穷尽所有问题,如果遇到未在其中且无法解决的问题,[AskTUG](http://asktug.com) 社区中的友善成员很乐意解答您的问题。 + +## 恢复的时候,报错 “could not read local://...:download sst failed”,怎么办? + +在恢复的时候,每个节点都必须能够访问到**所有**的 SST 文件。 +默认情况下,假如使用 `local` storage,备份的 SST 文件会分散在各个节点中。 +此时是无法直接恢复的,必须将每个 TiKV 节点的备份数据拷贝到其它所有 TiKV 节点才能恢复。 + +事实上,建议在备份的时候挂载一块 NFS 网盘作为备份盘,[参考用例](/br/backup-and-restore-use-cases.md#将单表数据备份到网络盘推荐)。 ## BR 备份时,对写入影响多大? @@ -22,7 +30,7 @@ category: FAQ ## BR 遇到 Permission denied 错误,即便用 root 运行 BR 也没用,怎么办? -确认 TiKV 是否有访问备份目录的权限。 +确认 TiKV 是否有访问备份目录的权限。如果是备份,请确认是否有写权限;如果是恢复,请确认是否有读权限。 使用 root 运行 BR 仍旧有可能会因为磁盘权限而失败,因为 sst 文件的落盘是由 TiKV 执行的。 @@ -42,14 +50,6 @@ category: FAQ 在使用 local storage 的时候,会在运行 BR 的节点生成 backupmeta,在各个 Region 的 Leader 节点生成 SST 文件。 -## 恢复的时候,报错 “could not read local://...:download sst failed”,怎么办? - -在恢复的时候,每个节点都必须能够访问到**所有**的 SST 文件。 -默认情况下,假如使用 `local` storage,备份的 SST 文件会分散在各个节点中。 -此时是无法直接恢复的,必须将每个 TiKV 节点的备份数据拷贝到其它所有 TiKV 节点才能恢复。 - -事实上,建议在备份的时候挂载一块 NFS 网盘作为备份盘,[参考用例](/br/backup-and-restore-use-cases.md#将单表数据备份到网络盘推荐)。 - ## 备份数据会有多大,备份会有 replica 吗? 备份的时候仅仅在每个 region 的 Leader 处生成该 region 的 SST 文件。因此备份的大小等于数据大小,不会有 replica。所以最终的总大小大约是 TiKV 数据总量 / replica 数。 From d8eb4cb27483489b04ecc28ba478be1d5809ebe8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E5=B2=9A?= <36239017+YuJuncen@users.noreply.github.com> Date: Tue, 26 May 2020 13:52:59 +0800 Subject: [PATCH 03/18] Apply suggestions from code review Co-authored-by: Neil Shen --- br/backup-and-restore-faq.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/br/backup-and-restore-faq.md b/br/backup-and-restore-faq.md index d65d5ad7a0da..4a01530214c9 100644 --- a/br/backup-and-restore-faq.md +++ b/br/backup-and-restore-faq.md @@ -22,7 +22,7 @@ category: FAQ 使用 sysbench 的 oltp_read_only 场景全速备份到非服务盘,对集群的影响依照表结构的不同,对集群 QPS 的影响在 15%~25% 之间。 -如果需要控制备份带去的影响,可以使用 `--ratelimit` 选项限速。 +如果需要控制备份带来的影响,可以使用 `--ratelimit` 选项限速。 ## BR 会备份系统表吗? 等恢复的时候,这些系统表会冲突吗? @@ -32,7 +32,7 @@ category: FAQ 确认 TiKV 是否有访问备份目录的权限。如果是备份,请确认是否有写权限;如果是恢复,请确认是否有读权限。 -使用 root 运行 BR 仍旧有可能会因为磁盘权限而失败,因为 sst 文件的落盘是由 TiKV 执行的。 +使用 root 运行 BR 仍旧有可能会因为磁盘权限而失败,因为备份文件 (SST) 的保存是由 TiKV 执行的。 > **提示:** > @@ -48,10 +48,10 @@ category: FAQ ## 使用 local storage 的时候,BR 备份的文件会存在哪里? -在使用 local storage 的时候,会在运行 BR 的节点生成 backupmeta,在各个 Region 的 Leader 节点生成 SST 文件。 +在使用 local storage 的时候,会在运行 BR 的节点生成 backupmeta,在各个 Region 的 Leader 节点生成备份文件。 -## 备份数据会有多大,备份会有 replica 吗? +## 备份数据会有多大,备份会有副本 (replica) 吗? -备份的时候仅仅在每个 region 的 Leader 处生成该 region 的 SST 文件。因此备份的大小等于数据大小,不会有 replica。所以最终的总大小大约是 TiKV 数据总量 / replica 数。 +备份的时候仅仅在每个 region 的 Leader 处生成该 region 的备份文件。因此备份的大小等于数据大小,不会有多余的副本数据。所以最终的总大小大约是 TiKV 数据总量 /副本数。 -但是假如想要从本地恢复数据,因为每个 TiKV 都必须要能访问到所有 SST 文件,在最终恢复的时候会有等同于恢复时 TiKV 节点数量的 replica。 +但是假如想要从本地恢复数据,因为每个 TiKV 都必须要能访问到所有备份文件,在最终恢复的时候会有等同于恢复时 TiKV 节点数量的副本。 From 2ccdf92891ec59ffe76444cd50361b4ec327fb47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E5=B2=9A?= <36239017+YuJuncen@users.noreply.github.com> Date: Tue, 26 May 2020 13:56:01 +0800 Subject: [PATCH 04/18] Update backup-and-restore-faq.md --- br/backup-and-restore-faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/br/backup-and-restore-faq.md b/br/backup-and-restore-faq.md index 4a01530214c9..3e4c388b95d5 100644 --- a/br/backup-and-restore-faq.md +++ b/br/backup-and-restore-faq.md @@ -18,7 +18,7 @@ category: FAQ 事实上,建议在备份的时候挂载一块 NFS 网盘作为备份盘,[参考用例](/br/backup-and-restore-use-cases.md#将单表数据备份到网络盘推荐)。 -## BR 备份时,对写入影响多大? +## BR 备份时,对集群影响多大? 使用 sysbench 的 oltp_read_only 场景全速备份到非服务盘,对集群的影响依照表结构的不同,对集群 QPS 的影响在 15%~25% 之间。 From b2831d4492e178a311c6d20df49bc61e957c0423 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E5=B2=9A?= <36239017+YuJuncen@users.noreply.github.com> Date: Tue, 26 May 2020 14:04:18 +0800 Subject: [PATCH 05/18] Update backup-and-restore-faq.md --- br/backup-and-restore-faq.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/br/backup-and-restore-faq.md b/br/backup-and-restore-faq.md index 3e4c388b95d5..109d872d26b4 100644 --- a/br/backup-and-restore-faq.md +++ b/br/backup-and-restore-faq.md @@ -12,9 +12,9 @@ category: FAQ ## 恢复的时候,报错 “could not read local://...:download sst failed”,怎么办? -在恢复的时候,每个节点都必须能够访问到**所有**的 SST 文件。 -默认情况下,假如使用 `local` storage,备份的 SST 文件会分散在各个节点中。 -此时是无法直接恢复的,必须将每个 TiKV 节点的备份数据拷贝到其它所有 TiKV 节点才能恢复。 +在恢复的时候,每个节点都必须能够访问到**所有**的备份文件(SST files)。 +默认情况下,假如使用 `local` storage,备份文件会分散在各个节点中。 +此时是无法直接恢复的,必须将每个 TiKV 节点的备份文件拷贝到其它所有 TiKV 节点才能恢复。 事实上,建议在备份的时候挂载一块 NFS 网盘作为备份盘,[参考用例](/br/backup-and-restore-use-cases.md#将单表数据备份到网络盘推荐)。 From df0b3c28405d4ca3d03ad5992e5fbfde5b568ffd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E5=B2=9A?= <36239017+YuJuncen@users.noreply.github.com> Date: Tue, 26 May 2020 15:42:50 +0800 Subject: [PATCH 06/18] Update br/backup-and-restore-faq.md Co-authored-by: 3pointer --- br/backup-and-restore-faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/br/backup-and-restore-faq.md b/br/backup-and-restore-faq.md index 109d872d26b4..4d0bf28a59a1 100644 --- a/br/backup-and-restore-faq.md +++ b/br/backup-and-restore-faq.md @@ -52,6 +52,6 @@ category: FAQ ## 备份数据会有多大,备份会有副本 (replica) 吗? -备份的时候仅仅在每个 region 的 Leader 处生成该 region 的备份文件。因此备份的大小等于数据大小,不会有多余的副本数据。所以最终的总大小大约是 TiKV 数据总量 /副本数。 +备份的时候仅仅在每个 Region 的 Leader 处生成该 Region 的备份文件。因此备份的大小等于数据大小,不会有多余的副本数据。所以最终的总大小大约是 TiKV 数据总量 /副本数。 但是假如想要从本地恢复数据,因为每个 TiKV 都必须要能访问到所有备份文件,在最终恢复的时候会有等同于恢复时 TiKV 节点数量的副本。 From c6ec7790e7858ba70482793959a3f18e2ce2b281 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E5=B2=9A?= <36239017+YuJuncen@users.noreply.github.com> Date: Tue, 26 May 2020 17:24:38 +0800 Subject: [PATCH 07/18] Apply suggestions from code review Co-authored-by: toutdesuite --- br/backup-and-restore-faq.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/br/backup-and-restore-faq.md b/br/backup-and-restore-faq.md index 4d0bf28a59a1..798ac8dd3e93 100644 --- a/br/backup-and-restore-faq.md +++ b/br/backup-and-restore-faq.md @@ -1,16 +1,16 @@ --- -title: BR 常见问题解答 -summary: BR FAQ & troubleshooting +title: Backup & Restore 常见问题 +summary: BR 相关的常见问题以及解决方法。 category: FAQ --- -# BR 常见问题解答 +# Backup & Restore 常见问题 -本文是 BR 的 FAQ,记录了一些在 BR 中的常见问题和解答。 +本文列出了在使用 Backup & Restore (BR) 时,可能会遇到的问题及相应的解决方法。 -我们无法穷尽所有问题,如果遇到未在其中且无法解决的问题,[AskTUG](http://asktug.com) 社区中的友善成员很乐意解答您的问题。 +如果遇到未包含在此文档且无法解决的问题,可以在 [AskTUG](http://asktug.com) 社区中提问。 -## 恢复的时候,报错 “could not read local://...:download sst failed”,怎么办? +## 恢复的时候,报错 `could not read local://...:download sst failed`,该如何处理? 在恢复的时候,每个节点都必须能够访问到**所有**的备份文件(SST files)。 默认情况下,假如使用 `local` storage,备份文件会分散在各个节点中。 From 64b71d208a51084123618feddc886482f9a07b22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E5=B2=9A?= <36239017+YuJuncen@users.noreply.github.com> Date: Tue, 26 May 2020 17:52:00 +0800 Subject: [PATCH 08/18] Apply suggestions from code review Co-authored-by: toutdesuite --- br/backup-and-restore-faq.md | 14 +++++++------- troubleshoot-tidb-lightning.md | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/br/backup-and-restore-faq.md b/br/backup-and-restore-faq.md index 798ac8dd3e93..7b55d0ee4205 100644 --- a/br/backup-and-restore-faq.md +++ b/br/backup-and-restore-faq.md @@ -16,28 +16,28 @@ category: FAQ 默认情况下,假如使用 `local` storage,备份文件会分散在各个节点中。 此时是无法直接恢复的,必须将每个 TiKV 节点的备份文件拷贝到其它所有 TiKV 节点才能恢复。 -事实上,建议在备份的时候挂载一块 NFS 网盘作为备份盘,[参考用例](/br/backup-and-restore-use-cases.md#将单表数据备份到网络盘推荐)。 +建议在备份的时候挂载一块 NFS 网盘作为备份盘,详见[将单表数据备份到网络盘](/br/backup-and-restore-use-cases.md#将单表数据备份到网络盘推荐)。 ## BR 备份时,对集群影响多大? -使用 sysbench 的 oltp_read_only 场景全速备份到非服务盘,对集群的影响依照表结构的不同,对集群 QPS 的影响在 15%~25% 之间。 +使用 `sysbench` 的 `oltp_read_only` 场景全速备份到非服务盘,对集群的影响依照表结构的不同,对集群 QPS 的影响在 15%~25% 之间。 如果需要控制备份带来的影响,可以使用 `--ratelimit` 选项限速。 -## BR 会备份系统表吗? 等恢复的时候,这些系统表会冲突吗? +## BR 会备份系统表吗?在数据恢复的时候,这些系统表会冲突吗? 全量备份的时候会过滤掉系统库(`information_schema`,`performance_schema`,`mysql`)。参考[备份原理](/br/backup-and-restore-tool.md#备份原理)。 -## BR 遇到 Permission denied 错误,即便用 root 运行 BR 也没用,怎么办? +## BR 遇到 Permission denied 错误,即使用 root 运行 BR 也无法解决,该如何处理? -确认 TiKV 是否有访问备份目录的权限。如果是备份,请确认是否有写权限;如果是恢复,请确认是否有读权限。 +需要确认 TiKV 是否有访问备份目录的权限。如果是备份,确认是否有写权限;如果是恢复,确认是否有读权限。 使用 root 运行 BR 仍旧有可能会因为磁盘权限而失败,因为备份文件 (SST) 的保存是由 TiKV 执行的。 -> **提示:** +> **注意:** > > 在恢复的时候也可能遇到同样的问题。在现版本 BR 的恢复中,在创建完毕所有表之前我们不会检验读权限。 -> 假如备份表的数量特别多,可能会因此遇到等了很长时间之后失败的尴尬状况。 +> 假如备份表的数量特别多,可能会出现等了很长时间之后失败的情况。 > 因此,最好在恢复前提前检查权限。 ## BR 遇到 Error: msg:“Io(Os { ... })” 错误,怎么办? diff --git a/troubleshoot-tidb-lightning.md b/troubleshoot-tidb-lightning.md index 915da4f77b8c..77c090bb6b20 100644 --- a/troubleshoot-tidb-lightning.md +++ b/troubleshoot-tidb-lightning.md @@ -149,5 +149,5 @@ tidb-lightning-ctl --config conf/tidb-lightning.toml --checkpoint-error-destroy= **解决办法**: 目前已知的组件中,4.0.0-rc.2 之前的 TiFlash [不支持 switch-mode 操作](https://github.com/pingcap/tidb-lightning/issues/273)。 -如果集群中有 TiFlash 节点,可以将集群更新到 4.0.0-rc.2 或更新版本。 -如果不方便升级,也可以临时禁用 TiFlash。 \ No newline at end of file +- 如果集群中有 TiFlash 节点,可以将集群更新到 4.0.0-rc.2 或更新版本。 +- 如果不方便升级,可以临时禁用 TiFlash。 From df80b3d868dbf352798b21ea05d1fcfd31fdf0c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E5=B2=9A?= <36239017+YuJuncen@users.noreply.github.com> Date: Tue, 26 May 2020 17:57:03 +0800 Subject: [PATCH 09/18] Apply suggestions from code review Co-authored-by: toutdesuite --- br/backup-and-restore-faq.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/br/backup-and-restore-faq.md b/br/backup-and-restore-faq.md index 7b55d0ee4205..92e8bef333f1 100644 --- a/br/backup-and-restore-faq.md +++ b/br/backup-and-restore-faq.md @@ -40,7 +40,7 @@ category: FAQ > 假如备份表的数量特别多,可能会出现等了很长时间之后失败的情况。 > 因此,最好在恢复前提前检查权限。 -## BR 遇到 Error: msg:“Io(Os { ... })” 错误,怎么办? +## BR 遇到 错误信息 `Io(Os { ... })`,该如何处理? 这类问题几乎都是 TiKV 在写盘的时候遇到的系统调用错误。检查备份目录的挂载方式和文件系统,试试看备份到其它文件夹或者其它硬盘。 @@ -48,7 +48,7 @@ category: FAQ ## 使用 local storage 的时候,BR 备份的文件会存在哪里? -在使用 local storage 的时候,会在运行 BR 的节点生成 backupmeta,在各个 Region 的 Leader 节点生成备份文件。 +在使用 local storage 的时候,会在运行 BR 的节点生成 `backupmeta`,在各个 Region 的 Leader 节点生成备份文件。 ## 备份数据会有多大,备份会有副本 (replica) 吗? From d040ebf6ccec4799f02a7b01abd82da41a4827cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E5=B2=9A?= <36239017+YuJuncen@users.noreply.github.com> Date: Tue, 26 May 2020 18:00:40 +0800 Subject: [PATCH 10/18] Update backup-and-restore-faq.md --- br/backup-and-restore-faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/br/backup-and-restore-faq.md b/br/backup-and-restore-faq.md index 92e8bef333f1..57103ca0905d 100644 --- a/br/backup-and-restore-faq.md +++ b/br/backup-and-restore-faq.md @@ -52,6 +52,6 @@ category: FAQ ## 备份数据会有多大,备份会有副本 (replica) 吗? -备份的时候仅仅在每个 Region 的 Leader 处生成该 Region 的备份文件。因此备份的大小等于数据大小,不会有多余的副本数据。所以最终的总大小大约是 TiKV 数据总量 /副本数。 +备份的时候仅仅在每个 Region 的 Leader 处生成该 Region 的备份文件。因此备份的大小等于数据大小,不会有多余的副本数据。所以最终的总大小大约是 TiKV 数据总量除以副本数。 但是假如想要从本地恢复数据,因为每个 TiKV 都必须要能访问到所有备份文件,在最终恢复的时候会有等同于恢复时 TiKV 节点数量的副本。 From 95e7eda06c359d7c6ce3be8d63d1c4501fbcd55d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E5=B2=9A?= <36239017+YuJuncen@users.noreply.github.com> Date: Tue, 26 May 2020 18:04:55 +0800 Subject: [PATCH 11/18] Update backup-and-restore-faq.md --- br/backup-and-restore-faq.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/br/backup-and-restore-faq.md b/br/backup-and-restore-faq.md index 57103ca0905d..642f4b08ca8c 100644 --- a/br/backup-and-restore-faq.md +++ b/br/backup-and-restore-faq.md @@ -12,8 +12,8 @@ category: FAQ ## 恢复的时候,报错 `could not read local://...:download sst failed`,该如何处理? -在恢复的时候,每个节点都必须能够访问到**所有**的备份文件(SST files)。 -默认情况下,假如使用 `local` storage,备份文件会分散在各个节点中。 +在恢复的时候,每个节点都必须能够访问到**所有**的备份文件(SST files), +默认情况下,假如使用 `local` storage,备份文件会分散在各个节点中, 此时是无法直接恢复的,必须将每个 TiKV 节点的备份文件拷贝到其它所有 TiKV 节点才能恢复。 建议在备份的时候挂载一块 NFS 网盘作为备份盘,详见[将单表数据备份到网络盘](/br/backup-and-restore-use-cases.md#将单表数据备份到网络盘推荐)。 @@ -36,8 +36,8 @@ category: FAQ > **注意:** > -> 在恢复的时候也可能遇到同样的问题。在现版本 BR 的恢复中,在创建完毕所有表之前我们不会检验读权限。 -> 假如备份表的数量特别多,可能会出现等了很长时间之后失败的情况。 +> 在恢复的时候也可能遇到同样的问题。BR 的恢复中,在检验读权限的时机是在第一次写入 SST 文件时,考虑到执行 DDL 的耗时,这个时刻可能会离开始运行 BR 的时间很远。 +> 这样可能会出现等了很长时间之后遇到 Permission denied 错误失败的情况。 > 因此,最好在恢复前提前检查权限。 ## BR 遇到 错误信息 `Io(Os { ... })`,该如何处理? From b6d14f7960401362cff4be37dc3245e640080a51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E5=B2=9A?= <36239017+YuJuncen@users.noreply.github.com> Date: Tue, 26 May 2020 18:09:46 +0800 Subject: [PATCH 12/18] Update troubleshoot-tidb-lightning.md --- troubleshoot-tidb-lightning.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/troubleshoot-tidb-lightning.md b/troubleshoot-tidb-lightning.md index 77c090bb6b20..d7795af0c980 100644 --- a/troubleshoot-tidb-lightning.md +++ b/troubleshoot-tidb-lightning.md @@ -146,8 +146,9 @@ tidb-lightning-ctl --config conf/tidb-lightning.toml --checkpoint-error-destroy= **原因**:集群中有不支持 switch-mode 的节点。 +目前已知的组件中,4.0.0-rc.2 之前的 TiFlash [不支持 switch-mode 操作](https://github.com/pingcap/tidb-lightning/issues/273)。 + **解决办法**: -目前已知的组件中,4.0.0-rc.2 之前的 TiFlash [不支持 switch-mode 操作](https://github.com/pingcap/tidb-lightning/issues/273)。 - 如果集群中有 TiFlash 节点,可以将集群更新到 4.0.0-rc.2 或更新版本。 - 如果不方便升级,可以临时禁用 TiFlash。 From f955337641a21ef346fb2b6e0cf4b61ecd42793b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E5=B2=9A?= <36239017+YuJuncen@users.noreply.github.com> Date: Tue, 26 May 2020 18:16:41 +0800 Subject: [PATCH 13/18] Update br/backup-and-restore-faq.md Co-authored-by: toutdesuite --- br/backup-and-restore-faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/br/backup-and-restore-faq.md b/br/backup-and-restore-faq.md index 642f4b08ca8c..e735515e2084 100644 --- a/br/backup-and-restore-faq.md +++ b/br/backup-and-restore-faq.md @@ -50,7 +50,7 @@ category: FAQ 在使用 local storage 的时候,会在运行 BR 的节点生成 `backupmeta`,在各个 Region 的 Leader 节点生成备份文件。 -## 备份数据会有多大,备份会有副本 (replica) 吗? +## 备份数据有多大,备份会有副本吗? 备份的时候仅仅在每个 Region 的 Leader 处生成该 Region 的备份文件。因此备份的大小等于数据大小,不会有多余的副本数据。所以最终的总大小大约是 TiKV 数据总量除以副本数。 From 2a7e30c211d562a4984ea1dde26ecb5185798bde Mon Sep 17 00:00:00 2001 From: toutdesuite Date: Tue, 26 May 2020 18:35:53 +0800 Subject: [PATCH 14/18] change format --- br/backup-and-restore-faq.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/br/backup-and-restore-faq.md b/br/backup-and-restore-faq.md index e735515e2084..0e5fb8a6f433 100644 --- a/br/backup-and-restore-faq.md +++ b/br/backup-and-restore-faq.md @@ -12,9 +12,7 @@ category: FAQ ## 恢复的时候,报错 `could not read local://...:download sst failed`,该如何处理? -在恢复的时候,每个节点都必须能够访问到**所有**的备份文件(SST files), -默认情况下,假如使用 `local` storage,备份文件会分散在各个节点中, -此时是无法直接恢复的,必须将每个 TiKV 节点的备份文件拷贝到其它所有 TiKV 节点才能恢复。 +在恢复的时候,每个节点都必须能够访问到**所有**的备份文件(SST files),默认情况下,假如使用 local storage,备份文件会分散在各个节点中,此时是无法直接恢复的,必须将每个 TiKV 节点的备份文件拷贝到其它所有 TiKV 节点才能恢复。 建议在备份的时候挂载一块 NFS 网盘作为备份盘,详见[将单表数据备份到网络盘](/br/backup-and-restore-use-cases.md#将单表数据备份到网络盘推荐)。 @@ -37,10 +35,12 @@ category: FAQ > **注意:** > > 在恢复的时候也可能遇到同样的问题。BR 的恢复中,在检验读权限的时机是在第一次写入 SST 文件时,考虑到执行 DDL 的耗时,这个时刻可能会离开始运行 BR 的时间很远。 +> > 这样可能会出现等了很长时间之后遇到 Permission denied 错误失败的情况。 +> > 因此,最好在恢复前提前检查权限。 -## BR 遇到 错误信息 `Io(Os { ... })`,该如何处理? +## BR 遇到错误信息 `Io(Os { ... })`,该如何处理? 这类问题几乎都是 TiKV 在写盘的时候遇到的系统调用错误。检查备份目录的挂载方式和文件系统,试试看备份到其它文件夹或者其它硬盘。 From e65a4c456616c5df221bbe1fc0d018ba91d9cba9 Mon Sep 17 00:00:00 2001 From: toutdesuite Date: Tue, 26 May 2020 18:39:11 +0800 Subject: [PATCH 15/18] change format --- troubleshoot-tidb-lightning.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/troubleshoot-tidb-lightning.md b/troubleshoot-tidb-lightning.md index d7795af0c980..570646d5e409 100644 --- a/troubleshoot-tidb-lightning.md +++ b/troubleshoot-tidb-lightning.md @@ -144,9 +144,7 @@ tidb-lightning-ctl --config conf/tidb-lightning.toml --checkpoint-error-destroy= ## switch-mode 时遇到 `rpc error: code = Unimplemented ...` -**原因**:集群中有不支持 switch-mode 的节点。 - -目前已知的组件中,4.0.0-rc.2 之前的 TiFlash [不支持 switch-mode 操作](https://github.com/pingcap/tidb-lightning/issues/273)。 +**原因**:集群中有不支持 switch-mode 的节点。目前已知的组件中,4.0.0-rc.2 之前的 TiFlash [不支持 switch-mode 操作](https://github.com/pingcap/tidb-lightning/issues/273)。 **解决办法**: From 5ada550491e5af8f737ae2d5c7373ac7b9b44381 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E5=B2=9A?= <36239017+YuJuncen@users.noreply.github.com> Date: Tue, 26 May 2020 19:26:24 +0800 Subject: [PATCH 16/18] Update br/backup-and-restore-faq.md Co-authored-by: toutdesuite --- br/backup-and-restore-faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/br/backup-and-restore-faq.md b/br/backup-and-restore-faq.md index 0e5fb8a6f433..97d79002695e 100644 --- a/br/backup-and-restore-faq.md +++ b/br/backup-and-restore-faq.md @@ -20,7 +20,7 @@ category: FAQ 使用 `sysbench` 的 `oltp_read_only` 场景全速备份到非服务盘,对集群的影响依照表结构的不同,对集群 QPS 的影响在 15%~25% 之间。 -如果需要控制备份带来的影响,可以使用 `--ratelimit` 选项限速。 +如果需要控制备份带来的影响,可以使用 `--ratelimit` 参数限速。 ## BR 会备份系统表吗?在数据恢复的时候,这些系统表会冲突吗? From b8dc48fb83f476bee43820cd69e42853eee94d7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E5=B2=9A?= <36239017+YuJuncen@users.noreply.github.com> Date: Tue, 26 May 2020 19:28:23 +0800 Subject: [PATCH 17/18] br: add a answer to... 'will system schemas conflict at restore time?' --- br/backup-and-restore-faq.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/br/backup-and-restore-faq.md b/br/backup-and-restore-faq.md index 97d79002695e..de198ce3a127 100644 --- a/br/backup-and-restore-faq.md +++ b/br/backup-and-restore-faq.md @@ -25,6 +25,8 @@ category: FAQ ## BR 会备份系统表吗?在数据恢复的时候,这些系统表会冲突吗? 全量备份的时候会过滤掉系统库(`information_schema`,`performance_schema`,`mysql`)。参考[备份原理](/br/backup-and-restore-tool.md#备份原理)。 + +因为这些系统库根本不可能存在于备份中,恢复的时候自然不可能发生冲突。 ## BR 遇到 Permission denied 错误,即使用 root 运行 BR 也无法解决,该如何处理? From 1f1863c2985610d1a7d319baef78da1b4e4ffcd8 Mon Sep 17 00:00:00 2001 From: toutdesuite Date: Tue, 26 May 2020 19:35:35 +0800 Subject: [PATCH 18/18] Update TOC.md --- TOC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TOC.md b/TOC.md index c551ab060c0e..da607064ed95 100644 --- a/TOC.md +++ b/TOC.md @@ -158,7 +158,7 @@ + [工具使用指南](/ecosystem-tool-user-guide.md) + [工具下载](/download-ecosystem-tools.md) + Backup & Restore (BR) - + [BR 常见问题解答](/br/backup-and-restore-faq.md) + + [BR 常见问题](/br/backup-and-restore-faq.md) + [使用 BR 进行备份和恢复](/br/backup-and-restore-tool.md) @余峻岑 + [BR 备份与恢复场景示例](/br/backup-and-restore-use-cases.md) @余峻岑 + TiDB Lightning @kenny