如何使用lightning 导入 s3 上的数据

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【TiDB 版本】
4.0.10
【问题描述】
使用dumpling 将数据导出到 s3上,在使用lightning 把数据向tidb进行导入的时候,如何填写地址呢?
我这样填写是错误的!!!

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

可以参考下这个文档
https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/restore-from-s3

这个是 operator 环境下的,我的是物理机上的。
我之前看到这个文档了,但是我还是不太清楚在tidb-lightning.toml的文件中,如何添加 资源的存储路径,我没有搞清楚 mydumper.data-source-dir 这个参数下如何拼接s3 的路径。

请参考这个文档,多谢。https://docs.pingcap.com/zh/tidb/stable/migrate-from-aurora-using-lightning#使用-tidb-lightning-从-amazon-aurora-mysql-迁移全量数据



我使用了这个方法进行导入数据,配置如上图所示,但是出现了下面的错误,这个是我哪里出问题了呢,麻烦帮我看一下,谢谢了。

请问,您 S3 的数据是从哪里备份出来的? aurora 吗?

从tidb数据库使用 dumpling 工具备份到s3上,然后准备从s3 上使用tidb-lightning 工具进行恢复

不配置路由试试

不配置路由会显示,没有权限访问方面的错误

backend = “local” 我看您的配置是 tidb 吗? 方便发一份当前的所有配置吗?


我配置的是 tidb 模式的

  1. 当前要导入数据的集群是已经在使用了吗? 有其他数据了? 是生产环境吗?
  2. tidb 和 lightning 都是 v4.0.10 版本吗?


集群在使用,有其他数据的,属于研发环境。
这个问题可能出现在哪呢?我目前感觉是在lightning 对于 s3 的权限配置有问题。因为我使用br是没有问题的。

根据 tidb-operator 的文档,是需要访问 S3 的权限的,目前有配置吗? 看日志是无法访问S3.



https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/restore-froms3#环境准备


我看之前你分享的那片文章,是在这里配置的。密钥的正确性是没有问题的,因为使用br的时候是成功的。
我刚才看了一下 operator 中tidb-lightning 部分的恢复,发现它配置的endpoint

抱歉,最近有个新文档,您看下这个。
https://docs.pingcap.com/zh/tidb/dev/backup-and-restore-storages#url-参数

1 个赞

你好,我按照文档试了一下,因为我是使用的endpoint,所以我配置的是
data-source-dir = “s3://kpi/lsmnd?endpoint=‘http://10.154.12.32:8080’”
然后会哟这样的错误

“:” 字符在 url 里面需要做一下转义处理 “http%3A//” 这样就可以了

我按照你说的替换了,但还是出现相同的错误。
我尝试着 data-source-dir = “s3://kpi/lsmnd?endpoint=http://10.154.12.32:8080” 配置中,endpoint 后面参数的单引号,会出现以下错误。


但是我使用br、dumpling命令访问s3 ,是可以访问到的。

使用 ip 地址的类 s3 服务需要设置参数「force-path-style=true」, see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html