【发布时间】:2016-12-13 22:31:23
【问题描述】:
我有一个 Cassandra 3 节点集群和一个使用 3 的 replication_factor 创建的键空间。
我使用nodetool snapshot 对此键空间进行备份。根据 Cassandra 文档的建议,为了进行全局备份,我在每个节点上使用 cron 作业启动它(3 个节点是 NTP 同步的)。我没有使用增量快照,它始终是一个新的全局快照。
很遗憾,我在恢复过程中遇到了一些问题。
首先,我将复制因子设置为 3(以及QUORUM READ 和 WRITE 操作的一致性级别),以确保即使有 1 个节点关闭,我的应用也能继续工作。
我的第一个场景并不是真正的还原过程: 一个节点出现故障是因为,比方说某人或某事关闭了该节点正在运行的虚拟机。其他 2 个节点继续工作并接收写入/读取请求。 24小时后,我设法重启了第一个节点的虚拟机,所有服务和文件都还在,我即将重启节点。 在重启之前或之后我应该做什么?
第二种情况几乎相同,但我无法恢复第一个节点的虚拟机,我需要重新安装它上面的所有内容,包括 Cassandra。 我应该如何使用我的备份来重新同步这个节点?我应该使用它还是 Cassandra 能够重新同步所有内容而无需我恢复任何内容?在这种情况下我应该怎么做?
我的最后一个场景不同。我丢失了所有节点,无法恢复任何东西。我有我的全局快照(3 个快照,每个节点 1 个,同时拍摄)。 这种情况下的流程是什么?
我已阅读有关恢复过程的 Cassandra 文档,并且我更喜欢简单的复制恢复(换句话说,我宁愿不使用 sstableloader)。我很难理解在这些情况下何时应该使用refresh 和/或repair 命令。
【问题讨论】:
标签: backup restore cassandra-2.2