我在这里阅读了有关 Cassandra 备份和恢复的信息,并且有几个问题:
- 原生 Cassandra CLI 命令是否足够?我看到很多人编写脚本并定制自己的解决方案。
- 您会推荐哪些其他工具用于 Cassandra 备份和恢复?我正在寻找可以帮助我管理备份图像的东西(例如,使用时间点)
- 如果我选择备份我的 Cassandra 表,我是否需要在存储方面投入更多?
任何见解将不胜感激。
我在这里阅读了有关 Cassandra 备份和恢复的信息,并且有几个问题:
任何见解将不胜感激。
请尽量将您的问题限制在一个实际问题上。
原生 Cassandra CLI 命令是否足够?
我假设你的意思是nodetool snapshot
,所以在大多数情况下,“是的”。此外,许多用户还选择启用增量备份。结合使用快照和增量备份(来自链接的文档)“提供了一种可靠的、最新的备份机制。 ”
我看到很多人编写脚本并定制自己的解决方案。
我有一个每晚在我的节点上运行的备份脚本。有两个原因。
我不想每周手动为每个键空间拍摄快照,所以我让脚本来做。
快照和增量备份文件不会自行删除,所以我让脚本在某个时间阈值后执行此操作。
您会推荐哪些其他工具用于 Cassandra 备份和恢复?
DataStax OpsCenter 允许您安排备份,但我相信这只是企业版中的一个有效选项。您还可以查看 Netflix 的名为Priam的 Cassandra 备份/恢复工具。还有一家名为Talena的公司声称为 Cassandra 提供广泛的企业级备份解决方案(我不知道有人使用它们,但他们最近给我发了一封营销电子邮件,所以我想我会提到它)。
如果我选择备份我的 Cassandra 表,我是否需要在存储方面投入更多?
如果您不掌握它们(删除和/或归档它们),增量备份和快照可能会占用大量空间。我会尝试它们,并在你这样做的时候留意你的磁盘使用情况。如果您的业务需求有关于服务条款的声明(您需要能够恢复到多远),您应该能够计算出保留多少天的备份对您来说是有意义的。这应该告诉您是否需要更多磁盘来履行这些义务。
编辑 20181205
您是否在每个节点上运行 nodetool 快照?如果存在三个具有 100% 复制的节点,将采用什么方法。
通常是的,nodetool snapshot
需要在每个节点上运行。这有助于确保备份覆盖率,因为并非所有节点都可能负责所有数据。
但是,如果您的集群在节点数等于您的 RF 的配置中运行,则每个节点都有完整的数据副本。在这种情况下,您只需要nodetool snapshot
在一个节点上运行;只要您确信维修会定期进行并且您的数据是一致的。
关于 Cassandra 的时间点备份和恢复,根据您的需求和限制,您需要考虑以下几个方面:
如果您正在寻找用于备份和恢复 Cassandra 的企业级解决方案,您可能需要查看“<a href="http://datos.io" rel="nofollow">Datos IO”提供的解决方案。它将您的存储空间减少了 3 倍,同时还提供了故障恢复能力和集群一致性。