暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

ClickHouse查询分布式表数据总变? 数据同步错副本?

原创 陈举超 2024-10-06
265

图片.png

架构说明:

ck部署在3台服务器上,每台服务器上配置两个ck实例,端口分别为9100和9200,架构是3分片2副本架构。

问题现象1:

节点1,节点3查询分布式表,数据总变,节点2查询数据正常。
其中t1_all表插入了10条数据。
节点1执行多次查询,结果不稳定,总变,6、10、12 …每次查询都不一样。

select * from t1_all;

问题现象2:

节点1:9100实例 和 节点2:9200实例 互为副本;
节点2:9100实例 和 节点3:9200实例 互为副本;
节点3:9100实例 和 节点1:9200实例 互为副本;

当向节点1:9100实例写入时间时,发现节点2:9200实例可以正常同步实例,但是节点3:9200实例居然也同步了数据,实际上不应该同步。

问题分析:

检查配置文件副本配置部分,并没有发现异常,节点1:9100实例的副本只有节点2:9200实例。

<ck_cjc_cluster>
  <shard>
     <internal_replication>true</internal_replication>
     <replica>
       <host>192.0.10.11</host>
       <port>9100</port>
       <user>default</user>
       <password>******</password>
     </replica>
     <replica>
       <host>192.0.10.12</host>
       <port>9200</port>
       <user>default</user>
       <password>******</password>
     </replica>
   </shard>
......

那么还有哪些参数会影响数据同步呢?
最终发现节点3:9200实例的参数配置有问题,原以为这个参数只起到默认标签的作用,没想到还有副本作用,正是因为都影响副本行为,数据不一致时就可能会出现这种看上去奇怪的问题。

<macros>
  <shard>01</shard>
  <replica>cjc03-xx-x</replica>
</macros> 

解决方案:

修改为

<macros>
  <shard>02</shard>
  <replica>cjc03-xx-x</replica>
</macros>

再次测试,恢复正常。
###chenjuchao 20241002###
欢迎关注我的公众号《IT小Chen》
图片.png

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论