在 YugabyteDB 中使用只读副本集群时尝试创建 table 时出错

Error trying to create table when using read replica cluster in YugabyteDB

[用户在 YugabyteDB Community Slack 上发布的问题]

尝试向我的主集群添加只读副本集群后,我看到

Error creating table $TABLE on the master: Not enough live tablet servers to create table with replication factor 1. 0 tablet servers are alive. 

当我尝试创建表时,tservers 和 masters 似乎都是 运行,但我没有看到此处提到的已注册新平板电脑服务器日志。什么可能导致 tservers 无法向 masters 注册?

假设您在只读副本端创建一个 rf=2 的只读副本集群,

./bin/yb-admin -master_addresses ip1:7100,ip2:7100,ip3:7100 add_read_replica_placement_info c.r.z1:1,c.r.z2:1 2 rr

./bin/yb-admin -master_addresses 127.0.0.1:7100,127.0.0.2,127.0.0.3 add_read_replica_placement_info c.r.z1:2 2 rr

请注意,我们已将此只读副本集群命名为 rr

现在,只读副本的 tserver 必须使用适当的 --placement_* 选项启动。

所以这 4 个 gflags:https://docs.yugabyte.com/latest/reference/configuration/yb-tserver/#geo-distribution-flags

例如,对于我的第一个例子.. z1 中的 TServers 应该有这些额外的 gflags:

--placement_cloud c --placement_region r --placement_zone z1 --placement_uuid rr

z2 中的 TServers 应该有这些:

--placement_cloud c --placement_region r --placement_zone z1 --placement_uuid rr

对于主集群 TServers,不要传递该选项。这些的默认 --placement_uuid 是一个空字符串。仅为只读副本集群设置它。

另请检查以下管理 UI 页面: a) http://master-ip:7000/cluster-config 查看你的集群配置是否正确 和 b) http://master-ip:7000/tablet-servers 查看 tservers 是否在主集群和 rr 子集群之间正确分类。