暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

GaussDB数据库修改同步备机数量

原创 墨竹 2024-02-23
331

GaussDB数据库修改同步备机数量

背景说明

当前使用的测试环境为GaussDB主备集群1主3备1仲裁共5个节点,由于测试的需要,现需要把同步备的数量修改为1。

操作步骤

1、根据当前的版本,如果裸金属部署版本大于等于503.2版本且需要把synchronous_standby_names的参数修改为any1或first1,需要修改enable_az_auto_switchover参数为0,否则不需要修改该参数,跳过该步骤

enable_az_auto_switchover

参数说明:

AZ自动切换开关,若打开,则表示允许cm_server自动切换AZ。否则当发生dn故障等情况时,即使当前AZ已经不再可用,也不会自动切换到其它AZ上,除非手动执行切换命令。
取值范围:

非负整型,0或1,0表示开关关闭,1表示开关打开。修改后可以reload生效,参数修改请参考表14-2进行设置。默认值:1

gs_guc reload -Z cmserver -N all -I all -c "enable_az_auto_switchover"="0"

2、查询当前synchronous_standby_names参数在各个DN节点的配置

synchronous_standby_names,当前集群该参数默认为ANY 2

参数说明:

潜在同步复制的备机名称列表,每个名称用逗号分隔。当前连接的同步备机是列表中的第一个名称。如果当前同步备机失去连接,则它会立即更换下一个优先级更高的备机,并将此备机的名称放入列表中。备机名称可以通过设置环境变量PGAPPNAME指定。

取值范围:

字符串。当取值为*,表示匹配任意提供同步复制的备机名称。支持按如下格式配置:
● ANY num_sync (standby_name [, …]) [, ANY num_sync (standby_name [, …])]
● [FIRST] num_sync (standby_name [, …])
● standby_name [, …]
说明
1.其中num_sync是事务需要等待其回复的同步复制的备机的数量,standby_name是备机的名称,FIRST以及ANY指定从所列服务器中选取同步复制的备机的策略。
2.ANY N (dn_instanceId1, dn_instanceId2,…)表示在括号内任选N个主机名称作为同步复制的备机名称列表。例如,ANY 1(dn_instanceId1, dn_instanceId2)表示在dn_instanceId1和dn_instanceId2中任选一个作为同步复制的备机名称。
3.FIRST N (dn_instanceId1, dn_instanceId2,…)表示在括号内按出现顺序的先后作为优先级选择前N个主机名称作为同步复制的备机名称列表。例如,FIRST 1 (dn_instanceId1,dn_instanceId2)表示选择dn_instanceId1作为同步复制的备机名称。
4.dn_instanceId1, dn_instanceId2,…和FIRST 1 (dn_instanceId1, dn_instanceId2,…)具有的含义相同。

[omm@ZHHALxjspo0db009 ~]$ gs_guc check -Z datanode -N all -I all -c "synchronous_standby_names"
The gs_guc run with the following arguments: [gs_guc -Z datanode -N all -I all -c synchronous_standby_names check ].

Total GUC values: 4. Failed GUC values: 0.
The details for synchronous_standby_names:
[103.X.X.171]  synchronous_standby_names='ANY 2(dn_6002,dn_6003,dn_6004)'  [/data/data/dn/dn_6001/postgresql.conf]
[103.X.X.172]  synchronous_standby_names='ANY 2(dn_6001,dn_6003,dn_6004)'  [/data/data/dn/dn_6002/postgresql.conf]
[103.X.X.173]  synchronous_standby_names='ANY 2(dn_6004,dn_6001,dn_6002)'  [/data/data/dn/dn_6003/postgresql.conf]
[103.X.X.174]  synchronous_standby_names='ANY 2(dn_6003,dn_6001,dn_6002)'  [/data/data/dn/dn_6004/postgresql.conf]

3、根据查询节点的配置然后修改命令并分别在对应节点执行如下命令

--DN1节点执行
gs_guc reload -Z datanode -D  /data/data/dn/dn_6001 -N 103.161.73.171  -c "synchronous_standby_names='ANY 1(dn_6002,dn_6003,dn_6004)'"
--DN2节点执行
gs_guc reload -Z datanode -D  /data/data/dn/dn_6002 -N 103.161.73.172  -c "synchronous_standby_names='ANY 1(dn_6001,dn_6003,dn_6004)'"
--DN3节点执行
gs_guc reload -Z datanode -D  /data/data/dn/dn_6003 -N 103.161.73.173  -c "synchronous_standby_names='ANY 1(dn_6004,dn_6001,dn_6002)'"
--DN4节点执行
gs_guc reload -Z datanode -D  /data/data/dn/dn_6004 -N 103.161.73.174  -c "synchronous_standby_names='ANY 1(dn_6003,dn_6001,dn_6002)'"

– / END / –

可以通过下面的方式联系我

  • 微信公众号:@墨竹札记
  • 墨天轮:@墨竹
  • 微信:wshf395062788
  • PGFans:@墨竹

如果这篇文章为你带来了灵感或启发,就请帮忙点赞收藏转发;如果文章中不严谨或者错漏之处,请及时评论指正。非常感谢!

最后修改时间:2025-02-06 11:03:27
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论