我们的维修工作失败了很长一段时间(>14天)。今天我手动开始了一项修理工作 nodetool repair -pr . 之后,看起来我们从一个表中丢失了一些数据。问题:从理论上讲,维修工作后是否可能丢失数据?如果是,可以采取什么措施来避免这种情况?
nodetool repair -pr
pb3s4cty1#
修复时不应丢失数据。如果有的话,你可以获得被删除的记录(复活僵尸记录)。数据可能看起来“丢失”的一种情况是,在修复期间从备用节点复制了丢失的逻辑删除单元。这将是一个正确的值,而不是一个丢失的值。如果您的客户机cl很小,比如1,而您正处于包含数据的节点上(但缺少墓碑),您可能会认为您突然丢失了单元格,但同样,这是正确的值。另一种情况是,如果节点的时间/时钟曾经不同步,并且在集群上,某些单元的时间/日期值不正确,则当repair尝试同步时,可能会造成混乱。我脑子里想的就这些。-吉姆
1条答案
按热度按时间pb3s4cty1#
修复时不应丢失数据。如果有的话,你可以获得被删除的记录(复活僵尸记录)。
数据可能看起来“丢失”的一种情况是,在修复期间从备用节点复制了丢失的逻辑删除单元。这将是一个正确的值,而不是一个丢失的值。如果您的客户机cl很小,比如1,而您正处于包含数据的节点上(但缺少墓碑),您可能会认为您突然丢失了单元格,但同样,这是正确的值。
另一种情况是,如果节点的时间/时钟曾经不同步,并且在集群上,某些单元的时间/日期值不正确,则当repair尝试同步时,可能会造成混乱。
我脑子里想的就这些。
-吉姆