如您所知,Cassandra集群具有复制功能,以防止数据丢失,即使集群中的某些节点关闭。但是,如果管理员意外删除了一个包含大量数据的表,并且该命令已由集群中的所有副本执行,这是否意味着您丢失了该表并且无法恢复该表?服务器停机时间短是否有什么建议来应对这种灾难?当出现故障时恢复cassandra集群数据drop table
回答
从卡桑德拉docs:
auto_snapshot (默认值:true)启用或禁用的快照是否密钥空间截短或表的滴之前取得的数据的。为防止 数据丢失,强烈建议使用默认设置。如果您将 设置为false,则将丢失截断或丢弃数据。
如果管理员已经删除了所有节点中的数据并复制,那么在没有一致备份的情况下很难恢复数据。
也许考虑到cassandra中的删除不会立即执行,您可以恢复数据。当你删除数据时,cassandra用墓碑代替数据。墓碑然后可以传播到错过了初始删除请求的副本。
参见http://wiki.apache.org/cassandra/DistributedDeletes
列标有墓碑存在一个配置的时间(由gc_grace_seconds值在列家族组中定义的),然后通过压缩处理将被永久删除之后的时间已经期满。默认值是10天。
按照About Deletes中的说明,如果您关闭了一些节点,并等到压缩成功并且数据完全从SSTables中删除,然后再次打开节点,则数据可能再次出现。但是这只会发生,如果你不在节点上进行定期维修操作。
我从来没有尝试过这个,它只是一个想法,让我读到cassandra文档。
谢谢。我的问题包括在所有节点中复制删除的情况。假设删除还没有传播,我们怎么知道哪个节点仍然保存着数据,即使我们知道,我们仍然需要等到数据恢复成功,这会造成很多经济损失。 – lncnb91
- 1. 当整个cassandra集群出现故障时会发生什么
- 2. 当phpcassa出现群集中少数cassandra服务器出现故障时
- 3. Cassandra集群恢复
- 4. 群集共享磁盘出现故障
- 5. 如何使用repmgr使用Postgresql群集进行故障恢复?
- 6. 当节点出现故障时Cassandra响铃状态
- 7. Cassandra集群的备份和恢复
- 8. 电源故障和Oracle数据恢复
- 9. Memcache群集故障转移复制
- 10. RabbitMQ集群节点故障
- 11. 将数据库恢复到新群集
- 12. Robospice:当网络出现故障时返回缓存的数据
- 13. 故障恢复在C#
- 14. cxf故障转移恢复
- 15. 复数打印程序出现故障
- 16. H2数据库集群恢复
- 17. RDBMS上的EhCache和RDBMS出现故障时从磁盘溢出/恢复
- 18. 即使在任何节点出现故障时,是否可以从cassandra群集中读取
- 19. 分段故障数据集
- 20. Redis群集:没有自动故障转移为主故障
- 21. postgresql复制|当从服务器/恢复服务器出现故障时,应用程序会冻结
- 22. Cassandra因GC故障而无法修复
- 23. 使用Directory.Exists当网络出现故障
- 24. RabbitMQ的集群网络故障
- 25. Couchbase群集故障转移架构
- 26. 集群节点的libmemcached故障切换
- 27. 使用DiskVolumeInfo(群集故障转移API)
- 28. 使用故障转移群集
- 29. 群集共享卷上的SQL Server 2008故障转移群集?
- 30. Cassandra集群中修复时间对分区数量的影响
感谢您的回答。大量数据需要很长时间才能恢复吗? – lncnb91
在恢复过程中没有实际的数据被复制,所以速度非常快。但我也建议在此之后运行相当缓慢的'nodetool repair'任务,以确保恢复的数据完全一致。 – shutty