【 TiDB 使用环境】生产环境 /测试/ Poc
问题 :tidb 冷热隔离 创建表 默认不指定存放策略,数据会存在什么地方
【 TiDB 版本】
6.5.3
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】
【附件:截图/日志/监控】
理论上随机放了
不指定策略应该是随机的
默认建表的数据, hhd上面也会有数据, 这样会造成数据不均衡
这样子冷热隔离就没有意义,希望冷数据存放到hhd 上边,热数据存放在ssd上面,
这样子也就是所有的表都得指定
是都要指定的,分区表每个分表都要指定
是要指定的,你建表的时候需要指定策略,比如你建立一个策略,你就需要对表绑定该策略
ALTER TABLE t1 PARTITION id PLACEMENT POLICY=p1;
建表的时候不指定,他也不知道你是冷数据还是热数据啊
应该会有策略 默认建表不走某个策略 ,例如默认建表不走p1策略
你用程序员思维想一下,建表不设置 Placement Rules就没有策略啊
哈哈 点赞 点赞 牛 师傅
随机放的
可以对数据库设置存放策略,在对应表设置存放策略,这样就可以达到创建表默认存放在ssd中,如果需要冷数据ze指定hhd 中
随机存储呀
大部分用户是不做冷热分离的,你可以给他们提个需求啊,挺好的
不是,你直接针对整个库指定默认存放策略—比如默认存放的ssd,ALTER DATABASE test PLACEMENT POLICY=p2;
然后建历史表的时候单独指定放到hhd中就行了啊。。。
现在default的placement-rule没办法通过Placement rule in SQL
的方式来直接修改,只能通过原始的pd-ctl来修改。原理可以参考下面这个文章。
https://docs.pingcap.com/zh/tidb/stable/configure-placement-rules#配置规则操作步骤
我给你贴下大概的执行步骤吧:
- 查看当前的default规则
tiup ctl:v6.5.3 pd config placement-rules show --group=pd --id=default
正常来说,返回值应该是
{
"group_id": "pd",
"id": "default",
"start_key": "",
"end_key": "",
"role": "voter",
"is_witness": false,
"count": 3,
"location_labels": [
"zone",
"dc",
"host",
"disk"
]
}
- 手动加一个基于lable的
label_constraints
,将需要排除的label加进去,例子如下
{
"group_id": "pd",
"id": "default",
"start_key": "",
"end_key": "",
"role": "voter",
"is_witness": false,
"count": 3,
"label_constraints": [
{
"key": "disk",
"op": "notIn",
"values": [
"sata",
"sata-new"
]
}
],
"location_labels": [
"zone",
"dc",
"host"
]
}
- 将配置应用到pd中
tiup ctl:v6.5.3 pd config placement save --in=rules.json
1 个赞