我们使用的是Cassandra版本:3.11.2,我们有两个数据中心A和B各自都有3个节点,而我在cassandra的所有6个节点中提到的种子分别是DC A的第一个IP和DC B的1个.yml。
现在需要维护DC B节点上的修补程序,我们需要在DC B节点上停止cassandra并重新启动它。
我的困惑是:
重新开始怀疑:
鉴于场景节点故障或数据丢失,我问这些问题。
请提出建议。
答案 0 :(得分:1)
如果(默认情况下)启用了hinted_handoff_enabled
并且您的维护在max_hint_window_in_ms
时间范围(3小时)内,那么在重新启动DC B
之后,数据将从以下位置的节点流式传输DC A
,因此最终您也将所有数据都存储到DC B
中。为了确保这一点,您可以在所有节点都恢复后perform repair。
关于重启:
DC B
中启动种子节点,但是此时您需要确保DC A
中的种子节点处于联机状态; </ li>
DC B
中,您甚至可以一个接一个地修补节点,然后分别重新启动它们,但这可能取决于您正在执行的修补类型,例如Cassandra升级还是类似的事情。在这种情况下,您可能需要禁用维修等。