dba@cqlsh> use system_auth;
dba@cqlsh:system_auth> consistency ALL;
Consistency level set to ALL.
dba@cqlsh:system_auth> SELECT COUNT(*) FROM roles;
dba@cqlsh:system_auth> SELECT COUNT(*) FROM role_permissions;
dba@cqlsh:system_auth> SELECT COUNT(*) FROM role_members;
dba@cqlsh:system_auth> SELECT COUNT(*) FROM resource_role_permissons_index;
1条答案
按热度按时间yrwegjxp1#
我以前见过这种情况。发生的情况是,新节点强制重新计算令牌范围。如果您的新节点也是种子节点,这会使问题复杂化,因为种子节点不引导数据,必须通过修复/重建来填充。从本质上讲,您之前存在的用户可能仍然存在,但是节点主要负责其在
system_auth.roles
表已更改,但未发生数据移动。首先,仔细检查服务器上使用的复制策略
system_auth
键空间。默认情况下,它设置为{'class':'SimpleStrategy','replication_factor':'1'}
这是不够的(海事组织)任何其他地方以外的发展。我总是建议把这个改成NetworkTopologyStrategy
,然后指定数据中心的复制。完成后,在每个节点上运行修复:
nodetool repair system_auth -full
这会让你的前一个用户回来。注意:不必进行完全修复,您可以通过查询
system_auth
一致性ALL
(强制读取修复):无论是完全修复还是读取修复完成,您的前一个用户都应该重新工作。