我很难在 Apache Cassandra(3.0.9 版)上恢复快照。据我所知,我正在遵循 datastax 博客上描述的程序以及其他几个程序(例如:http ://datascale.io/cloning-cassandra-clusters-fast-way/ )。然而我可能会遗漏一些东西,每次我进行恢复时,数据都会丢失。
设置: 6 节点集群(1 个 DC,3 个机架,每个机架有 2 个节点),复制因子设置为 3。机器托管在 AWS 上。
备份程序(在每个节点上):
nodetool snapshot mykeyspace
cqlsh -e 'DESCRIBE KEYSPACE mykeyspace' > /tmp/mykeyspace.cql
nodetool ring | grep "$(ifconfig | awk '/inet /{print $2}' | head -1)" | awk '{print $NF ","}' | xargs > /tmp/tokens
我获取由 nodetool snapshot 命令生成的文件,并将它们与 S3 上的令牌和 cql 一起备份。
恢复过程(对于每个节点,除非指定):
(在创建新虚拟机之后)
/var/lib/cassandra/commitlog/*
和/var/lib/cassandra/system/
cassandra.yaml
mykeyspace.cql
一个节点恢复 mykeyspace