主服务器
synchronous_standby_names
参数说明:潜在同步复制的备机名称列表,每个名称用逗号分隔。
参数类型:字符串
参数单位:无
- 当前连接的同步备机是列表中的第一个名称。如果当前同步备机失去连接,则它会立即更换下一个优先级更高的备机,并将此备机的名称放入列表中。
- 备机名称可以通过设置环境变量PGAPPNAME指定。
- ANY num_sync (standby_name [, ...])
- [FIRST] num_sync (standby_name [, ...])
- standby_name [, ...]
- 其中num_sync是事务需要等待其回复的同步复制的备机的数量,standby_name是备机的名称,FIRST以及ANY指定从所列服务器中选取同步复制的备机的策略。
- ANY N (dn_instanceId1, dn_instanceId2,...)表示在括号内任选N个主机名称作为同步复制的备机名称列表。例如,ANY 1(dn_instanceId1, dn_instanceId2)表示在dn_instanceId1和dn_instanceId2中任选一个作为同步复制的备机名称。
- FIRST N (dn_instanceId1, dn_instanceId2,...)表示在括号内按出现顺序的先后作为优先级选择前N个主机名称作为同步复制的备机名称列表。例如,FIRST 1 (dn_instanceId1, dn_instanceId2)表示选择dn_instanceId1作为同步复制的备机名称。
- dn_instanceId1, dn_instanceId2,...和FIRST 1 (dn_instanceId1, dn_instanceId2,...)具有的含义相同。
该参数由CM维护,如果手动修改,则存在丢失数据的风险。详细请参考 “工具参考 > 统一数据库管理工具 > 特性介绍 > 按分片自动升降副本 > 备注说明 ”。
若使用gs_guc工具设置该参数,需要如下设置:
gs_guc reload -Z datanode -N @NODE_NAME@ -D @DN_PATH@ -c "synchronous_standby_names='ANY 1(dn_instanceId1, dn_instanceId2)'"
或者:
gs_guc reload -Z datanode -N @NODE_NAME@ -D @DN_PATH@ -c "synchronous_standby_names='ANY 1(AZ1, AZ2)'"
默认值:*
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:建议设置为默认值。
设置不当的风险与影响:错误的同步备列表会导致主备同步多数派协议失效。
most_available_sync
参数说明:在有同步备机故障时,主机事务不因同步备机故障而被阻塞。比如有两个同步备机,一个故障,另一个正常,此时主机事务只会等正常的同步备机,而不被故障的同步备所阻塞。
再比如执行quorum协议时,一主三同步备,配置ANY 2(node1,node2,node3),当node1、node3故障,node2正常时,主机业务同样不被阻塞。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示在所有同步备机故障时,不阻塞主机的事务提交。
- off:表示在所有同步备机故障时,阻塞主机的事务提交。
默认值:off
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:开启后,主机不会等待备机提交验证。主机处于单主时也会提交成功,而不是多数派写入成功,需要用户针对自身使用场景谨慎开启。
设置不当的风险与影响:主机处于单主时也会提交成功,而不是多数派写入成功。
keep_sync_window
参数说明:延迟进入最大可用模式的时间。
- 当最大可用模式most_available_sync配置为on,在主备场景下,当存在同步备发生故障,导致不满足当前所配置的同步备数量(详细可参考synchronous_standby_names的含义)时,如果配置了keep_sync_window参数,则在keep_sync_window设置的时间窗口内,继续保持最大保护模式,即阻塞主机的事务提交,延缓进入最大可用模式的时间。
- 若在keep_sync_window超时窗口内,同步备机故障恢复,且满足当前所配置的同步备数量,则不阻塞事务,恢复到正常状态。
- 如果设置keep_sync_window,推荐最小配置为5s,以避免监控系统监控到网络不稳定的误报。
配置该参数可能会对RPO造成影响,若主机在所配置的超时时间窗口内发生故障,则从开始阻塞到主机故障这段时间窗口内的数据可能丢失。
参数类型:整型
参数单位:s(秒)
取值范围:0~2147483647
- 0表示不设置keep_sync_window超时时间窗口,即直接进入最大可用模式。
- 其余表示keep_sync_window超时时间窗口的大小。
默认值:0
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:开启后,主机不会等待备机提交验证。主机处于单主时也会提交成功,而不是多数派写入成功,需要客户针对自身使用场景谨慎开启。
设置不当的风险与影响:主机处于单主时也会提交成功,而不是多数派写入成功。
enable_stream_replication
参数说明:控制主备是否进行数据和日志同步。
- 此参数属于性能测试参数,用于测试带有备机和不带备机的性能参数。关闭参数后,不能进行切换、故障等异常场景测试,否则会出现主备不一致的情况。
- 此参数属于受控参数,不建议正常业务场景下关闭此参数。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示打开主备同步。
- off:表示关闭主备同步。
默认值:on
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:关闭后,数据库实例将失去多副本能力,会降低可用性,不建议用户关闭。
enable_mix_replication
参数说明:控制主备之间WAL日志及数据复制的方式。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示打开WAL日志、数据页混合复制模式。
- off:表示关闭WAL日志、数据页混合复制模式。
默认值:off
设置方式:该参数属于POSTMASTER类型参数,默认值为off,不允许外部修改。
设置建议:不建议修改。此参数目前不允许正常业务场景下改变其值,即默认关闭WAL日志、数据页混合复制模式。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
data_replicate_buffer_size
参数说明:发送端与接收端传递数据页时,队列占用内存的大小。此参数会影响主备之间复制的缓冲区大小。
参数类型:整型
参数单位:kB
取值范围:4096~1072693248
默认值:
128MB(196核CPU/1536G内存,128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,64核CPU/512G内存,60核CPU/480G内存,32核CPU/256G内存,16核CPU/128G内存,8核CPU/64G内存,4核CPU/32G内存);4MB(4核CPU/16G内存)
设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
设置建议:请按照建议的默认值设置,避免设置明显不合理(过大或过小)的data_replicate_buffer_size值。应满足条件:data_replicate_buffer_size + segment_buffers + shared_buffers + wal_buffers + temp_buffers + maintenance_work_mem + work_mem + query_mem + (备机)wal_receiver_buffer_size < max_process_memory < 物理机内存大小。
设置不当的风险与影响:设置的内存参数数值过大,超过物理内存上限,将会导致数据库由于无法申请到足够的内存而无法成功启动的情况。
walsender_max_send_size
参数说明:设置主机端日志或数据发送缓冲区的大小。
参数类型:整型
参数单位:kB
取值范围:8~2147483647
默认值:8192(即8M)
设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:设置过大会占用过多内存,设置过小会导致主备同步性能下降。
enable_data_replicate
参数说明:导入数据行存表时,对主机与备机的数据同步方式进行选择。该参数可在PDB级别设置。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示导入数据行存表时,主备数据采用数据页的方式进行同步。当replication_type参数为1时,不允许设置为on,如果此时用guc工具设置成on,会强制改为off。
- off:表示导入数据行存表时,主备数据采用xLog日志方式进行同步。
默认值:off。在PDB场景内,若未设置该参数,则继承来自全局的设置。
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
ha_module_debug
参数说明:用于查看数据复制时具体数据块的复制状态日志。该参数可在PDB级别设置。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示日志中将打印数据复制时每个数据块的状态。
- off:表示日志中不打印数据复制时每个数据块的状态。
默认值:off。在PDB场景内,若未设置该参数,则继承来自全局的设置。
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:打印日志会占用不必要的磁盘、CPU、I/O带宽,不建议用户开启。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
catchup2normal_wait_time
参数说明:最大可用模式most_available_sync开启,主备场景下,控制备机数据追赶(catchup)阻塞主机的最长时间。该时间为估算值,实际结果可能与参数值有偏差。
参数类型:整型
参数单位:ms(毫秒)
取值范围:-1~10000
- -1表示主机阻塞直到备机数据追赶完成。
- 0表示备机数据追赶时始终不阻塞主机。
- 正整数表示备机数据追赶时阻塞主机的最长时间。例如,取值5000,表示当备机数据追赶完成时间还剩5s时,阻塞主机等待其完成。
默认值:-1
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
check_sync_standby
参数说明:备机检查的控制开关。备机检查开启的情况,主备场景下配置正确的synchronous_standby_names参数后,当同步备故障时,主机写业务直接报错写失败。
- 该参数不支持在job work和自治事务中同步,有可能导致检查不生效。
- 若指定用户或session中未设置备机检查,开启强同步提交模式下备机故障,执行一个表的写操作会导致另一个用户或session中的同一个表的查询hang,此时需要备机恢复或者手动终止hang住的客户端。
- 不支持非写操作中触发写日志的场景中(vacuum analyze等)开启备机检查开关。若备机不满足同步备配置,则该场景会导致业务hang,需要手动terminate。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示开启备机检查。
- off:表示关闭备机检查。
默认值:off。在PDB场景内,若未设置该参数,则继承来自全局的设置。
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。该参数可在PDB级别设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
sync_config_strategy
参数说明:主机和备机、备机和级联备之间配置文件的同步策略。
在低于503.0.0版本升级到503.0.0版本后配置了该参数,回滚后该参数将无法识别。请勿在升级503.0.0版本期间配置该参数。
参数类型:枚举类型
参数单位:无
取值范围:
- 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
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:关闭后会使主机停止向备机同步GUC参数,谨慎设置为非all_node。
设置不当的风险与影响:设置成none_node后,主备之间不会再进行GUC参数的同步,请谨慎使用。
hadr_recovery_time_target
参数说明:在流式容灾模式下,设置hadr_recovery_time_target能够让备数据库实例完成日志写入和回放。
参数类型:整型
参数单位:s(秒)
取值范围:0~3600
- 0是指不开启日志流控。
- 1~3600是指备机能够在hadr_recovery_time_target时间内完成日志的写入和回放。可以保证主数据库实例与备数据库实例切换时能够在hadr_recovery_time_target时间内完成日志写入和回放,保证备数据库实例能够快速升主。
默认值:0
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。取值不能带单位。
设置建议:推荐使用默认值。
设置不当的风险与影响:设置过小,频繁触发流控会影响主机性能。设置过大或关闭此参数,如果出现备机回放不及时,会导致备机RTO时间超出预期,降低高可用的RTO、RPO指标。
hadr_recovery_point_target
参数说明:在流式容灾模式下,设置hadr_recovery_point_target能够让备数据库实例完成日志刷盘的RPO时间。
参数类型:整型
参数单位:s(秒)
取值范围:0~3600
- 0是指不开启日志流控。
- 1~3600是指备机能够在hadr_recovery_point_target时间内完成日志的刷盘。可以保证主数据库实例与备数据库实例切换时,能够在hadr_recovery_point_target时间内完成日志回放,保障备数据库实例升主。
默认值:0
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。取值不能带单位。
设置建议:推荐使用默认值。
设置不当的风险与影响:设置过小,频繁触发流控会影响主机性能。设置过大或关闭此参数,如果出现备机回放不及时,会导致备机RTO时间超出预期,降低高可用的RTO、RPO指标。
hadr_super_user_record_path
参数说明:该参数为流式异地容灾参数,表示备数据库实例中hadr_disaster用户的加密文件存放路径。
- 在一个包含主机、备机的数据库实例中,主机相对于备机是发送端,备机相对于主机是接收端。
- 发送端主动向接收端同步配置文件、接收端请求发送端同步配置文件是两个独立的事件,均会使得配置文件同步。若不希望配置文件同步,则需要在接收端sync_config_strategy配置为none_node,发送端若为备机只能配置为none_node,发送端若为主机,配置为none_node时主机与所有备机都不同步,为only_sync_node时仅与同步备同步,不与异步备同步。
- 配置参数同步的具体表现为,发送端发送配置文件,对接收端配置文件中的对应参数直接覆盖。若设置了配置文件需要同步的策略,则修改接收端配置参数后,发送端会立刻覆盖接收端的配置参数,使得接收端修改不生效。
- 即使设置了配置文件需要同步的策略,仍有部分配置参数不会被同步。包括:"application_name", "audit_directory", "available_zone", "comm_control_port", "comm_sctp_port", "listen_addresses", "log_directory", "port", "replconninfo1", "replconninfo2", "replconninfo3", "replconninfo4", "replconninfo5", "replconninfo6", "replconninfo7", "replconninfo8", "replconninfo9", "replconninfo10", "replconninfo11", "replconninfo12", "replconninfo13", "replconninfo14", "replconninfo15", "replconninfo16", "replconninfo17", "replconninfo18", "ssl", "ssl_ca_file", "ssl_cert_file", "ssl_ciphers", "ssl_crl_file", "ssl_key_file", "ssl_renegotiation_limit", "ssl_cert_notify_time", "synchronous_standby_names", "local_bind_address", "perf_directory", "query_log_directory", "asp_log_directory", "streaming_router_port", "enable_upsert_to_merge", "recovery_min_apply_delay", "sync_config_strategy"。
参数类型:字符串
参数单位:无
取值范围:字符串
默认值:""
设置方式:该参数属于SIGHUP类型参数,请参考表1中方式对应设置方法进行设置。
设置建议:由流式容灾密码传递工具自动设置,不需要用户手动添加。不建议修改。
设置不当的风险与影响:错误的修改会导致灾备数据库实例状态异常,无法连接主数据库实例导致无法同步数据等问题。
enable_wal_sender_crc_check
参数说明:开启walsender线程CRC校验,在主机发送日志前进行CRC校验。该参数开启后可能会导致性能下降,影响在5%以内。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示开启校验的功能。
- off:表示关闭校验的功能。
默认值:on
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:此参数保证日志有效性,用户根据场景需求确认是否开启。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。