Cassandra 如何在集群中复制密钥空间
我有一个填充了数据的密钥空间,生成这些数据的成本很高。我想在群集中复制两份此数据。最后我想使用两个键空间:让我们调用它们Cassandra 如何在集群中复制密钥空间,cassandra,Cassandra,我有一个填充了数据的密钥空间,生成这些数据的成本很高。我想在群集中复制两份此数据。最后我想使用两个键空间:让我们调用它们mydata和mydatabackup,它们都包含相同的数据(我不介意Cassandra时间戳是否不同) 有没有一个简单的方法可以做到这一点?我能找到的最接近答案是使用sstable2json和JSON2STABLE?有更好的办法吗?“有更好的办法吗?” 所有Cassandra数据都存储在数据/文件夹中(检查Cassandra.yaml中的配置值数据文件目录)。您还可以检查已保
mydata
和mydatabackup
,它们都包含相同的数据(我不介意Cassandra时间戳是否不同)
有没有一个简单的方法可以做到这一点?我能找到的最接近答案是使用sstable2json和JSON2STABLE?有更好的办法吗?“有更好的办法吗?”
所有Cassandra数据都存储在数据/文件夹中(检查Cassandra.yaml中的配置值数据文件目录)。您还可以检查已保存的\u缓存\u目录和提交日志\u目录配置
在数据文件夹中,您将有
更好的答案:使用提供的工具拍摄您的快照:
您可以运行
nodetool flush
来确保将memtables刷新到磁盘,而不是执行完全压缩。文档提供了一个更好的选择:nodetool-h-p snapshot我制作了一个快照的普通副本,并将文件粘贴到casssandra数据目录中的一个新文件夹(mydata
)中。但是,数据无法从cassandra cli获得。这似乎是因为文件是根据旧的键空间命名的,类似于mydata-cf-hf-1-Data.db
。但是,如果我重命名文件以匹配新的键空间(例如,mydatabackup-cf-hf-1-Data.db
),并运行nodetool repair mydatabackup
。它似乎起作用了。感谢@DoAnduyHai忘了说,在运行修复之前,我需要为mydatabackup创建新的模式(mydata模式的副本)。DataStax链接已断开。