首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卡桑德拉会在nodetool上刷新备忘录吗?如果不是,如何避免数据丢失?

卡桑德拉会在nodetool上刷新备忘录吗?如果不是,如何避免数据丢失?
EN

Stack Overflow用户
提问于 2017-03-21 11:49:29
回答 2查看 4.4K关注 0票数 5

我正在使用apache-cassandra-3.10

我明白,唯一能优雅地阻止卡桑德拉的方法不是 -9 pid,而是nodetool

但是,我想知道nodetool 是否也会在关机前将memtables中的数据刷新到sstables

如果它不刷新,那么当我使用nodetool停止节点时,它将导致数据丢失

在对此进行研究之后,我还读到了关于DURABLE_WRITES.的文章。耐久书写实际上是做什么的?

另外,datastax文档在设置DURABLE_WRITES一节中声明“不要使用SimpleStrategy在键空间上设置此属性”。

参考资料:r.html

如果我的密钥空间配置了简单的策略,那么我仍然不能使用DURABLE_WRITES来帮助它在关闭时丢失数据。

在关机前手动运行nodetool刷新是否是确保关闭时不丢失数据的唯一方法?

我从https://issues.apache.org/jira/browse/CASSANDRA-3564上读到,关闭时要刷新的功能还没有添加。

此外,还有一张关于同一问题的公开票,https://issues.apache.org/jira/browse/CASSANDRA-12001

目的是避免在关闭时使用nodetool丢失任何数据。基本上在关闭前刷新所有表,考虑使用中的简单策略。

EN

回答 2

Stack Overflow用户

发布于 2017-03-22 05:35:39

nodetool drain就够了。

从有关nodeool drain的Datastax文档中,

将所有备忘录从节点刷新到磁盘上的SSTables。Cassandra停止监听来自客户端和其他节点的连接。你需要重新启动卡桑德拉后,运行节点工具排水。 链接:螺杆式排水

然后,您可以杀死或运行nodetool stopdaemon

票数 4
EN

Stack Overflow用户

发布于 2017-03-21 13:02:27

卡桑德拉是非常健壮和崩溃安全。即使您杀死/停止守护进程,您也可能不会丢失数据。但是,如果您安全关闭,那么您可以节省启动时间的卡桑德拉。

按照以下步骤安全关闭:

  1. 节工具解记
  2. 节能型
  3. Nodetooldisable二进制(如为Cassandra 2.0及以上)
  4. 螺杆式排水

禁用流言会停止与其他节点的通信,禁用节俭,而二进制则会停止与客户端的通信。

最后排水沟冲了所有的桌子。

现在,通过杀死或停止守护进程来停止Cassandra

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42926285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档