Placement Rules 创建完成后,无法建表问题反馈

【 TiDB 使用环境】生产环境 or 测试环境 or POC
【 TiDB 版本】

Cluster name: tidb_cluster_v6.0
Cluster version: v6.0.0

【遇到的问题】

11:18 10.200.118.177:4000[Writable] (ke) > CREATE PLACEMENT POLICY ke_policy PRIMARY_REGION=“zeus” REGIONS=“zeus,mars,atlas” FOLLOWERS=4;
Query OK, 0 rows affected (0.08 sec)

11:18 10.200.118.177:4000[Writable] (ke) > create table t1 (id int) PLACEMENT POLICY ke_policy ;
ERROR 8243 (HY000): “[PD:placement:ErrRuleContent]invalid rule content, rule ‘table_rule_74_0’ from rule group ‘TiDB_DDL_74’ can not match any store”

11:19 10.200.118.177:4000[Writable] (ke) > create table t1 (id int);
Query OK, 0 rows affected (0.09 sec)

11:36 10.200.118.177:4000[Writable] (ke) > create table t2 (id int) PLACEMENT POLICY ke_policy ;
ERROR 8243 (HY000): “[PD:placement:ErrRuleContent]invalid rule content, rule ‘table_rule_78_0’ from rule group ‘TiDB_DDL_78’ can not match any store”

11:40 10.200.118.177:4000[Writable] (ke) > show CREATE PLACEMENT POLICY ke_policy;
±----------±------------------------------------------------------------------------------------------------+
| Policy | Create Policy |
±----------±------------------------------------------------------------------------------------------------+
| ke_policy | CREATE PLACEMENT POLICY ke_policy PRIMARY_REGION=“zeus” REGIONS=“zeus,mars,atlas” FOLLOWERS=4 |
±----------±------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

11:40 10.200.118.177:4000[Writable] (ke) > alter table t1 PLACEMENT POLICY ke_policy ;
ERROR 8243 (HY000): “[PD:placement:ErrRuleContent]invalid rule content, rule ‘table_rule_76_0’ from rule group ‘TiDB_DDL_76’ can not match any store”

【复现路径】做过哪些操作出现的问题
【问题现象及影响】

【附件】

请提供各个组件的 version 信息,如 cdc/tikv,可通过执行 cdc version/tikv-server --version 获取。

FOLLOWERS=4
你的tikv数量支持5副本吗?

满足的!集群信息:

创建语句:

【补充一下】
这套6.0.0版本是通过tiup直接部署安装的,不是通过离线版手动安装:

29731 2022-05-11 19:15:28 tiup cluster deploy tidb_cluster_v6.0 v6.0.0 /home/tidb/.tiup/storage/cluster/topology.yaml --ssh system

使用Primary_region这种方式应该是要设置region标签,如果只用host的话试试leader_constraint/follower constraint的方式

create placement policy ke_policy  LEADER_CONSTRAINTS="[+host=zeus]" FOLLOWER_CONSTRAINTS='{"+host=mars":1,"+host=atlas":1}';

默认的 PLACEMENT POLICY 是需要以 region 来作为区分标签的,所以在创建 tikv 的时候这里需要明确的指定 tikv 的 region 的标签,不然的话在show placement labels 是无法看到 region lable 的

上边图中你的label是host不是region

1 个赞

收到!感谢!

感谢细心解答!貌似接触到了问题的核心。想要细粒度控制,则必然需要label 精细化到region。我这边还不知道咋对region进行label化,能方便给个例子吗?配置文件中 tikv的label设置

https://docs.pingcap.com/zh/tidb/stable/tune-tikv-memory-performance#参数说明
image

1 个赞

可以参考一下 哈哈哈 卖一下瓜

2 个赞

太棒了

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。