title | summary |
---|---|
使用 BR 在 Amazon S3 备份和恢复数据 |
介绍使用 BR 在外部存储 S3 上进行备份与恢复时的方法。 |
TiDB 的备份恢复功能 Backup & Restore (BR) 支持将 Amazon S3 或支持 S3 协议的其他文件存储作为外部存储。
注意:
如果需要将数据备份到开启对象锁定功能的 S3 Bucket,请使用 6.3.0 及以上的版本进行备份。
使用 AWS S3 保存备份数据,方便你将部署在 AWS EC2 上的 TiDB 集群数据快速备份到 AWS S3 中,或者从 S3 中快速恢复出来一个 TiDB 集群。
进行备份恢复之前需要先配置访问 S3 的权限。
在备份之前,为 BR 访问 S3 中的备份目录设置相应的访问权限。
- 备份时 TiKV 和 BR 需要的最小权限,赋予备份数据目录
s3:ListBucket
、s3:PutObject
和s3:AbortMultipartUpload
。 - 恢复时 TiKV 和 BR 需要的最小权限,赋予备份数据目录
s3:ListBucket
和s3:GetObject
。
如果你还没有创建备份数据保存目录,可以参照 AWS 官方文档在指定的 Region
区域中创建一个 S3 桶 Bucket
;如果有需要,还可以参照 AWS 官方文档在 Bucket 中创建一个文件夹 Folder
。
推荐使用以下两种方式配置 S3 的账户。
-
为运行 TiKV 和 BR 的 EC2 实例关联一个配置了访问 S3 访问权限的 IAM role,正确设置后,BR 可以直接访问对应的 S3 中的备份目录,而不需要额外的设置。
{{< copyable "shell-regular" >}}
br backup full --pd "${PDIP}:2379" --storage "s3://${Bucket}/${Folder}"
-
通过
br
命令行参数设置访问 S3 的access-key
和secret-access-key
, 同时设置--send-credentials-to-tikv=true
将 access key 从 BR 传递到每个 TiKV 上。{{< copyable "shell-regular" >}}
br backup full --pd "${PDIP}:2379" --storage "s3://${Bucket}/${Folder}?access-key=${accessKey}&secret-access-key=${secretAccessKey}" --send-credentials-to-tikv=true
在通常情况下,为了避免 access-key
等密钥信息记录在命令行中被泄漏,推荐使用为 EC2 实例关联 IAM role 的方法。
{{< copyable "shell-regular" >}}
br backup full \
--pd "${PDIP}:2379" \
--storage "s3://${Bucket}/${Folder}?access-key=${accessKey}&secret-access-key=${secretAccessKey}" \
--send-credentials-to-tikv=true \
--ratelimit 128 \
--log-file backuptable.log
上述命令中,
--send-credentials-to-tikv
:表示将 S3 的访问权限传递给 TiKV 节点。
{{< copyable "shell-regular" >}}
br restore full \
--pd "${PDIP}:2379" \
--storage "s3://${Bucket}/${Folder}?access-key=${accessKey}&secret-access-key=${secretAccessKey}" \
--ratelimit 128 \
--send-credentials-to-tikv=true \
--log-file restorefull.log
如需了解 BR 支持的其他外部存储,请参阅外部存储。