1. 参数说明
主机和备机、备机和级联备之间配置文件的同步策略。
该参数属于POSTMASTER类型参数,请参考表GUC参数分类中对应设置方法进行设置。
取值范围: 枚举类型
- all_node: 主机配置为all_node时,表示允许主机向所有备机主动同步配置文件;备机配置为all_node时,表示允许当前备机向其主机发送同步请求,允许当前备机向其所有级联备主动同步配置文件;级联备配置为all_node时,表示允许当前级联备向其备机发送同步请求。
- only_sync_node: 主机配置为only_sync_node时,表示仅允许主机向所有同步备机主动同步配置文件;备机配置为only_sync_node时,表示允许当前备机向其主机发送同步请求,不允许当前备机向其所有级联备主动同步配置文件;级联备配置为only_sync_node时,表示允许当前级联备向其备机发送同步请求。
- none_node: 主机配置为none_node时,表示不允许主机向任何备机主动同步配置文件;备机配置为none_node时,表示不允许当前备机向其主机发送同步请求,不允许当前备机向其所有级联备主动同步配置文件;级联备配置为none_node时,表示不允许当前级联备向其备机发送同步请求。
默认值: all_node
2. 测试环境
一主三备
初始配置:
openGauss=# show synchronous_standby_names ;
synchronous_standby_names
---------------------------
FIRST 1(dn_6002,dn_6003)
(1 row)
openGauss=# show sync_config_strategy ;
sync_config_strategy
----------------------
all_node
(1 row)
openGauss=# show shared_buffers ;
shared_buffers
----------------
2GB
(1 row)
3. 测试过程
3.1 sync_config_strategy=all_node
主库执行修改参数shared_buffers
gs_guc reload -N all -I all -c "shared_buffers=3GB "
重启集群后,查看参数
shared_buffers
----------------
3GB
(1 row)
所有节点参数均修改
3.2 sync_config_strategy =only_sync_node
主库修改参数
NOTICE: please restart the database for the POSTMASTER level parameter to take effect.
ALTER SYSTEM SET
重启主库后,主库配置为
openGauss=# show sync_config_strategy ;
sync_config_strategy
----------------------
only_sync_node
(1 row)
备库配置均为
openGauss=# show sync_config_strategy ;
sync_config_strategy
----------------------
all_node
(1 row)
3.2.1 主库使用-N all 修改参数
gs_guc reload -N all -I all -c "shared_buffers=3GB "
主备库参数均为
openGauss=# show shared_buffers ;
shared_buffers
----------------
3GB
(1 row)
3.2.2 主库不使用-N all 修改参数
主库修改参数shared_buffers
openGauss=# alter system set shared_buffers = '2GB';
或
gs_guc reload -I all -c "shared_buffers=2GB "
dn_6001,dn_6002,dn_6003
openGauss=# show shared_buffers ;
shared_buffers
----------------
2GB
(1 row)
dn_6004未修改成功
openGauss=# show shared_buffers ;
shared_buffers
----------------
3GB
(1 row)
若full build dn_6004,则dn_6004参数和主库相同
4. 结论
若主节点配置为sync_config_strategy =only_sync_node,
- 使用gs_guc reload -N all -I all -c 修改参数,会修改所有节点
- 使用alter system set 或者gs_guc reload -I all -c方式修改,
则sync_config_strategy生效,不写在synchronous_standby_names里的节点不会修改