我有三个cassandra数据中心,其键空间如下所示:
CREATE KEYSPACE allotments WITH replication = {'class': 'NetworkTopologyStrategy', 'hk1': '3', 'hk2': '3', 'hk3': '3'} AND durable_writes = false;
我最近安装了最新的群集HK2和HK3,并将auto_bootstrap设置为true(通过注释该行)。
然后我继续使用原始数据中心(HK1)作为源在新数据中心(HK2和HK3)中的所有节点上运行rebuild命令:
nodetool rebuild -- hk1
但是,我发现自己的问题是HK2似乎缺少数据,我无法弄清楚原因或解决该问题。
在HK1上(正确数据):
cqlsh> use allotments;
cqlsh:allotments> select count(*) from freesale_allotments;
count
-------
22035
(1 rows)
Warnings :
Aggregation query used without partition key
cqlsh:allotments>
在HK2上(丢失数据):
cqlsh:allotments> use allotments;
cqlsh:allotments> select count(*) from freesale_allotments;
count
-------
19142
(1 rows)
Warnings :
Aggregation query used without partition key
到目前为止已尝试的问题排查步骤:
我试图再次重建节点,重置本地数据。它会在2-3秒内返回:
nodetool rebuild -m reset -- hk1
我尝试在所有节点上的键空间上进行修复,此修复在大约1小时后成功完成,但计数保持不变。
nodetool repair allotments -pr
我曾尝试运行scrub命令来清除所有损坏的数据表,然后再次-保持不变。
nodetool scrub
有人可以帮我指出正确的方向,以了解它是如何发生的,以及我将如何解决它。
非常感谢
马丁