我在CentOS机器上使用Cassandra。在它失败了一段时间之后,我通过它重新启动它
sudo service cassandra restart
并开始在整个地方收到Connection拒绝错误 - 我甚至无法运行nodetool status
而没有遇到这个问题。
经过一些挖掘和后续重启后,我在debug.log
注意到启动序列卡在了以下位置:
INFO [main] 2018-04-03 09:40:15,156 ColumnFamilyStore.java:389 - Initializing system.IndexInfo
INFO [SSTableBatchOpen:1] 2018-04-03 09:40:15,851 BufferPool.java:226 - Global buffer pool is enabled, when pool is exahusted (max is 512 mb) it will allocate on heap
DEBUG [SSTableBatchOpen:1] 2018-04-03 09:40:15,873 SSTableReader.java:479 - Opening <path>/IndexInfo-9f5c6374d48532299a0a5094af9ad1e3/mc-300-big (58 bytes)
DEBUG [SSTableBatchOpen:2] 2018-04-03 09:40:15,873 SSTableReader.java:479 - Opening <path>3/system/IndexInfo-9f5c6374d48532299a0a5094af9ad1e3/mc-301-big (59 bytes)
DEBUG [SSTableBatchOpen:3] 2018-04-03 09:40:15,873 SSTableReader.java:479 - Opening <path>/IndexInfo-9f5c6374d48532299a0a5094af9ad1e3/mc-299-big (302 bytes)
打开这些文件应该花费大约一秒钟 - 它已经坚持了很长时间(例如,它从未超出这一点)。我怀疑所涉及的一些文件必须被破坏(尽管我很惊讶Java并没有在这里遇到某种异常)。
我该怎么办?如果我删除这些文件夹,会导致我丢失数据吗?我可以运行哪些其他诊断来确定问题的根源?对于记录,任何类型的nodetool
命令都会退出,并且#34; Connection Refused&#34;错误。
版本号: 卡珊德拉:3.0.9 Java:1.8.0_162 CentOS:6.9
感谢您的帮助!
答案 0 :(得分:0)
事实证明,问题在于涉及的文件已损坏 - 在数据文件夹(currentIndex
等)中的所有文件上运行ListView
并删除崩溃后的提交日志允许卡桑德拉起床。丢失了几百个数据行(可能是因为我删除了提交日志),但至少数据库已备份了!