You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cassandra 3.10执行nodetool repair -pr单节点验证错误修复咨询

解决Cassandra节点nodetool repair -pr失败(Failed creating a merkle tree)的方法
  • 排查并修复损坏的SSTable
    从.195和.99节点的system.log中定位具体关联的keyspace和表,执行nodetool scrub <keyspace_name> <table_name>命令。该命令会扫描并修复损坏的SSTable文件,操作前务必备份对应数据,且选择业务低峰期执行,避免影响集群性能。

  • 进一步缩小修复范围
    若指定范围修复仍失败,先尝试仅针对问题表执行修复:nodetool repair -pr <keyspace_name> <table_name>;如果还是报错,再精准到错误日志中给出的分区token范围,执行nodetool repair -pr -st <起始token> -et <结束token> <keyspace_name> <table_name>。

  • 检查节点磁盘状态
    登录xx-xxx-xx-99节点,用df -h确认磁盘是否已满,Merkle树创建需要足够临时空间,磁盘满会直接导致创建失败。同时通过dmesg查看是否存在磁盘IO错误、坏道等硬件层面的问题,有异常及时处理磁盘。

  • 清理缓存并重启节点
    停止Cassandra服务,备份并删除/var/lib/cassandra/commitlog和/var/lib/cassandra/saved_caches目录下的文件,随后重启节点。这种方式可解决JVM内存碎片、缓存异常引发的创建失败问题。

  • 替换问题节点(终极方案)
    若以上方法均无效,考虑移除问题节点并重新加入新节点:

    1. 在集群正常节点上执行nodetool decommission(节点状态正常时)或nodetool removenode <节点ID>(节点无法正常服务时),移除xx-xxx-xx-99节点;
    2. 部署新节点并配置集群信息,启动后等待数据同步完成;
    3. 对新节点执行nodetool repair -pr操作。

内容的提问来源于stack exchange,提问作者Sanjay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 15:09:51