更新时间:2024-05-07 GMT+08:00

日志回放

recovery_time_target

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

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

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

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

默认值:60

recovery_max_workers

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

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

取值范围:整型,0~20

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

queue_item_size

参数说明:设定每个redo replay 线程的任务队列最大长度。

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

取值范围:最大值65535 ,最小值1。

默认值:560

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不再自带流控,流控统一由recovery_time_target参数来控制。

默认值:1

打开极致RTO后,备机会额外启动recovery_parse_workers * (recovery_redo_workers + 2) + 5个线程,占用更多的CPU、内存和IO资源。请根据实际硬件配置设置参数,避免因为参数设置过大,导致CPU和内存占用过高,启动异常。

recovery_redo_workers

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

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

取值范围:整型,1~8

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

默认值:1

从V500R001C00版本升级到V500R001C10及其后续版本后,建议根据环境的CPU个数进行参数设置,并重启DN。

表1 不同CPU内存和部署模式下的参数设置参考

编号

CPU个数

内存

是否分布式混部

recovery_parse_workers

recovery_redo_workers

回放线程总数

备注

1

4

-

-

1

1

-

不推荐设置。

2

8

-

1

1

-

不推荐设置。

3

8

64

1

1

-

不推荐设置。

4

16

128

1

1

-

不推荐设置。

5

16

128

2

3

15

-

6

32

256

2

2

13

-

7

32

256

2

8

25

-

8

64

512

2

4

17

-

9

64

512

2

8

25

大于此规格的均按照此推荐值设置。

10

96

768

-

2

8

25

大于此规格的均按照此推荐值设置。

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中对应设置方法进行设置。

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

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

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

redo_bind_cpu_attr

参数说明:用于控制回放线程的绑核操作,仅sysadmin用户可以访问。该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。

取值范围:字符串,长度大于0,该参数不区分大小写。

  • 'nobind':线程不做绑核。
  • 'nodebind: 1, 2':利用NUMA组1,2中的CPU core进行绑核。
  • 'cpubind: 0-30':利用0-30号CPU core进行绑核。
  • 'cpuorderbind: 16-32': 从16号核开始开始一个线程绑定一个CPU,区间内核不足就不参与绑定。建议区间大小设置为大于等于recovery_parallelism + 1。

默认值:'nobind'