是否可以在较少的节点上使用较低的复制因子恢复Cassandra快照?

时间:2017-11-15 12:00:07

标签: cassandra database-backups

我正在使用此工具来获取密钥空间的Cassandra快照: https://github.com/AppliedInfrastructure/cassandra-snapshot-tools

此密钥空间的复制因子为3,并托管在3个节点上。 有没有办法在复制因子为1的单节点Cassandra实例上本地完全恢复它?

我尝试以这种方式恢复:

sudo bash ./putSnapshot -f backup-20171114152959.tar.gz -n 192.168.0.172 -k backup_restored -d datacenter1 -r 1

-r 1 选项应覆盖复制因子。

虽然它确实有效,但似乎缺少一些信息。

我的第一个猜测是它只恢复了第一个节点3的数据。

从我所看到的只有一个表中的数据丢失,我在恢复备份时看到了这个错误:

  

无法列出文件   /home/ubuntu/putSnapshot.tmp7564/backup/user-fade6090bee711e7bf39db885b6c90ca

     

引起:java.lang.RuntimeException:期间未知的列设备   反序列化

所以我的另一个猜测是数据从所有3个节点恢复为1,但是在关键空间中恢复其中一个表存在问题。什么可能导致这样的错误?

1 个答案:

答案 0 :(得分:1)

是的,它很可能只从一个节点恢复数据。请改用sstableloader,因为它具有:

的能力
  

将现有SSTable加载到具有不同节点数或复制策略的另一个群集中。

https://docs.datastax.com/en/cassandra/3.0/cassandra/tools/toolsBulkloader.html