逻辑复制
max_changes_in_memory
参数说明:逻辑解码时,单个事务在内存中缓存的DML语句数量上限。
参数类型:整型
参数单位:无
取值范围:1~2147483647
默认值:4096
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:设置过大,解码到大事务会占用较多的动态内存;设置过小,解码效率会降低。
max_cached_tuplebufs
参数说明:逻辑解码时,总元组信息在内存中缓存的数量上限。
参数类型:整型
参数单位:无
取值范围:1~2147483647
默认值:8192
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。建议设置为max_changes_in_memory的两倍以上。
设置不当的风险与影响:设置过大,解码到大事务会占用较多的动态内存;设置过小,解码效率会降低。
logical_decode_options_default
参数说明:逻辑解码任务启动时的全局默认参数。
参数类型:字符串
参数单位:无
取值范围:通过逗号分隔的key=value字符串,例如:"parallel-decode-num=4,parallel-queue-size=128,exclude-users=userA,skip-generated-columns=on"。其中空字符串表示采用程序硬编码的默认值。
默认值:""
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
当前支持指定的逻辑解码选项包括:parallel-decode-num, parallel-queue-size, max-txn-in-memory, max-reorderbuffer-in-memory, exclude-users, skip-generated-columns, decode-sequence。选项的详细说明,请参考《特性指南》的“逻辑复制 > 逻辑解码 > 逻辑解码选项”章节。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
logical_sender_timeout
参数说明:设置本端等待逻辑日志接收端接收日志的最大等待时间。
参数类型:整型
参数单位:ms(毫秒)
取值范围:0 ~ 2147483647
默认值:30000(30s)
设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
enable_logicalrepl_xlog_prune
参数说明:设置是否开启逻辑复制槽强制失效功能。当GUC参数enable_logicalrepl_xlog_prune=on、max_size_for_xlog_retention为非零值时,如果max_size_for_xlog_retention大于0且当前逻辑复制槽导致保留日志的段数(每段日志大小为16MB)超过max_size_for_xlog_retention,或者max_size_for_xlog_retention小于0且磁盘使用率达到(-max_size_for_xlog_retention)/100,则该逻辑复制槽会强制失效,restart_lsn被置为7FFFFFFF/FFFFFFFF,该复制槽不阻塞xlog日志的回收。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示开启逻辑复制槽强制失效功能。
- off:表示关闭逻辑复制槽强制失效功能。
默认值:off
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:根据实际业务需要确认是否开启。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
enable_logical_replication_ddl
参数说明:设置逻辑解码是否支持DDL,是否反解析,是否生成日志。
参数类型:布尔型
参数单位:无
取值范围:
- on:逻辑复制可支持DDL,对DDL执行结果进行反解析,并生成DDL的WAL日志。
- off:不支持DDL,不反解析也不生成WAL日志。
默认值:on
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
enable_logical_replication_dictionary
参数说明:表示是否开启创建多版本字典表类型的逻辑复制槽。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示开启。
- off:表示关闭。
默认值:on
设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:该参数默认on,如果需要创建online catalog类型的逻辑复制槽时设置为off。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
当该参数开启时,字典类型的系统表基线化完成后才能创建逻辑复制槽,否则创建失败。
disable_logical_cache
参数说明:表示是否缓存解码元信息。
参数类型:布尔型
参数单位:无
取值范围:
- true:不缓存解码元信息。
- false:缓存解码元信息。
默认值:false
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:该参数默认false,如果需要关闭解码元信息缓存设置为true。
设置不当的风险与影响:设置为true,每次解码都需要构建元信息,影响解码性能。建议在构建元信息版本链无报错的情况下,不设置为true。
max_keep_log_seg
参数说明:流控参数,逻辑复制在DN本地会解析物理日志转换成逻辑日志,当未被解析的物理日志文件数量大于该参数时会触发限流。该参数可在PDB级别设置。
参数类型:整型
参数单位:无
取值范围:0 ~ 2147483647。此参数为0表示关闭限流功能。
默认值:0。在PDB场景内,若未设置该参数,则继承来自全局的设置。
设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。
设置建议:根据实际业务需求,判断是否需要进行流控。
设置不当的风险与影响:设置过大,流控一直不触发。
logical_replication_dictionary_retention_time
参数说明:GS_TXN_LSN_TIME以及数据字典相关系统表数据保留时间。
参数类型:整型
参数单位:d(天)
取值范围:[1, 3650]
默认值:365
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:根据实际业务需求进行设置。
设置不当的风险与影响:设置过小,会导致指定位点解码的可选区间过小;设置过大,会影响解码性能。
sqlapply_apply_writeset_maxsize
参数说明:在行集冲突检测方法中,控制全局哈希表存放历史修改行标识的数量。
参数类型:整型
参数单位:无
取值范围:-1~2147483647
- 设置为0,表示关闭行集冲突检测。
- 设置为-1,则表示数量不受限制。
默认值:10000
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:设置过大,会消耗过多的系统资源。
sqlapply_preserve_commit_order
参数说明:控制逻辑备机,是否按照远端主机事务的提交顺序进行回放提交。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示按照远端主机事务的提交顺序。
- off:表示不按照远端主机事务的提交顺序。
默认值:off
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
sqlapply_apply_worker_count
参数说明:逻辑回放线程的数量。
参数类型:整型
参数单位:无
取值范围:1~1024
默认值:4
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:在不同CPU和内存下,sqlapply_apply_worker_count的设置值可参考表1。
设置不当的风险与影响:设置过大,会消耗过多的系统资源;设置过小,回放效率会降低。
sqlapply_cache_memory_maxsize
参数说明:控制逻辑回放缓存可使用的内存总量。
参数类型:整型
参数单位:kB
取值范围:-1~2147483647。-1表示内存使用量不受限制。
默认值:102400
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:在不同CPU和内存下,sqlapply_cache_memory_maxsize的设置值可参考表1。
设置不当的风险与影响:设置过大,会消耗过多的系统资源;设置过小,回放效率会降低。
logical_replica_identity_force
参数说明:控制全局逻辑复制旧元组的记录级别。
参数类型:枚举
参数单位:无
取值范围:
- 'full'表示所有列都记录为副本标识。
- 'unique'表示副本标识为主键和唯一键。
- 'default'表示复制副本标识为默认选择(主键或无)。
- 'nothing'表示没有记录此关系的副本标识。
- ''表示此全局控制参数不生效。
默认值:''
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
如需将已设置为非默认值的logical_replica_identity_force重新设置成'',须使用将GUC参数恢复成默认值的方法。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
sqlapply_logical_decode_options
参数说明:逻辑回放的解码任务启动选项。选项包括:parallel-decode-num,parallel-queue-size,max-txn-in-memory,max-reorderbuffer-in-memory,exclude-users,skip-generated-columns,enable-ddl-decoding,only-local,decode-sequence。
参数类型:字符串
参数单位:无
取值范围:
- parallel-decode-num
取值范围:1~20的整型,默认值为2。
- parallel-queue-size
取值范围:2~1024的整型,且只能为2的幂次方,默认值为128。
- max-txn-in-memory
内存管控参数,单位为MB,单个事务占用内存大于该值即进行落盘。
取值范围:0~100的整型,默认值为0,即不开启此种管控。
- max-reorderbuffer-in-memory
内存管控参数,单位为GB,拼接-发送线程中正在拼接的事务总内存(包含缓存)大于该值则对当前解码事务进行落盘。
取值范围:0~100的整型,默认值为0,即不开启此种管控。
- exclude-users
取值范围:指定黑名单用户的名字,多个名字通过','分隔。
- skip-generated-columns
逻辑解码控制参数,用于跳过存储生成列的输出。对UPDATE和DELETE的旧元组无效,相应元组始终会输出存储生成列。
取值范围:boolean型,默认值为false。
- false:设为false时,输出存储生成列的解码结果。
- true:值为true时,不输出存储生成列的解码结果。
虚拟生成列不受此参数控制,DML的解码结果始终不会输出虚拟生成列。
- enable-ddl-decoding
取值范围:bool型,默认值为true。
- false:设为false时,不开启DDL语句的逻辑解码。
- true:设为true时,开启DDL语句的逻辑解码。
- only-local
取值范围:Boolean,默认值为true。
- false:设为false时,解码非本地日志和本地日志。
- true:设为true时,仅解码本地日志。
- decode-sequence
逻辑解码控制参数,用来指定是否输出sequence值的变更日志的解码结果。
取值范围:boolean型,默认值为true。
- false:设为false时,不输出sequence值的变更日志的解码结果。
- true:输出sequence值的变更日志的解码结果。
默认值:默认设置enable-ddl-decoding=true和decode-sequence=true。
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。该参数SIGHUP生效并不会影响已经启动的逻辑解码流程。
设置建议:建议根据业务需求进行设置。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
sql_apply_autorun
参数说明:逻辑备是否自启动逻辑回放。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示开启。
- off:表示关闭。
默认值:off
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:该参数默认为off,在滚动升级期间的备数据库需要设置为on。数据库滚动升级操作时逻辑备机不要关闭此参数。
设置不当的风险与影响:如果在滚动升级期间的备数据库设置为off,逻辑回放会停止,滚动升级会发生异常。
sqlapply_guard_mode
参数说明:逻辑备机的数据保护模式。
参数类型:枚举类型
参数单位:无
取值范围:
- guard_none:逻辑备不进行额外数据保护。
- guard_standby:逻辑备不允许修改主备同步的数据对象。
- guard_all:逻辑备只允许逻辑回放修改数据。
默认值:guard_all
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
logical_switch_time
参数说明:物理容灾数据库转为逻辑复制的转换超时时间。
参数类型:整型
参数单位:分钟
取值范围:0~60。其中0表示不设置超时时间。
默认值:10
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:若容灾备数据库和主数据库RTO或RPO较大(超过10分钟)按照默认时间执行物理转逻辑可能失败,需要修改该参数为当前容灾RTO或RPO值加10分钟或更多。物理转逻辑操作建议在业务低谷期执行。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
sqlapply_dumptxn_when
参数说明:逻辑回放转储事务的时机。
参数类型:枚举类型
参数单位:无
取值范围:
- any:逻辑回放总是转储事务的变更到文件。
- error:逻辑回放事务执行出错时转储事务的变更到文件。
- none:不转储事务的变更到文件。
默认值:error
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。