我们有个主意 . 我们想要考虑哪些,也许在 生产环境 中使用 .
我们想使用1 Datacenter作为主要cassandra . 2 Datacenter是辅助和第三个数据中心,其中有一个cassandra集群作为备份集群 .
数据中心1和2正常复制 . 数据中心3应该落后30分钟 . 我们希望通过关闭数据中心3复制来强制它 . 基本上每30分钟通过nodetool开始/停止八卦 .
我认为这应该偶尔工作一次(例如你有一个模式更改,你关闭DC3并更新,如果出现问题你从DC3引导DC1和DC2与空数据)但如果你经常这样做会怎么样?
你们有什么感想?复制会很快破坏?
1 回答
你想要完成什么?
首先,如果你这样做,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