TIDB集群设置单副本

【TiDB 使用环境】测试环境
【TiDB 版本】v8.5.4
【部署方式】服务器部署
【集群数据量】

我现在搭建了一个tidb集群,如上图,作为mysql的下游使用,通过binlog dm实时同步数据到tidb,业务人员使用tidb查询数据,所以这个tidb我不需要多副本,就只想单副本运行这个集群,怎么设置呢

有配置参数控制副本数。一般3个节点就是3副本。 你说的是3个节点变成1个节点,还是3个节点不变,只是3副本变成1副本?
https://docs.pingcap.com/zh/tidb/stable/pd-configuration-file/#max-replicas

现在的部署架构不变,还是多节点的,就想直接改副本,后续数据量很大,不想占太多地方,这个集群崩了我也OK

直接config set max-replicas=1 这样修改就行了吗? 会影响tikv数据副本吗?

有条件直接上敏捷版
如果只是单副本做数据查询,那么直接用mysql似乎更合理
多节点,单副本,可以设置pd的参数 replication.max-replicas=1

上游是多个mysql实例,分库分表的,所以想通过binlog dm合库合表到tidb, 由于数据量比较大就想弄单副本

设置这个就可以了,这个是在线,实时生效,想要持久化的话,可以通过tiup edit-config修改这个配置参数

你是想所有组件都单个的还是数据单个副本

主要就是数据单副本就行了,组件都是多个的,别的也不占啥地方

基本要求好像就是3副本吧

执行config set max-replicas 1设单副本,再用config placement-rules show验证,等 PD 自动调度完即可。

是的,这个就是设置tikv数据副本的。

SET CONFIG pd replication.max-replicas = 1;
ALTER TABLE your_db.your_table SET TIFLASH REPLICA 0

replication.max-replicas: 1

不建议多节点跑单副本。有节点故障自动补不了数据,经常重跑数据也不好玩的

下游应用,实际环境中故障的机会应该不多吧

是的,没啥问题的

若已有 3 副本集群,可通过 PD 动态调整副本数,但需手动清理多余副本,步骤如下:

运行

# 1. 连接 PD,设置全局副本数为1
tiup ctl:v7.1.5 pd -u http://<pd-ip>:2379 config set replication.max-replicas 1

# 2. 触发 PD 调度,清理多余副本
tiup ctl:v7.1.5 pd -u http://<pd-ip>:2379 scheduler add evict-leader-scheduler
tiup ctl:v7.1.5 pd -u http://<pd-ip>:2379 scheduler add replicate-scheduler

# 3. 验证所有 Region 均为单副本
tiup ctl:v7.1.5 pd -u http://<pd-ip>:2379 region check --detail
# 输出中 "ReplicaCount" 应为 1

就这样配置,也没啥问题

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