我正在运行时,一个节点上的sstable文件已损坏
sstablescrub --skip-corrupted demo test
命令返回错误
java.io.IOException: Channel not open for writing - cannot extend file to required size
Exception in thread "main" FSReadError in /var/lib/cassandra/data/demo/test-1ac451f0265811e6b09b4342782e6533/mb-12248-big-Data.db
我不知道为什么会发生错误。我可以删除文件,运行cassandra和nodetool --full修复吗?
答案 0 :(得分:2)
是的,您可以关闭主机,删除文件并进行修复。在某些情况下,它可以工作,具体取决于数据模型和用例,但默认情况下我不建议这样做。
在损坏的情况下,我强烈建议您关闭节点并完全替换它。即使使用相同的硬件替换,重新引导也比引入Windows(可能(但不太可能)丢失数据)更安全。
如果您可以确定数据不一致,并且可能会丢失数据,那么这种方法就可以了。