foxchan
(银狐)
1
为提高效率,提问时请尽量提供详细背景信息,问题描述清晰可优先响应。以下信息点请尽量提供:
-
【系统版本 & kernel 版本】
CentOS Linux release 7.6 & 3.10.0-957.el7.x86_64*
-
【TiDB 版本】
TiDB 3.0.4
-
【磁盘型号】
ssd
-
【集群节点分布】
测试。单机单实例模式-TiDB(3)+ PD(3)+TiKV(3)
3台机器,每台机器1个pd,1个Tikv,1个TiDB
-
【数据量 & region 数量 & 副本数】
数据量600G & region 数量 5.4K & 3 副本
-
【问题描述(我做了什么)】
程序在217上新建的表 ,其他两个tidb 都看不到
-
【关键词】
不同Tidb,表不一致
213tidb.log (87.3 KB) 217tidb.log (27.7 KB)
yilong
(yi888long)
2
您好:
方便把建表语句给我测试下吗? 多谢。 具体是如何创建这些表的,使用程序批量创建还是一个个创建?
能够提供一下建表前后 3 个 TiDB 各自的 log?我们查一下。
foxchan
(银狐)
4
log 在截图的下面,已经上传了
和建表语句无关,我手动建个简单的表也一样, 只有重启 tidb 才会同步
然后看2个tidb ,表并没有同步
开启info 日志级别,发现建表时有报错,看看是这个吗
tidb.log (8.0 KB)
QBin
(Bin)
5
麻烦根据建表报错的 tidb.log 的 tableid 执行下下面的命令,看下返回
curl http://{tidb_ip}:{tidb_sstatus_port}/schema?table_id={tableid}
foxchan
(银狐)
7
在218 建新表,不会报错,但是 多个tidb 也不同步,我看日志有个must reload,是不是每次操作DDL 都要强制tidb reload
等了几分钟,表不一致
这是213的tidb日志
在218 执行curl命令有数据返回
但是另外2个tidb ,213 和217 没有
QBin
(Bin)
8
麻烦再检查一下 TiKV 以及 PD 的日志在 建表的时候有没有报错。
foxchan
(银狐)
9
建表时间是9:17
tikv的日志级别是error,在建表的时间段没有报错
tipd也没有时间段的报错
您好,经过在 TiDB 3.0.4 测试并没有发现这种情况。如下:
foxchan
(银狐)
11
帮忙提供思路,我这种现象的原因是什么,如何处理,有哪些因素会导致表不一致。比如 tidb 表 同步的原理说明
foxchan
(银狐)
14
这句话的意思是什么,是提示 用户自己做reload,还是说tidb 自己会自动reload
heming
(何明)
15
用户在非owner 节点 也能创建 ,你们也没有在日志里面打一些异常或者警告 ,提示用户在非owner节点执行ddl 是有问题的
heming
(何明)
16
我们测试环境 3个 tidb节点都可以创建表 ,都不能自动同步到其他tidb 问题比较严重
不懂就问
(zhouyueyue)
17
建表跟是否是在 owner 节点无关,每一个节点都能执行建表命令,只不过所有的建表请求真正执行的节点是 owner 节点。如果要看 owner 节点,参考: curl http://{TiDBIP}:10080/info/all
执行 DDL 的是 owner,不能说明非 owner 节点不能执行 DDL 语句,是在非 owner 节点执行 DDL 语句后,最终是由 owner 取队列中的 query 然后执行