From 5f5d8d1312cda0681138b1c9eed7b73927bae7ff Mon Sep 17 00:00:00 2001 From: shuijing198799 Date: Fri, 17 Apr 2020 15:44:34 +0800 Subject: [PATCH 1/3] br: add backup and resotre from s3 with BR --- reference/tools/br/br.md | 54 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/reference/tools/br/br.md b/reference/tools/br/br.md index 035f79752ac4..20b868399144 100644 --- a/reference/tools/br/br.md +++ b/reference/tools/br/br.md @@ -232,6 +232,34 @@ br backup table \ 备份期间有进度条在终端中显示。当进度条前进到 100% 时,说明备份已完成。在完成备份后,BR 为了确保数据安全性,还会校验备份数据。 +### 备份数据到 Amazon S3 后端存储 + +如果备份的存储并不是在本地,而是在 Amazon 的 S3 后端存储,那么我们需要在 `storage` 子命令中指定 S3 的存储路径,并且赋予 br 节点和 TiKV 节点访问 Amazon S3 的权限。 + +这里可以参照 [AWS 官方文档](https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/user-guide/create-bucket.html)在制定的区域 `Region` 中创建一个 S3 桶 `Bucket`,如果有需要,还可以参照 [AWS 官方文档](https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/user-guide/create-folder.html) 在 Bucket 中创建一个文件夹 `Folder`。 + +将有权限访问该 S3 后端存储的账号的 `SecretKey` 和 `AccessKey` 作为环境变量传入 BR 节点,并且通过 BR 将权限传给 TiKV 节点。 + +{{< copyable "shell-regular" >}} + +```shell +export AWS_ACCESS_KEY_ID=${AccessKey} +export AWS_SECRET_ACCESS_KEY=${SecretKey} +``` + +在进行 BR 备份时,显示指定参数 `--s3.region` 和 `--send-credentials-to-tikv`, 第一个参数表示 S3 存储所在的区域,第二个参数表示将 S3 的访问权限传递给 TiKV 节点。 + +{{< copyable "shell-regular" >}} + +```shell +br backup full \ + --pd "${PDIP}:2379" \ + --storage "s3://${Bucket}/${Folder}" \ + --s3.region "${region}" \ + --send-credentials-to-tikv true \ + --log-file backuptable.log +``` + ## 恢复集群数据 使用 `br restore` 命令来恢复备份数据。可选择添加 `full`、`db` 或 `table` 子命令来指定恢复操作的范围:全部集群数据、某个数据库或某张数据表。 @@ -303,6 +331,32 @@ br restore table \ --log-file restorefull.log ``` +### 从 Amazon S3 后端存储恢复数据 + +如果需要恢复的数据并不是存储在本地,而是在 Amazon 的 S3 后端,那么我们需要在 `storage` 子命令中指定 S3 的存储路径,并且赋予 br 节点和 TiKV 节点访问 Amazon S3 的权限。 + +将有权限访问该 S3 后端存储的账号的 `SecretKey` 和 `AccessKey` 作为环境变量传入 BR 节点,并且通过 BR 将权限传给 TiKV 节点。 + +{{< copyable "shell-regular" >}} + +```shell +export AWS_ACCESS_KEY_ID=${AccessKey} +export AWS_SECRET_ACCESS_KEY=${SecretKey} +``` + +在进行 BR 恢复时,显示指定参数 `--s3.region` 和 `--send-credentials-to-tikv`, 第一个参数表示 S3 存储所在的区域,第二个参数表示将 S3 的访问权限传递给 TiKV 节点。`--storage`参数中的 `Bucket` 和 `Folder` 分别代表需要恢复的数据所在的 S3 存储桶和文件夹。 + +{{< copyable "shell-regular" >}} + +```shell +br restore full \ + --pd "${PDIP}:2379" \ + --storage "s3://${Bucket}/${Folder}" \ + --s3.region "${region}" \ + --send-credentials-to-tikv true \ + --log-file restorefull.log +``` + 以上命令中 `--table` 选项指定了需要恢复的表名。其余选项的含义与[恢复某个数据库](#恢复某个数据库)相同。 ## 最佳实践 From 8636d8cc4177a69c86a4f0c89192496f03815e0d Mon Sep 17 00:00:00 2001 From: shuijing198799 Date: Mon, 20 Apr 2020 10:32:48 +0800 Subject: [PATCH 2/3] address coment --- reference/tools/br/br.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reference/tools/br/br.md b/reference/tools/br/br.md index 20b868399144..ddffdd0673d5 100644 --- a/reference/tools/br/br.md +++ b/reference/tools/br/br.md @@ -234,7 +234,7 @@ br backup table \ ### 备份数据到 Amazon S3 后端存储 -如果备份的存储并不是在本地,而是在 Amazon 的 S3 后端存储,那么我们需要在 `storage` 子命令中指定 S3 的存储路径,并且赋予 br 节点和 TiKV 节点访问 Amazon S3 的权限。 +如果备份的存储并不是在本地,而是在 Amazon 的 S3 后端存储,那么我们需要在 `storage` 子命令中指定 S3 的存储路径,并且赋予 BR 节点和 TiKV 节点访问 Amazon S3 的权限。 这里可以参照 [AWS 官方文档](https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/user-guide/create-bucket.html)在制定的区域 `Region` 中创建一个 S3 桶 `Bucket`,如果有需要,还可以参照 [AWS 官方文档](https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/user-guide/create-folder.html) 在 Bucket 中创建一个文件夹 `Folder`。 @@ -333,7 +333,7 @@ br restore table \ ### 从 Amazon S3 后端存储恢复数据 -如果需要恢复的数据并不是存储在本地,而是在 Amazon 的 S3 后端,那么我们需要在 `storage` 子命令中指定 S3 的存储路径,并且赋予 br 节点和 TiKV 节点访问 Amazon S3 的权限。 +如果需要恢复的数据并不是存储在本地,而是在 Amazon 的 S3 后端,那么我们需要在 `storage` 子命令中指定 S3 的存储路径,并且赋予 BR 节点和 TiKV 节点访问 Amazon S3 的权限。 将有权限访问该 S3 后端存储的账号的 `SecretKey` 和 `AccessKey` 作为环境变量传入 BR 节点,并且通过 BR 将权限传给 TiKV 节点。 From 62632547624b32ec9c41fcdd03e60a199c5db6d1 Mon Sep 17 00:00:00 2001 From: shuijing198799 Date: Wed, 22 Apr 2020 11:09:07 +0800 Subject: [PATCH 3/3] address comment --- reference/tools/br/br.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/reference/tools/br/br.md b/reference/tools/br/br.md index ddffdd0673d5..ac2659770bbd 100644 --- a/reference/tools/br/br.md +++ b/reference/tools/br/br.md @@ -234,9 +234,9 @@ br backup table \ ### 备份数据到 Amazon S3 后端存储 -如果备份的存储并不是在本地,而是在 Amazon 的 S3 后端存储,那么我们需要在 `storage` 子命令中指定 S3 的存储路径,并且赋予 BR 节点和 TiKV 节点访问 Amazon S3 的权限。 +如果备份的存储并不是在本地,而是在 Amazon 的 S3 后端存储,那么需要在 `storage` 子命令中指定 S3 的存储路径,并且赋予 BR 节点和 TiKV 节点访问 Amazon S3 的权限。 -这里可以参照 [AWS 官方文档](https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/user-guide/create-bucket.html)在制定的区域 `Region` 中创建一个 S3 桶 `Bucket`,如果有需要,还可以参照 [AWS 官方文档](https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/user-guide/create-folder.html) 在 Bucket 中创建一个文件夹 `Folder`。 +这里可以参照 [AWS 官方文档](https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/user-guide/create-bucket.html)在指定的 `Region` 区域中创建一个 S3 桶 `Bucket`,如果有需要,还可以参照 [AWS 官方文档](https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/user-guide/create-folder.html) 在 Bucket 中创建一个文件夹 `Folder`。 将有权限访问该 S3 后端存储的账号的 `SecretKey` 和 `AccessKey` 作为环境变量传入 BR 节点,并且通过 BR 将权限传给 TiKV 节点。 @@ -247,7 +247,7 @@ export AWS_ACCESS_KEY_ID=${AccessKey} export AWS_SECRET_ACCESS_KEY=${SecretKey} ``` -在进行 BR 备份时,显示指定参数 `--s3.region` 和 `--send-credentials-to-tikv`, 第一个参数表示 S3 存储所在的区域,第二个参数表示将 S3 的访问权限传递给 TiKV 节点。 +在进行 BR 备份时,显示指定参数 `--s3.region` 和 `--send-credentials-to-tikv`, `--s3.region` 表示 S3 存储所在的区域,`--send-credentials-to-tikv` 表示将 S3 的访问权限传递给 TiKV 节点。 {{< copyable "shell-regular" >}} @@ -333,7 +333,7 @@ br restore table \ ### 从 Amazon S3 后端存储恢复数据 -如果需要恢复的数据并不是存储在本地,而是在 Amazon 的 S3 后端,那么我们需要在 `storage` 子命令中指定 S3 的存储路径,并且赋予 BR 节点和 TiKV 节点访问 Amazon S3 的权限。 +如果需要恢复的数据并不是存储在本地,而是在 Amazon 的 S3 后端,那么需要在 `storage` 子命令中指定 S3 的存储路径,并且赋予 BR 节点和 TiKV 节点访问 Amazon S3 的权限。 将有权限访问该 S3 后端存储的账号的 `SecretKey` 和 `AccessKey` 作为环境变量传入 BR 节点,并且通过 BR 将权限传给 TiKV 节点。 @@ -344,7 +344,7 @@ export AWS_ACCESS_KEY_ID=${AccessKey} export AWS_SECRET_ACCESS_KEY=${SecretKey} ``` -在进行 BR 恢复时,显示指定参数 `--s3.region` 和 `--send-credentials-to-tikv`, 第一个参数表示 S3 存储所在的区域,第二个参数表示将 S3 的访问权限传递给 TiKV 节点。`--storage`参数中的 `Bucket` 和 `Folder` 分别代表需要恢复的数据所在的 S3 存储桶和文件夹。 +在进行 BR 恢复时,显示指定参数 `--s3.region` 和 `--send-credentials-to-tikv`, `--s3.region` 表示 S3 存储所在的区域,`--send-credentials-to-tikv` 表示将 S3 的访问权限传递给 TiKV 节点。`--storage`参数中的 `Bucket` 和 `Folder` 分别代表需要恢复的数据所在的 S3 存储桶和文件夹。 {{< copyable "shell-regular" >}}