日志回放
recovery_time_target
参数说明:设置recovery_time_target能够让备机完成日志写入和回放。
参数类型:整型
参数单位:秒
取值范围:0~3600
0是指不开启日志流控,1~3600是指备机能够在recovery_time_target时间内完成日志的写入和回放,可以保证主机与备机切换时能够在recovery_time_target秒完成日志写入和回放,保证备机能够快速升主机。recovery_time_target设置时间过小会影响主机的性能,设置过大会失去流控效果。
默认值:60
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:一般设置为默认值,不作调整。
recovery_max_workers
参数说明:设置最大并行回放线程个数。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,0~20
默认值:4(安装工具默认设置为4,以获得更好地性能)
queue_item_size
参数说明:设定每个redo replay 线程的任务队列最大长度。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:最大值65535 ,最小值1。
默认值:560
recovery_parse_workers
参数说明:是极致RTO特性中ParseRedoRecord线程的数量。
- 需要配合recovery_redo_workers使用。recovery_parse_workers和recovery_redo_workers同时大于1,则开启极致RTO。如不期望开启极致RTO,请保持recovery_parse_workers为默认值1;
- 在开启极致RTO时确保参数replication_type为1;
- 若同时开启极致RTO和并行回放,则极致RTO特性生效,并行回放特性失效;
- 极致RTO不支持流控,流控统一由recovery_time_target参数控制。
参数类型:整型
参数单位:无
取值范围:1~16
默认值:1
设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
设置建议:不同CPU、内存和部署模式下,recovery_parse_workers和recovery_redo_workers的设置值可参考表1 不同CPU、内存和部署模式下的参数设置参考。
打开极致RTO后,备机会额外启动的回放线程总数=recovery_parse_workers * (recovery_redo_workers + 2) + 5。回放线程越多,占用CPU、内存和IO资源越多。请根据实际硬件配置合理设置参数,避免因为参数设置过大,导致CPU和内存占用过高,进而导致系统启动异常。
recovery_redo_workers
参数说明:是极致RTO特性中每个ParseRedoRecord线程对应的PageRedoWorker数量。recovery_redo_workers需要配合recovery_parse_workers使用,只有recovery_parse_workers大于1,recovery_redo_workers参数设置值才生效。
参数类型:整型
参数单位:无
取值范围:1~8
默认值:1
设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
设置建议:不同CPU、内存和部署模式下,recovery_parse_workers和recovery_redo_workers的设置值可参考表1 不同CPU、内存和部署模式下的参数设置参考。
编号 |
CPU个数 |
内存(GB) |
是否混合部署 |
recovery_parse_workers |
recovery_redo_workers |
回放线程总数 |
备注 |
---|---|---|---|---|---|---|---|
1 |
4 |
- |
- |
1 |
1 |
- |
不推荐开极致RTO |
2 |
8 |
- |
是 |
1 |
1 |
- |
不推荐开极致RTO |
3 |
8 |
64 |
否 |
1 |
1 |
- |
不推荐开极致RTO |
4 |
16 |
128 |
是 |
1 |
1 |
- |
不推荐开极致RTO |
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(不增加延迟)
dcf_truncate_dump_info_level
参数说明:用于控制dcf做日志截断(truncate)时是否打印被截断lsn及之后的lsn。
参数类型:整型
参数单位:无
取值范围: 0~2
- 0:不开启。
- 1: 打印被dcf截断的所有lsn内容(大于等于截断lsn的xlog日志)。
- 2:打印被dcf截断的所有lsn内容,且当落盘lsn大于截断lsn时打印warnning级别日志。
默认值:0(不开启)
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:建议设置为默认值。
redo_bind_cpu_attr
参数说明:用于控制回放线程的绑核操作,仅sysadmin用户可以访问。该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
- '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'