首页 > 解决方案 > 修复后数据丢失

问题描述

我们的维修工作长期失败(> 14 天)。今天我手动开始了修复工作nodetool repair -pr。之后看起来我们从表中丢失了一些数据。

问题:理论上是否有可能在修复工作后丢失数据?如果是,可以做些什么来避免这种情况?

标签: cassandra

解决方案


您不应该因修复而丢失数据。如果有的话,您可以获得被删除的记录(复活的僵尸记录)。

数据可能看起来“丢失”的一种情况是,如果您在修复期间从备用节点复制了丢失的墓碑单元。那将是一个正确的值,而不是丢失的值。如果您的客户端 CL 很小,例如 1,并且您位于有数据的节点上(但缺少墓碑),您可能会认为您突然丢失了单元格,但同样,这就是正确的值。

另一种情况可能看起来“丢失”的情况是,如果节点时间/时钟曾经不同步,并且在您的集群上某些单元的时间/日期值不正确,导致在修复尝试同步时事情可能会变得混乱.

这就是我能想到的。

-吉姆


推荐阅读