liarby
(Hacker 349gk N69)
1
为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
【概述】模拟同城双机房,开启自适应同步模式,修改topology.yaml之后集群正常启动,但查看状态仍然是majority模式,是配置文件错了吗?如何配?
【背景】做过哪些操作
【现象】业务和数据库现象
【业务影响】
【TiDB 版本】V5.3.0
【附件】
-
TiUP Cluster Display 信息
-
TiUP Cluster Edit Config 信息
-
TiDB- Overview 监控
1 个赞
类似这样写:
server_configs:
pd:
# 同城两中心副本同步复制
replication-mode: 'dr-auto-sync'
replication-mode.dr-auto-sync.label-key: 'zone'
replication-mode.dr-auto-sync.primary: 'east'
replication-mode.dr-auto-sync.dr: 'west'
replication-mode.dr-auto-sync.primary-replicas: 2
replication-mode.dr-auto-sync.dr-replicas: 1
liarby
(Hacker 349gk N69)
4
看过了,现在是实操阶段,不知道怎么让配置生效,topology.yaml如何配置?或者如何让下面官网的配置文件生效?
liarby
(Hacker 349gk N69)
5
这个配置文件会报错,前面加replication.不报错了,但是不生效
liarby
(Hacker 349gk N69)
6
报错点已经找到了,replication-mode是要数组,改了之后不报错,但是查询结果还是majority
liarby
(Hacker 349gk N69)
8
[tidb@tidb-srv001 ~]$ cat rules.json
[
{
“group_id”: “pd”,
“id”: “zone-east”,
“start_key”: “”,
“end_key”: “”,
“role”: “voter”,
“count”: 2,
“label_constraints”: [
{
“key”: “zone”,
“op”: “in”,
“values”: [
“east”
]
}
],
“location_labels”: [
“zone”,
“dc”,
“rack”,
“host”
]
},
{
“group_id”: “pd”,
“id”: “zone-west”,
“start_key”: “”,
“end_key”: “”,
“role”: “voter”,
“count”: 1,
“label_constraints”: [
{
“key”: “zone”,
“op”: “in”,
“values”: [
“west”
]
}
],
“location_labels”: [
“zone”,
“dc”,
“rack”,
“host”
]
},
{
“group_id”: “pd”,
“id”: “zone-west”,
“start_key”: “”,
“end_key”: “”,
“role”: “learner”,
“count”: 1,
“label_constraints”: [
{
“key”: “zone”,
“op”: “in”,
“values”: [
“west”
]
}
],
“location_labels”: [
“zone”,
“dc”,
“rack”,
“host”
]
}
]
再用pd-ctl看一下
config placement-rules show
liarby
(Hacker 349gk N69)
14
PD的replication-mode和placement-rule设置没有关系吧
liarby
(Hacker 349gk N69)
15
replication-mode是写在topology.yaml里面的,这个时候还没有导入规则
liarby
(Hacker 349gk N69)
16
这个应该是个bug,启动之后replication-mode得重新设置一下
这一步的时候我看dr-auto-sync的参数已经读取到了,前面是删了default rule还是做了其他操作呢,有点好奇
这个会不会是yaml里的参数值没生效所以要重新设置一下
liarby
(Hacker 349gk N69)
18
应该是这样的,看官方文档说placement rule还不稳定,等后期优化吧
liarby
(Hacker 349gk N69)
19
为啥开启了dr-auto-sync模式,dr节点会有leader?topology.yaml里面配置dr-replicat=1,config show replication-mode里面看到的是0?