我们有个主意。这是我们想要考虑的,也许可以在生产中使用。
我们希望使用1个Datacenter作为主cassandra。2个数据中心是辅助数据中心,第三个数据中心使用cassandra群集作为备份群集。
数据中心1和2照常复制。数据中心3应滞后30分钟。我们想通过关闭数据中心3复制来强制它。基本上每30分钟通过nodetool开始/停止八卦。
我认为这应该偶尔会起作用(例如,你有一个模式改变,你关闭了DC3和更新,如果出现问题,你用空数据从DC3引导DC1和DC2 ),但是如果你经常这样做会发生什么?
你们觉得怎么样?复制会不会很快就会中断?
发布于 2017-07-22 03:44:29
你想完成什么?
首先,如果你这样做,DC3不会总是落后30分钟。事实上,DC3在30分钟内不会获得任何更新,然后几乎没有延迟地获取到“一致”状态。
您将把所有的写入放在提示中,所以您需要确保它们都不会丢失,否则您将需要经常进行修复。默认情况下,暗示的交接保留3小时,也有一个油门。这在某些情况下可能会失败,例如写入加载时间过长。(http://docs.datastax.com/en/cassandra/3.0/cassandra/configuration/configCassandra_yaml.html#configCassandra_yaml__max_hint_window_in_ms)
你想要一个安全的灾难恢复点吗?
您可以通过cron在DC3中以30分钟为间隔创建快照。快速,不需要额外的空间(硬链接),您可以很容易地从它们恢复。将它们标记为201707-1200时,可以很容易地找到正确的,也可以用来清理旧的。
http://docs.datastax.com/en/cassandra/3.0/cassandra/tools/toolsSnapShot.html
http://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsBackupSnapshotRestore.html
https://stackoverflow.com/questions/45239931
复制相似问题