云数据库 GaussDB-逻辑解码支持指定位点解码:规格约束

时间:2025-02-12 15:05:23

规格约束

  • 只支持对在线WAL日志的指定位点解码。用户需要根据不同业务每天产生的WAL日志数量,来调整 GaussDB 保留在线WAL日志文件数量的配置参数,以达到满足指定位点WAL日志需求的目的。
  • 逻辑解码真正的开始点是一致性点,一致性点具体位置和当时的并发执行事务实际情况相关,例如长事务等。一致性点及之后开启的事务所产生的数据修改才会被解码出来,用户需要确保要解码的事务开始于一致性点之后,为了防止漏解,建议在选择指定的逻辑解码位点时,尽量将其前移一段距离。
  • 安装带指定位点功能的版本时,初始化时会自动执行字典表的基线化,安装完成后管理员无需执行基线化函数即可使用指定位点功能;升级场景,从不支持指定位点版本升级到指定位点版本,需要管理员执行基线化系统函数后才能使用指定位点功能,且指定位点必须大于基线化完成时的lsn。
  • 如果用户设置的数据字典保留时长小于指定区间的WAL日志产生时长,会造成由于字典表数据缺失而导致解码异常的情况。逻辑解码数据字典的保留时长通过GUC参数(logical_replication_dictionary_retention_time)来设置。

    数据字典相关系统表元组满足如下回收条件才可被回收:

    1. 当前时间减去系统表元组数据的创建时间得到的值大于logical_replication_dictionary_retention_time。
    2. 系统表数据的csnmax不为0,且csnmax小于逻辑复制槽推进后的最小csn(即如下所示的slot_dictionary_type为dictionary table的元组中最小的dictionary_csn_min)。
      gaussdb=# select * from pg_get_replication_slots();slot_name |     plugin     | slot_type | datoid | active | xmin | catalog_xmin | restart_lsn | dummy_standby | confirmed_flush | confirmed_csn | dictionary_csn_min | slot_dictionary_type-----------+----------------+-----------+--------+--------+------+--------------+-------------+---------------+-----------------+---------------+--------------------+----------------------slot_lsn  | mppdb_decoding | logical   |  41313 | f      |      |              | 0/E34CDC0   | f             | 0/E34CE40       |               |               3011 | dictionary table(1 row)
support.huaweicloud.com/fg-gaussdb-cent-v8/gaussdb-48-0325.html