资源池化支持主备参数同步
可获得性
本特性自openGauss 7.0.0-RC1版本开始引入。
特性简介
通过该特性可以实现资源池化场景下的主备参数同步。
客户价值
资源池化场景下,在主机修改GUC配置文件后,无需手动在备机修改即可同步给备机,同时也支持扩容出来的新节点的配置文件自动同步。
特性描述
本特性支持同步postgresql.conf和pg_hba.conf两个配置文件,并在同步后进行SIGHUP级别的参数加载。系统可以60min为周期定时进入同步流程,也可通过重新加载配置文件进入同步流程。
特性增强
无。
特性约束
- 部分GUC参数是节点保留参数,不进行同步。在传统主备的保留参数基础上,将资源池化新增的以下参数列为保留参数:ss_enable_dss,ss_enable_dms,ss_enable_catalog_centralized,ss_instance_id,ss_dss_vg_name,ss_dss_conn_path,ss_rdma_work_config,ss_ock_log_path,ss_scrlock_server_port,ss_enable_ondemand_recovery,ss_enable_ondemand_realtime_build,ss_disaster_mode。
- 本特性支持的参数同步必须依赖postgresql.conf文件或pg_hba.conf文件。
- 加载配置文件时,遵守参数类型的加载规则,postmaster类型的参数必须重启节点才能生效。
- 本特性仅支持SIGHUP级别的动态参数加载,对于postmaster类型的参数,只能通过同步流程将参数同步到备机的配置文件中,无法加载。比如:直接修改配置文件中某个postmaster类型的非保留参数值,使主备配置文件中该参数的值不一致后,重启整个集群,主备配置文件中该参数的值会被同步一致,而备机加载到的参数还是原来配置文件中的值;直接在备机的配置文件里修改postmaster类型的非保留参数后,立刻重启备机,修改后的值会被加载,备机的配置文件中该参数的值会被同步覆盖。
- 同步流程中如果发生failover或switchover进行换主时,大部分情况都能同步最新参数,部分极端场景下需要用户在新主节点重新配置最新参数,比如在主机维护共享配置文件期间主机异常退出,会导致共享配置文件的内容无法被更新。
- 集群重启场景不支持同步ss_interconnect_channel_count和ss_interconnect_url这类参数,原因是只有在节点正常启动后才能进入同步流程,而这类参数如果在启动前主备不一致的话,节点无法正常启动。正常集群启动状态因为postmaster级别参数不会加载所以可以同步到配置文件中。
依赖关系
无。
基本原理
在共享存储中维护共享配置文件,由主机写入,备机不能修改。主机在写完共享配置文件后广播同步消息给备机,备机收到同步消息后读取共享配置文件的内容,更新本地配置文件,然后通知PM进行加载。集群发生主备切换后,新主先用共享配置文件中的内容更新本地配置文件,然后再作为主机发起后续同步流程。
使用指导
系统内部以60min为周期进入同步流程,用户也可通过以下操作触发同步流程:
- 使用cm_ctl start启动集群。
- 在主机使用gs_guc工具reload配置参数。
- 连接主机数据库输入"ALTER SYSTEM SET paraname TO value;"。
- 进行switchover、failover触发换主。
其中,由换主触发的同步流程(switchover、failover场景)会直接用共享存储里的配置文件同步给新主和备机;其余操作触发的同步流程会先把主机的配置文件写进共享存储,再用共享存储里的配置文件同步给备机。
意见反馈