一般问题:在不同Cassandra文件夹中的表文件夹之间移动db文件安全吗(在Cassandra重新启动的单个节点中)?
具体问题:我已经在Cassandra集群上配置了备份。来自存储在Amazon S3上的每个JBOD磁盘、模式和环信息的快照。现在我正在考虑从零开始恢复集群的可能性。
initial_tokens配置属性-使节点知道在此节点上还原的令牌。但是,我是否需要以某种方式指定有关数据如何在JBOD文件夹之间传播的任何信息?或者,当启动时,Cassandra从每个文件中获取筛选器,而这些文件存储在哪个JBOD文件夹上并不重要?
发布于 2017-05-31 16:18:05
是的,当节点脱机时,它是安全的。只需关闭节点,移动文件并重新启动它。
您可以从备份中获取可移植的表,并将它们放到另一个集群中,您需要担心的是将令牌分配与其他集群相同。否则,放置在节点上的马厩可能不是节点需要保存的数据(意思是,读取不会转到节点上)。这里描述了一种方法:http://datascale.io/cloning-cassandra-clusters-fast-way/。您可以从源群集复制令牌。
nodetool ring | grep 0.0.0.0 | awk '{print $NF ", "}' | xargs | cut -d '=' -f 2 | sed 's/,$//' | sed 's/^/initial_token: /' > /tmp/tokens.txt并将其放入目标集群中相应节点的cassandra.yaml中。而设置为auto_bootstrap: false
但是,如果他们开始为磁盘或类似的东西分配令牌范围,这种情况在将来可能会发生变化。
https://stackoverflow.com/questions/44287567
复制相似问题