我的 cassandra 数据库刚刚丢失了大部分数据。这只是测试数据,但我仍然需要了解发生了什么,并确保真实数据不会发生这种情况。
我在 Windows Server 上将 cassandra 1.1 作为服务运行。db 接收来自 ac# 应用程序的数据。脚本终止并重新启动了 cassandra 服务。在那之后,过去 20 小时左右的所有数据都消失了。旧数据仍然存在。
有问题的数据可能根本没有写入磁盘。但是,数据库在有问题的 20 小时内正确回答了查询,因此数据必须至少在内存中。
除了存储位置等之外,该配置与默认配置相同。刷新策略是
commitlog_sync: periodic
commitlog_sync_period_in_ms: 10000
感谢任何提示,包括尝试什么以及在日志文件或配置中查找什么。
编辑:经过更多试验后,我现在可以重现以下内容:
- 插入新数据 - 好的
- 查询新数据 - 好的
- 停止并重新启动 db - 所有新数据现在都消失了:((旧数据仍然存在)
- 日志文件中没有任何内容,只是“日志重播完成,0 次重播突变”
Edit2:从一个新的空数据库开始,现在一切正常(当然配置相同)。使用我损坏的数据库的备份,我可以再次重现上述问题。我在 cassandra 中发现了一个错误吗?显然,我的数据库处于未写入或未正确重播提交日志的状态。