云数据库 GAUSSDB-逻辑解码支持DDL:接口设计

时间:2024-11-01 17:07:49

接口设计

  • 新增控制参数
    1. 新增逻辑解码控制参数,用于控制DDL的反解析流程以及输出形式。可通过pg_recvlogical -o或者pg_logical_slot_peek_changes开启。
      • enable-ddl-decoding:默认false,不开启DDL语句的逻辑解码;值为true时,开启DDL语句的逻辑解码。
      • enable-ddl-json-format:默认false,传送TEXT格式的DDL反解析结果;值为true时,传送JSON格式的DDL反解析结果。
    2. 新增GUC参数
      • enable_logical_replication_ddl:默认为ON,ON状态下,逻辑复制可支持DDL,否则,不支持DDL。只有当ON状态下,才会对DDL执行结果进行反解析,并生成DDL的WAL日志。否则,不反解析也不生成WAL日志。

        enable_logical_replication_ddl的开关日志,以证明是否是用户修改了该参数导致逻辑解码不支持DDL。

  • 新增日志

    新增DDL日志xl_logical_ddl_message,其类型为RM_ LOG ICALDDLMSG_ID。其定义如下:

    名称

    类型

    意义

    db_id

    Oid

    数据库ID

    rel_id

    Oid

    表ID

    csn

    CommitSeqNo

    CS N快照

    cid

    CommandId

    Command ID

    tag_type

    NodeTag

    DDL类型

    message_size

    Size

    日志内容长度

    filter_message_size

    Size

    日志中白名单过滤信息长度

    message

    char *

    DDL内容

support.huaweicloud.com/fg-gaussdb-cent-v8/gaussdb-48-0043.html