Tikv-importer无法正常启动,原因可能是data.import目录下的只读文件有问题

为提高效率,提问时请尽量提供详细背景信息,问题描述清晰可优先响应。以下信息点请尽量提供:

  • 系统版本 & kernel 版本
  • TiDB 版本】 3.0.4
  • 磁盘型号
  • 集群节点分布
  • 数据量 & region 数量 & 副本数
  • 问题描述(我做了什么)】 刚开始tikv-import是可以启动的,但是使用tidb-lightning导入本地csv文件到集群中,多次导入失败,便多次调整配置参数,由于csv数据文件可能有误,导致tidb-lighting无法导入数据,一直启动不了,后重启tikv-importer。发现tikv-importer一直启动不了。
  • 关键词】tidb-lighting、tikv-importer启动问题。

报错信息不完整,请提供一个完整的信息,看下~~~

另外,tidb-lightning 的版本是 3.0.4 的,tidb 的版本也是 3.0.4 吗?

都是3.0.4,使用ansible统一部署的,所以集群配置是没有问题的。而且早上的时候tikv-importer和tidb-lighting都是可以正常启动进程的,只是由于导入源数据有问题,一直在修改重试,启动tidb-lighting进行测试。后面有删除import所在节点的/data.import目录,才导致tikv-importer一直启动不起来。 而tikv-importer.log的/日志信息只有这么多了,都全部粘贴上来了。

上图是启动tidb-lighting的报错日志信息

是不是缺少了lib.rs这个包或文件呢?

1、因为是重复导入,建议先将 tidb-lightning.toml 中 checkpoint 相关的文件或者表清理下:

2、是把 importer 对应的 data.import 的目录删掉了是吗?如果删掉了尝试新建一个同名的目录,并且确保目录权限没有问题

以上检查后,再重新启动下相关服务看下~~~

我重试了以上步骤,还是无法解决。tikv-importer进程还是无法启动

重启节点所在服务器还是无法启动tikv-importer实例。还是报 [FATAL] [lib.rs:499] [called Result::unwrap()on anErr` value: Io (Os { code: 13,kind PermissionDenied,messfae:“Permission denied” })"]

请将 data.import 的权限截图后上传看下 吧

我的问题已经解决,现在tikv-importer已经能正常启动,且集群能导入数据。 现在data.import的权限为 drwxr-xr-x 2 tidb:tidb 更改前的data.import权限为 root:root

总结一下,这次报错的原因。 刚开始的时候可能是多次重复导入数据,导致tikv-importer所在节点的data.impott文件夹下产生.tmp的root隐藏文件,导致磁盘进入写保护状态,只能读取,这时候data.import是为正常的tidb:tidb,此时重启tikv-importer进程发生严重错误。后面解决磁盘问题后,重建data.import目录时,忘记更改权限,所以重启后还是报权限问题。此时重启了一下集群,再更改完文件夹的权限,tikv-importer进程已经能正常启动了。也能导入数据。