【问题标题】:Cassandra: Unable to read keyspace from data directoryCassandra:无法从数据目录读取密钥空间
【发布时间】:2017-08-19 05:16:50
【问题描述】:

我的应用程序有一个单节点 Cassandra 设置。为了回收被删除记录(墓碑记录)占用的磁盘空间,我为我的键空间触发了 nodetool compact。不幸的是,这个压缩过程被打断了。现在,当我尝试重新启动服务时,它无法识别在中断时正在进行压缩的密钥空间(来自 cassandra.yaml 中配置的数据目录)。 system 和 system_traces 等其他键空间从同一数据目录成功启动。

有没有人遇到过类似的问题?此外,仅从数据文件中恢复键空间的指针也会有很大帮助(因为缺少对快照的维护)。

PS:进一步分析发现,cassandra 数据目录下的rm 命令已发出但立即取消。大部分数据似乎都已到位,但 system 键空间的 Data.db 文件有可能丢失。有没有办法从这种状态中恢复?

【问题讨论】:

    标签: cassandra cassandra-2.1 nodetool


    【解决方案1】:

    似乎您已通过删除系统密钥空间文件破坏了您的设置,因此 Cassandra 可能不会在启动时进行检查。

    试试这个:

    1. 再次下载相同版本的cassandra。

    2. 创建您的键空间和 cf 架构

    3. 将剩下的旧数据移动到新数据目录(cassandra 只会加载未损坏的数据) -

    sudo mv /data/cassandra_old/data/[keyspace]/[cf]-[md5-old]/* /data/cassandra_new/data/[keyspace]/[cf]-[md5-new]/

    如果我正确理解问题应该可以解决它。

    【讨论】:

      猜你喜欢
      • 2019-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-18
      • 2021-07-26
      • 1970-01-01
      • 2020-05-25
      相关资源
      最近更新 更多