cassandra - 修复后数据丢失
问题描述
我们的维修工作长期失败(> 14 天)。今天我手动开始了修复工作nodetool repair -pr
。之后看起来我们从表中丢失了一些数据。
问题:理论上是否有可能在修复工作后丢失数据?如果是,可以做些什么来避免这种情况?
解决方案
您不应该因修复而丢失数据。如果有的话,您可以获得被删除的记录(复活的僵尸记录)。
数据可能看起来“丢失”的一种情况是,如果您在修复期间从备用节点复制了丢失的墓碑单元。那将是一个正确的值,而不是丢失的值。如果您的客户端 CL 很小,例如 1,并且您位于有数据的节点上(但缺少墓碑),您可能会认为您突然丢失了单元格,但同样,这就是正确的值。
另一种情况可能看起来“丢失”的情况是,如果节点时间/时钟曾经不同步,并且在您的集群上某些单元的时间/日期值不正确,导致在修复尝试同步时事情可能会变得混乱.
这就是我能想到的。
-吉姆
推荐阅读
- api - Flutter 中的 API 调用(飞镖)
- python - 我应该怎么做才能让我的照片出现在 Django only safari 中?
- swift - 斯威夫特:我怎样才能在完成体内调用我的函数?
- android - 在flutter中编写kotlin代码的configureFlutterEngine方法中的问题
- python - 如何在使用 Selenium 和 Python 调用函数之前等待特定 URL 加载
- java - Java 得到很好的 toString 对象引用某些数组类型
- c# - 如何从另一个函数访问我的索引?
- java - java如何验证证书
- java - quarkus runtimeException“操作数堆栈上的错误类型”
- javascript - 将 useState 从一个组件导出到另一个组件