日志回放

recovery_time_target

参数说明:设置recovery_time_target秒能够让备机完成日志写入和回放。

该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

取值范围:整型,0~3600(秒)

0是指不开启日志流控,1~3600是指备机能够在recovery_time_target时间内完成日志的写入和回放,可以保证主机与备机切换时能够在recovery_time_target秒完成日志写入和回放,保证备机能够快速升主机。recovery_time_target设置时间过小会影响主机的性能,设置过大会失去流控效果。

默认值:0

recovery_max_workers

参数说明:设置最大并行回放线程个数。

该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。

取值范围:整型,0~20

默认值:1(安装工具默认设置为4,以获得更好的性能)

recovery_parse_workers

参数说明:是极致RTO特性中ParseRedoRecord线程的数量。

该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。

取值范围:整型,1~16

仅在开启极致RTO情况下可以设置recovery_parse_workers为>1。需要配合recovery_redo_workers使用。若同时开启recovery_parse_workers和recovery_max_workers,以开启极致RTO的recovery_parse_workers为准,并行回放特性失效。因极致RTO不支持hot standby模式和主备从模式,仅在参数hot_standby设置成off,replication_type设置成1时可以设置recovery_parse_workers为>1。另外,极致RTO也不支持列存,在已经使用列存表或者即将使用列存表的系统中,请关闭极致RTO。

默认值:1

recovery_redo_workers

参数说明:是极致RTO特性中每个ParseRedoRecord线程对应的PageRedoWorker数量。

该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。

取值范围:整型,1~8

需要配合recovery_parse_workers使用。在配合recovery_parse_workers使用时,只有recovery_parse_workers大于0,recovery_redo_workers参数才生效。

默认值:1

recovery_parallelism

参数说明:查询实际回放线程个数,该参数为只读参数,无法修改。

该参数属于POSTMASTER类型参数,受recovery_max_workers以及recovery_parse_workers参数影响,任意一值大于0时,recover_parallelism将被重新计算。

取值范围:整型,1~2147483647

默认值:1

enable_page_lsn_check

参数说明:数据页lsn检查开关。回放时,检查数据页当前的lsn是否是期望的lsn。

该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。

取值范围:布尔型

默认值:on

recovery_min_apply_delay

参数说明:设置备节点回放的延迟时间。

该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

日志回放 - 图1 须知:

  • 此参数主节点设置无效,必须设置在需要延迟的备节点上,推荐设置在异步备上,设置了延时的异步备如果升主RTO时间会比较长。
  • 延迟时间是根据主服务器上事务提交的时间戳与备机上的当前时间来计算,因此需要保证主备系统时钟一致。
  • 延迟时间设置过长时,可能会导致该备机XLOG文件所在的磁盘满,需要平衡考虑磁盘大小来设置延迟时间。
  • 没有事务的操作不会被延迟。
  • 主备切换之后,原主机若需延迟,需要再手动配置此参数。
  • 当synchronous_commit被设置为remote_apply时,同步复制会受到这个延时的影响,每一个COMMIT都需要等待备机回放结束后才会返回。
  • 使用这个特性也会让hot_standby_feedback被延迟,这可能导致主服务器的膨胀,两者一起使用时要小心。
  • 主机执行了持有AccessExclusive锁的DDL操作,比如DROP和TRUNCATE操作,在备机延迟回放该条记录期间,在备机上对该操作对象执行查询操作会等待锁释放之后才会返回。
  • 不支持MOT表。

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

默认值:0(不增加延迟)