【问题标题】:Column family ID mismatch during ALTER TABLEALTER TABLE 期间的列族 ID 不匹配
【发布时间】:2018-06-04 08:16:31
【问题描述】:

使用cqlsh 向表中添加列时,我收到以下错误消息:

ALTER TABLE table ADD dataVersion text;

ServerError: java.lang.RuntimeException: java.util.concurrent.ExecutionException: org.apache.cassandra.exceptions.ConfigurationException: Column family ID mismatch (found dbed2170-c53c-11e7-a6f8-6fd66506919d; expected db9404f0-c53c-11e7-8529-65b72ab1f7cf)

它的真正含义是什么,我应该如何处理它?它是一个错误吗?该列似乎添加成功。

Cassandra 版本是 3.0.14

【问题讨论】:

  • 您可以运行nodetool describecluster 并查看您是否有多个架构版本吗?如果你能提供帮助,它也有助于重复使用表名。

标签: cassandra


【解决方案1】:

它的真正含义是什么?我应该如何处理它?

当您进行架构更改时,需要对其进行传播。如果您在传播之前更改不同节点中的架构,您最终会得到不同的架构版本 (ID)。那么就会出现这个错误。

如果在应用更改之前多次更改架构,即使是在同一个节点上,也会发生另一种情况。也会引发此错误。

一种解决方案是重新启动 Cassandra(排空、停止并重新启动)。避免同时应用架构更改。

这是一个错误吗?该列似乎添加成功。

确实如此。但是每个节点可能有不同的模式。 可以使用 nodetool describecluster 检索有关当前模式的信息。

【讨论】:

    【解决方案2】:

    Flushing memtables (nodetool flush) 为我们做到了。

    冲洗不需要重新启动 cassandra,而排空则需要。

    【讨论】:

      猜你喜欢
      • 2016-12-22
      • 2015-12-06
      • 2021-10-03
      • 1970-01-01
      • 2020-01-26
      • 2017-12-27
      • 1970-01-01
      • 2015-05-15
      • 1970-01-01
      相关资源
      最近更新 更多