更新时间:2024-11-12 GMT+08:00
分享

逻辑复制

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。选项的详细说明,请参考《特性指南》的“逻辑复制 > 逻辑解码 > 逻辑解码选项”章节。

  • 该参数SIGHUP生效并不会影响已经启动的逻辑解码流程;后续逻辑解码启动将使用该参数设置作为其默认配置,如果解码任务启动命令中有相同配置项,则logical_decode_options_default

    对应选项的默认配置值不生效,按启动命令中的设定值进行配置。

  • logical_decode_options_default配置的exclude-users选项和逻辑解码启动的exclude-users选项存在差异,不允许指定多个黑名单用户。
  • logical_decode_options_default配置的decode-sequence仅支持设置为false。

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

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

设置不当的风险与影响:设置过大,会消耗过多的系统资源;设置过小,回放效率会降低。

表1 不同CPU和内存的参数设置参考

编号

CPU个数

内存(GB)

sqlapply_apply_worker_count

sqlapply_cache_memory_maxsize(kB)

备注

1

4

-

4

102400

-

2

8

-

16

102400

-

3

8

64

64

1024000

-

4

16

128

64

2048000

-

5

32

256

128

4096000

-

6

64

512

192

5120000

-

7

96

768

256

10240000

大于此硬件规格的系统均参考此参数设置值。

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

    指定并行解码的Decoder线程数量。

    取值范围: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

    逻辑解码控制参数,用于控制是否开启DDL语句的逻辑解码。

    取值范围: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中对应设置方法进行设置。

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

相关文档