为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:3.0.0
- 【问题描述】:3.0.0集群节点:2个tidb,3个pd,3个tikv。 我刚刚测试 集群,在循环不断插入10000条数据中,停掉一个pd,然后在重启这个pd节点,发现数据可能会多一条, 对于tikv,停掉一个tikv节点然后在重启,发现数据可能会少一条。 这是什么原因了?
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
首先,在 TiDB 中数据使用 Raft 协议是强一致的。
PD 节点,并不会存储实际的业务数据,leader 节点会提供事务的 tso,原则上 PD 节点不会对业务数据的一致性造成影响。
如果在测试时发现数据存在不一致的问题,那么请提供下述信息:
循环插入数据的时,请确认 10000 条数据均插入成功,请提供相应的业务端日志
所有 TiDB 节点开启 general log ,确认数据变更的方式。开启方式如下:
curl -X POST -d "tidb_general_log=1" http://{TiDBIP}:10080/settings
停止一个 TiKV 节点后,请使用 pd-ctl 确认下当前环境中是否存在没有 leader 的 region。参考命令如下:
pd-ctl -u <endpoint> -d region --jq '.regions[]|select(has("leader")|not)|{id: .id, peer_stores: [.peers[].store_id]}'
https://pingcap.com/docs-cn/v3.0/pd-control/#下载安装包