Cassandra 卡桑德拉数据丢失
我的卡桑德拉数据库刚刚丢失了大部分数据。这只是测试数据,但我仍然需要了解发生了什么,并确保真实数据不会发生这种情况 我正在Windows服务器上运行cassandra 1.1作为服务。数据库接收来自c#应用程序的数据。脚本终止并重新启动了cassandra服务。之后,过去20小时左右的所有数据都消失了。旧的数据仍然存在 有可能所讨论的数据从未写入光盘。但是,db在所讨论的20小时内正确地回答了查询,因此数据必须至少在内存中 除了存储位置等之外,配置与默认配置相同。刷新策略为Cassandra 卡桑德拉数据丢失,cassandra,Cassandra,我的卡桑德拉数据库刚刚丢失了大部分数据。这只是测试数据,但我仍然需要了解发生了什么,并确保真实数据不会发生这种情况 我正在Windows服务器上运行cassandra 1.1作为服务。数据库接收来自c#应用程序的数据。脚本终止并重新启动了cassandra服务。之后,过去20小时左右的所有数据都消失了。旧的数据仍然存在 有可能所讨论的数据从未写入光盘。但是,db在所讨论的20小时内正确地回答了查询,因此数据必须至少在内存中 除了存储位置等之外,配置与默认配置相同。刷新策略为 commitlog_
commitlog_sync: periodic
commitlog_sync_period_in_ms: 10000
任何提示都值得赞赏,包括尝试什么以及在日志文件或配置中查找什么
编辑:在多做一点实验后,我现在可以复制以下内容:
- 插入新数据-确定
- 查询新数据-确定
- 停止并重新启动数据库-所有新数据现在都消失了:((旧数据仍然存在)
- 日志文件中没有任何内容,只有“日志重放完成,0次重放”
Edit2:从一个新的空数据库开始,现在一切正常(当然配置相同)。使用损坏数据库的备份,我可以再次重现上述问题。我在cassandra中发现错误了吗?显然,我的数据库处于提交日志未写入或未正确回放的状态。我会查看数据目录,并想知道它们是否正确设置。它们是否正确存在?它们是否正确ritable?与您正在使用的数据库进行比较。请注意,在您执行节点工具修复之前,其中一个目录不会写入太多内容 我的猜测是cass完全是靠记忆工作的,因为它不会写字
它应该为每次更新都写一个日志记录。听起来像是“新的突变不会重演,但旧的突变仍然存在”,这是在1.1.6中修复的。最新的1.1版本是1.1.8;您应该升级到该版本。升级到1.1.8后,它重演了一些突变(根据日志文件)但大部分数据似乎都丢失了。希望从现在起它能起作用。