【发布时间】:2021-03-21 06:46:14
【问题描述】:
我在带有 3 节点集群的 Centos 7 上使用 Cassandra 3.11.6,我运行了一些架构更改、删除表/物化视图、更改表等,之后其中一个物化视图因以下错误而失败: org.apache.cassandra.schema.SchemaKeyspace$MissingColumns:在 my_keyspace.my_materialized_view 的架构表中找不到分区键列。
我想用同名的表替换那个物化视图,这可能是它失败的原因
我运行 nodetool describecluster 发现架构版本不同,我尝试运行修复,它不起作用,我重新启动节点,但它们没有启动。
这是 cassandra.log 中显示的错误
错误 [main] 2020-12-09 10:13:15,827 SchemaKeyspace.java:1017 - 在 system_schema.columns 中找不到表 my_keyspace.my_materialized_view 的分区列。这可能是由于损坏或同时删除和更改表。如果应该删除此表,请运行以下查询进行清理:“DELETE FROM system_schema.tables WHERE keyspace_name = 'my_keyspace' AND table_name = 'my_materialized_view'; DELETE FROM system_schema.columns WHERE keyspace_name = 'my_keyspace' AND table_name = ' my_materialized_view';"如果不应该删除该表,请从备份中恢复 system_schema.columns sstables。 org.apache.cassandra.schema.SchemaKeyspace$MissingColumns:在 my_keyspace.my_materialized_view 的模式表中找不到分区键列 在 org.apache.cassandra.schema.SchemaKeyspace.fetchColumns(SchemaKeyspace.java:1106) [apache-cassandra-3.11.6.jar:3.11.6] 在 org.apache.cassandra.schema.SchemaKeyspace.fetchTable(SchemaKeyspace.java:1046) [apache-cassandra-3.11.6.jar:3.11.6] 在 org.apache.cassandra.schema.SchemaKeyspace.fetchTables(SchemaKeyspace.java:1000) [apache-cassandra-3.11.6.jar:3.11.6] 在 org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspace(SchemaKeyspace.java:959) [apache-cassandra-3.11.6.jar:3.11.6] 在 org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspacesWithout(SchemaKeyspace.java:936) [apache-cassandra-3.11.6.jar:3.11.6] 在 org.apache.cassandra.schema.SchemaKeyspace.fetchNonSystemKeyspaces(SchemaKeyspace.java:924) [apache-cassandra-3.11.6.jar:3.11.6] 在 org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:92) [apache-cassandra-3.11.6.jar:3.11.6] 在 org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:82) [apache-cassandra-3.11.6.jar:3.11.6] 在 org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:269) [apache-cassandra-3.11.6.jar:3.11.6] 在 org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:630) [apache-cassandra-3.11.6.jar:3.11.6] 在 org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:757) [apache-cassandra-3.11.6.jar:3.11.6]
我尝试使用 -Dcassandra.ignore_corrupted_schema_tables=true 启动 Cassandra,但它不起作用
【问题讨论】: