更新时间:2022-07-29 GMT+08:00

发送端服务器

wal_keep_segments

参数说明:Xlog日志文件段数量。设置“pg_xlog”目录下保留事务日志文件的最小数目,备机通过获取主机的日志进行流复制。

参数类型:SIGHUP

取值范围:整型,2 ~ INT_MAX

默认值:65

设置建议:

  • 当服务器开启日志归档或者从检查点恢复时,保留的日志文件数量可能大于wal_keep_segments设定的值。
  • 如果此参数设置过小,则在备机请求事务日志时,此事务日志可能已经被产生的新事务日志覆盖,导致请求失败,主备关系断开。
  • 当双机为异步传输时,以COPY方式连续导入4G以上数据需要增大wal_keep_segments配置。以T6000单板为例,如果导入数据量为50G,建议调整参数为1000。您可以在导入完成并且日志同步正常后,动态恢复此参数设置。

wal_sender_timeout

参数说明:设置本端等待事务日志接收端接收日志的最大等待时间。

参数类型:SIGHUP

  • 如果主机数据较大,重建操作需要增大此参数的值。
  • 此值不能大于wal_receiver_timeout或数据库重建时的超时参数。

取值范围:整型, 0 ~ INT_MAX,单位为毫秒(ms)。

默认值:15s

max_replication_slots

参数说明:设置主机端的日志复制slot个数。

参数类型:POSTMASTER

取值范围:整型,0 ~ 262143

默认值:8

物理流复制槽提供了一种自动化的方法来确保主DN在所有备DN或从备DN收到xlog之前,xlog不会被移除。也就是说物理流复制槽用于支撑集群HA。集群所需要的物理流复制槽数为:一组DN中,备加从备的和与主DN之间的比例。例如,假设集群的DN高可用方案为1主、1备、1从备,则所需物理流复制槽数为2。

关于逻辑复制槽数,请按如下规则考虑。
  • 一个逻辑复制槽只能解码一个Database的修改,如果需要解码多个Database,则需要创建多个逻辑复制槽。
  • 如果需要多路逻辑复制同步给多个目标数据库,在源端数据库需要创建多个逻辑复制槽,每个逻辑复制槽对应一条逻辑复制链路。

max_build_io_limit

参数说明:用于限制主机在提供备机重建(build)会话时,一秒时间内所允许磁盘读取的数据流量。

参数类型:SIGHUP

取值范围:整型,0~1048576,单位为KB。0表示主机对备机build无IO流控限制

默认值:0

设置建议:可参考磁盘带宽和作业模型。无限制时或无作业干扰时,全量build在性能良好的磁盘(如SSD盘)下占磁盘带宽比例较小,磁盘IO未达到瓶颈,对业务性能影响较小,不需要设置阈值限制。在普通10000RPM转速的SAS盘下,如果build过程中,发现业务性能明显下降,可对该参数进行设置,当前推荐设置为20MB。

此设置将直接对build的进行速度和完成时间产生影响,不建议设置过低(10MB以下不建议)。在业务低峰时,建议及时取消限制,恢复build的正常速度。

  • 该参数可在业务高峰期或主机磁盘IO压力较大场景时,通过限制备机build的流速阈值以减少对主机业务的影响。待业务高峰期过后,可取消限制或重新设置流速阈值。
  • 具体业务场景以及磁盘性能状况,建议选择合适的阈值。