我们希望将1 Datacenter用作主要cassandra。 2 Datacenter是辅助和第三个数据中心,其中有一个cassandra集群作为备份集群。
数据中心1和2正常复制。数据中心3应该落后30分钟。我们希望通过关闭数据中心3复制来强制它。基本上每30分钟通过nodetool开始/停止八卦。
我认为这应该偶尔使用一次(例如你有一个架构更改,你关闭DC3并更新,如果出现问题,你从DC3用空数据引导DC1和DC2)但是如果你这样做会发生什么经常?
你们觉得怎么样?复制会很快破坏吗?
答案 0 :(得分:2)
你想要完成什么?
首先,如果你这样做,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以30分钟为间隔在DC3中创建快照。快速,无需额外空间(硬链接),您可以轻松地从中恢复。使用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