【TiDB 使用环境】生产环境
【TiDB 版本】v8.5.1
【操作系统】Centos7.9
【部署方式】阿里云ECS
【集群数据量】
【集群节点数】8
【遇到的问题:问题现象及影响】
是否能将一张表通过label放置在指定的flash节点上,比如有2张T1,T2表,replica设置为1,有两个tiflash节点,想将T1表放置在tflash节点1上,T2表放置在tflash节点2上.
可以将一张表通过标签(label)放置在指定的 TiFlash 节点上。TiDB 支持通过 ALTER TABLE ... SET TIFLASH REPLICA ... LOCATION LABELS ...
语法来设置表的副本位置标签,从而实现副本的调度控制
1 个赞
label填写啥?填写tiflash的标签名称吗?我的标签是这个,我该填写啥呢
learner_config:
server.labels:
zone: joy_flash
1 个赞
这个只说了会将指定的表分布到所有zone上啊,replica为2,两个tiflash节点每个一个zone,会把这个表分布在两个zone上
你的两个tiflash的label分别打的什么?
两个节点的label如下:
节点1
learner_config:
server.labels:
zone: joy_flash
节点2
learner_config:
server.labels:
zone:sip_flash
通过 placement-rules-in-sql 做不到,在限制中有写
但我想你能否给 tiflash 节点不同的 label,比如说 label_t1, 这个label 只在 tiflash 1 上有,tiflash 2 上的标签中没有,然后用下面语句去绑定
ALTER TABLE t SET TIFLASH REPLICA 2 LOCATION LABELS "label_t1";
1 个赞
这个试了,不行
怎么打标签呀
这样打标签,然后向下面这样指定一下呢?
ALTER TABLE t SET TIFLASH REPLICA 2 LOCATION LABELS “zone1”;
可用区是副本存放分组用的。你这个需求其实更倾向于 placment rules in sql 功能。不过这个功能无法作用到 tiflash。你可以提个产品需求。
1 个赞
没有实践过,一直以为使用标签可以简单实现