我的密钥空间中填充了生成成本很高的数据。我希望在我的集群中有两个这样的数据副本。我想最终得到两个键空间:让我们调用它们mydata
和mydatabackup
,它们都包含相同的数据(我不介意Cassandra时间戳是否不同)。
有一种简单的方法吗?我能找到答案的最近的事情是使用sstable2json和json2sstable as suggested in response to a similar question?还有更好的方法吗?
答案 0 :(得分:7)
“有更好的方法吗?”
所有Cassandra数据都存储在数据/文件夹中(请在 cassandra.yaml 中查看配置值 data_file_directories )。您还可以查看 saved_caches_directory 和 commitlog_directory 配置。
在数据文件夹中,您将拥有
一些用于身份验证的文件夹等。
在每个键空间文件夹中,您将拥有
* - 包含您的真实数据的Data.db文件
要复制数据,请执行这些文件夹的纯文本复制。
在我们的团队中,操作系统使用crontab以这种方式安排定期备份Cassandra数据。
注意:有时,您可能会错过仍在内存中或可记忆但尚未刷新到磁盘的实时数据。您可以在备份数据文件之前触发完全压缩。但完全压实可能会伤害你,所以要小心
更好的答案:使用提供的工具拍摄数据库的快照: