我是 Scylla 的新手,我正在寻找设置适当的备份和恢复解决方案。
我刚刚测试了 running nodetool snapshot -t my_backup
,发现它的作用是my_backup
在每个键空间和表文件夹内创建一个名为 caled 的快照文件夹。
在我看来,这导致了一些限制:
我无法轻松地将备份保存在另一台服务器上,以防该特定服务器死亡
我无法轻松恢复另一台服务器上的备份(例如作为用于生产支持目的/测试的每日快照)
DBA 通常如何将备份存储在另一台服务器中并将整个数据库恢复到另一台服务器中?
--
我注意到的另一个问题是,nodetool listsnapshots
输出中似乎没有提及快照创建日期。
所以我似乎无法找到清除旧快照的方法。
例如,如何“删除超过 10 天的快照”或“保留最后 3 个备份”?
假设您要将快照移动到另一台服务器或云存储(例如:S3 存储桶),然后在一定天数后删除旧快照很简单,只需按日期为每个快照目录运行 Linux,然后在每个快照目录上
find
运行rm -rf
Linux你想要摆脱的。不久前在 Stack Overflow 上提出了这个问题,答案仍然相关:https://stackoverflow.com/questions/31144980/deleting-specific-cassandra-snapshots/31147289#31147289
我上面的回答包含一个脚本,它几乎完成了我上面描述的操作。
Medusa也值得一看,它是一个 Cassandra 备份实用程序。我相当确定它有管理旧快照的方法。