resetlocalschema 是否可以解决升级期间混合版本上的架构不匹配问题?

问题描述 投票:0回答:1

最近我尝试以滚动升级方式将我的 cassandra 集群(3 + 3)从 cassandra 3.0.15 升级到 4.1.0,我发现当具有旧版本 cassandra 的节点充当协调器时,它无法从 cassandra 读取数据新版本的 cassandra,反之亦然。所以在升级过程中出现了巨大的不一致。我认为它的发生是因为 C3 和 C4 之间的模式不匹配。

因此,要解决这个问题,我可以在 cassandra 节点升级(3.0.15 到 4.1)过程中使用 nodetool Resetlocalschema 来解决 3.x 和 4.x 之间的架构不匹配问题。

提出消除停机时间的解决方案。

cassandra cassandra-3.0 cassandra-4.0
1个回答
0
投票

主要升级期间的 Cassandra 集群 应该有 2 个不同的架构版本,每个 Cassandra 版本一个。

据我所知,这并不意味着协调器无法从不同模式版本中的节点读取数据,除非正在读取的键空间/表是在版本之间更改的本机模式组件。你是怎么发现不同版本的节点之间存在分区的?

除非您确实遇到架构不匹配的问题 - 在这种情况下,您应该在

nodetool describecluster
中看到 3 个或更多架构版本 - 一旦所有节点都升级,架构不匹配就应该得到解决,并且
nodetool resetlocalschema
不应该执行任何操作,直到然后,我仍然建议不要运行它。

同时,在升级完成之前,请不要进行任何 DDL 更改(

ALTER
CREATE
DROP
),否则可能会导致架构不匹配的实际问题。

© www.soinside.com 2019 - 2024. All rights reserved.