我在http://docs.datastax.com/en/cassandra/2.1/cassandra/operations/ops_add_node_to_cluster_t.html之后添加了一个节点(cassandra-03)到我的Cassandra 2.1.8集群(2个现有节点,cassandra-01和cassandra-02,160 + GB,1个密钥空间)。< / p>
在阶段#3(重新启动每个节点之后),我意识到在我现有的节点(cassandra-01和cassandra-02)上,我的密钥空间消失了,但数据仍在文件系统上。
nodetool status
给出了预期的输出(3个节点集群),除了数据列(我在cassandra-01和cassandra-02上预计160GB),我只有几KB。
我在第4步上前进并在cassandra-01上运行nodetool cleanup
。它在几秒钟内工作,但我的键空间仍然缺失。
我通过cqlsh
重新创建了我的密钥空间,希望cassandra能够使用文件系统上的数据,但没有运气。
据我所知,日志上没什么奇怪的。
我怎样才能恢复我的密钥空间数据?
答案 0 :(得分:1)
我无法在新的密钥空间中使用SSTable文件(使用与原始密钥空间相同的名称创建),因此我使用sstableloader
工具将我的数据重新注入新创建的密钥空间(创建了所有表格:
$ sudo mv /var/lib/cassandra/data/mykeyspace /otherlocation/mykeyspace
$ sstableloader -d <host> -f /etc/cassandra/cassandra.yaml -v /otherlocation/mykeyspace/tablename-<token>;