变又未变
(变又未变)
1
为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【TiDB 版本】
v4.0.10
【问题描述】
将集群的tikv的数据目录都删除后,tikv组件都down掉了,还可以插入数据,
最近测试部测试,关于这个问题有点新的疑问:
tikv数据目录删了,tikv组件也挂掉了,但是集群还能正常连接上去,建库建表,数据插入,
1、这个是因为tikv组件的进程还存在着是吧,那么tikv组件down掉和tikv进程之间的区别是什么?
2、按道理来说所有tikv数据目录没了,region也就没有了吧,怎么还能进行数据的查询与插入的呢?
3、没有存储目录的话,我们依旧建库建表,数据插入,数据存哪边了,内存嘛?
4、tikv的数据目录的作用只是用来存储数据的是嘛?
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
变又未变
(变又未变)
3
嗯,好的,谢谢,那么也就是说,数据目录都删除后,进程还存在的情况下,这个时候,
一、
1、我们进行数据的查询时,是从Linux文件句柄中查询的
2、我们进行数据插入和更新时,也是插入和更新到Linux的文件句柄中
3、那么我们是不是可以这么理解:TiDB集群启动后,会将PD、tikv等组件中的region信息、元信息等信息其实都加载在Linux文件句柄中,以供我们使用,因此进程存在,这些信息也就一直存在Linux之中,所以,数据目录删除后,tikv进程依旧存在,因此可以登陆数据库,查询信息,以及插入信息
是嘛?
二、
这个tikv进程理论上来说,我们不手动kill -9 掉,应该会一直存在吧?
变又未变
(变又未变)
5
哦,好的。
问题一:
我一直都认为是因为pd、tikv、tidb的一些元数据、region信息都加载在内存中,因此,才会还可以继续访问的,这个Linux文件句柄的释放会是什么情况?
问题二:
那么也就是说,仅仅删掉tikv数据目录,然后什么也不操作的话,tikv进程是不会挂掉的,是吧,但是如果我们继续连接数据库进行操作的话,就有可能造成进程自己 panic 或者 OOM 了,进程自己也会挂掉,是吧
变又未变
(变又未变)
8
对了,我再问一下,对应的节点的tikv进程还存再,但是为什么tikv组件都是down的?我有可能陷入了一个胡同
进程存在,与 tikv 节点心跳没有上报,这两个没有联系。如果 tikv 心跳没有上报了,那超过 max-store-down-time 的时间,tikv 节点的 状态就会变为 down
变又未变
(变又未变)
11
对了,关于这个进程自己 panic 或者 OOM,大概要到什么情况才会发生,我们这里昨天删除了tikv数据目录,也进行了一些增删改查,但是现在还是可以正常工作的,比如我文件句柄设置位1000000,这个要到什么程度,进程自己 panic 或者 OOM。
system
(system)
关闭
14
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。