【问题标题】:How can the Cassandra commitlog be corrupted?Cassandra 提交日志如何损坏?
【发布时间】:2017-02-17 16:15:18
【问题描述】:

这是我的提交日志第二次损坏,服务器拒绝启动。让我担心的是,即使没有对数据库进行更新,我也会遇到这些错误问题。

我的配置说提交日志每 10 秒同步一次,那么除非在这 10 秒内发生崩溃,否则文件如何损坏?

这是一个 Cassandra 错误吗?还是设计使然,即糟糕的设计?

我在 Windows 10 上使用 3.4,Datastax 安装程序。

在标准输出日志中,最后一部分是

INFO  06:17:39 Replaying C:\Program Files\DataStax-DDC\data\commitlog\CommitLog-6-1471353812251.log, C:\Program Files\DataStax-DDC\data\commitlog\CommitLog-6-1471353812252.log, C:\Program Files\DataStax-DDC\data\commitlog\CommitLog-6-1471411951134.log, C:\Program Files\DataStax-DDC\data\commitlog\CommitLog-6-1471454506802.log, C:\Program Files\DataStax-DDC\data\commitlog\CommitLog-6-1471532812678.log
ERROR 06:17:39 Exiting due to error while processing commit log during initialization.
org.apache.cassandra.db.commitlog.CommitLogReplayer$CommitLogReplayException: Could not read commit log descriptor in file C:\Program Files\DataStax-DDC\data\commitlog\CommitLog-6-1471353812252.log
    at org.apache.cassandra.db.commitlog.CommitLogReplayer.handleReplayError(CommitLogReplayer.java:611) [apache-cassandra-3.4.0.jar:3.4.0]
    at org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:373) [apache-cassandra-3.4.0.jar:3.4.0]
    at org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:236) [apache-cassandra-3.4.0.jar:3.4.0]
    at org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:192) [apache-cassandra-3.4.0.jar:3.4.0]
    at org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:172) [apache-cassandra-3.4.0.jar:3.4.0]
    at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:283) [apache-cassandra-3.4.0.jar:3.4.0]
    at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:551) [apache-cassandra-3.4.0.jar:3.4.0]
    at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:680) [apache-cassandra-3.4.0.jar:3.4.0]

【问题讨论】:

  • 嗨,你能调试这个问题吗?我们面临同样的错误。我知道这是一个老问题。但是你能解决它吗?
  • 不,我在 cassandra jira 中没有得到任何答案。我认为他们希望我使用普通的 cassandra 版本,而不是 datastax。我的计划是在我更接近部署时这样做。
  • 很可能是和这个issues.apache.org/jira/browse/CASSANDRA-11995一样的问题,在Cassandra 3.11中修复了

标签: cassandra


【解决方案1】:

我看到过类似的错误。发生这种情况时,Cassandra 进程崩溃可能是由于 OOM。运行“dmesg”并检查它是否因OOM而被杀死。在这种情况下,它写入的提交日志可能已损坏或其 0kb 文件(检查上述文件的大小错误),并且在重新启动 Cassandra 并重播该文件时引发上述错误。

【讨论】:

  • 我有 0kb 的提交日志,我无法删除它。我该如何解决这个问题
  • 正如我所提到的,当您的 Cassandra 被 OS OOM 杀手杀死时,就会发生这种情况。运行“dmesg”并检查它是否因OOM而被杀死。要长期解决它,您应该确保调整堆内存设置。这表明您的过程是OOM。有时,删除并重新启动这些文件会有所帮助,但并非总是如此,因为它会再次重新创建这些 0kb 文件
猜你喜欢
  • 2016-11-25
  • 1970-01-01
  • 2015-10-28
  • 2015-10-19
  • 2023-01-16
  • 2023-03-03
  • 1970-01-01
  • 2015-10-22
  • 1970-01-01
相关资源
最近更新 更多