在 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
子集群之间正确分类。
[用户在 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
子集群之间正确分类。