在开发人员或测试集群(1 节点集群)上恢复 Cassandra 快照(从 3 节点集群)
Restore Cassandra snapshot (from 3-node-cluster) on developer or test cluster (1-node cluster)
我们已经通过快照为我们的 Cassandra 生产环境设置了一个 backup/restore 过程。快照文件、模式和令牌环信息被复制到 S3。
生产集群是一个复制因子为 3 的 3 节点集群。
为了开发和测试,我想将快照从生产中恢复到单独的集群中。为了省钱和维护方便,最好只从一个生产节点恢复快照。由于我们在 3 节点集群中使用的复制因子为 3,因此每个快照都应包含所有行。一致性对于我们的用例也不重要。
是否可以(以及如何)仅恢复单个快照?
您的所有数据都应该存在于所有 3 个节点上,因此将 sstables 从任何 1 个节点复制到您的测试集群就足够了。如果担心一致性,确保事先进行最近的维修可能是个好主意。
首先在测试集群上创建相同的架构。然后你可以简单地用 nodetool snapshot -t cloneme
拍一张快照。完成后,将创建的文件夹 (cloneme) 中的所有 sstables 复制到测试集群上的等效表文件夹中。然后 运行 nodetool refresh
.
如果你有不同的拓扑(更多节点,不同的 RF),它会变得更加复杂,但是因为你使用 "every node has all the data" 它非常微不足道。
值得一提的是,OpsCenter 具有自动执行 copying of a backup to other clusters 的功能。
我们已经通过快照为我们的 Cassandra 生产环境设置了一个 backup/restore 过程。快照文件、模式和令牌环信息被复制到 S3。
生产集群是一个复制因子为 3 的 3 节点集群。
为了开发和测试,我想将快照从生产中恢复到单独的集群中。为了省钱和维护方便,最好只从一个生产节点恢复快照。由于我们在 3 节点集群中使用的复制因子为 3,因此每个快照都应包含所有行。一致性对于我们的用例也不重要。
是否可以(以及如何)仅恢复单个快照?
您的所有数据都应该存在于所有 3 个节点上,因此将 sstables 从任何 1 个节点复制到您的测试集群就足够了。如果担心一致性,确保事先进行最近的维修可能是个好主意。
首先在测试集群上创建相同的架构。然后你可以简单地用 nodetool snapshot -t cloneme
拍一张快照。完成后,将创建的文件夹 (cloneme) 中的所有 sstables 复制到测试集群上的等效表文件夹中。然后 运行 nodetool refresh
.
如果你有不同的拓扑(更多节点,不同的 RF),它会变得更加复杂,但是因为你使用 "every node has all the data" 它非常微不足道。
值得一提的是,OpsCenter 具有自动执行 copying of a backup to other clusters 的功能。