我有一个由三个节点组成的 Cassandra 2.0.1 集群和具有复制因子 3 的主键空间。由于集群中一个额外的第四个节点意外配置错误,我尝试首先使用不必要的“nodetool decommission”来修复它(在节点 db2 上)在做正确的“nodetool removenode”之前。
现在,运行停用的节点 db2 似乎看到另一个节点的状态为“Down”,即使其他人认为一切正常。此外,当我在所有节点上运行“nodetool ring”时,db1 给出“Replicas:2”,其中 db2 和 db3 在列表顶部有“Replicas:3”。
键空间包含我不想丢失的数据,并且集群无法完全关闭,因为一直在插入新数据。在不危及现有数据和新数据的情况下解决问题的好方法是什么?
下面混淆了 nodetool 状态输出。
[db1 ~]# nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN xx.xx.xx.99 30.38 MB 256 100.0% cccccccc-cccc-cccc-cccc-cccccccccccc rack1
UN xx.xx.xx.122 28.93 MB 256 100.0% aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa rack1
UN xx.xx.xx.123 29.59 MB 256 100.0% bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb rack1
[db2 ~]# nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
DN xx.xx.xx.122 28.93 MB 256 100.0% aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa rack1
UN xx.xx.xx.99 30.38 MB 256 100.0% cccccccc-cccc-cccc-cccc-cccccccccccc rack1
UN xx.xx.xx.123 29.59 MB 256 100.0% bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb rack1
[db3 ~]# nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN xx.xx.xx.122 28.93 MB 256 100.0% aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa rack1
UN xx.xx.xx.99 30.38 MB 256 100.0% cccccccc-cccc-cccc-cccc-cccccccccccc rack1
UN xx.xx.xx.123 29.59 MB 256 100.0% bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb rack1