我正在使用此工具来获取密钥空间的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,但是在关键空间中恢复其中一个表存在问题。什么可能导致这样的错误?
答案 0 :(得分:1)
是的,它很可能只从一个节点恢复数据。请改用sstableloader,因为它具有:
的能力将现有SSTable加载到具有不同节点数或复制策略的另一个群集中。
https://docs.datastax.com/en/cassandra/3.0/cassandra/tools/toolsBulkloader.html