我正在使用一个 Cassandra 集群,该集群由 3 个数据中心的 9 个节点组成。每个 DC 3 个节点。
我们最近发现 system_auth 密钥空间仍然设置为 SimpleStrategy 并且我们使用的是 Cassandra 默认用户。
按照设置复制因子为 3 的 NetworkTopologyStrategy 的步骤,我们登录并发出 alter keyspace 命令。
ALTER KEYSPACE system_auth WITH replication = { 'class' : 'NetworkTopologyStrategy', 'dc1' : 3, 'dc2' : 3, 'dc3' : 3 }
这在日志中返回错误
CustomTThreadPoolServer.java:223 - Error occurred during processing of message.
com.google.common.util.concurrent.UncheckedExecutionException: java.lang.RuntimeException: org.apache.cassandra.exceptions.UnavailableException: Cannot achieve consistency level QUORUM
运行此命令后,我们无法登录 cqlsh 并且 nodetool repair system_auth 返回没有要修复的内容。
nodetool status system_auth 显示一个数据中心,每个节点拥有 100% 所有权,另外 2 个数据中心显示 0%
关于为什么会发生这种情况的任何想法?我在具有相同服务器配置的两个较低环境中执行了这个确切的更改,并且从未出现过问题。