# 逻辑复制函数
![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
使用逻辑复制函数时，需要设置GUC参数wal_level为logical。具体配置请参考《开发指南》中"特性使用指导 \> 逻辑复制 \> 逻辑解码（非透明多写） \> 使用SQL函数接口进行逻辑解码"章节。
- pg_create_logical_replication_slot('slot_name', 'plugin_name', 'output_order') 描述：创建逻辑复制槽。
  参数说明：
  - slot_name 流复制槽名称。
    取值范围：字符串，仅支持小写字母、数字以及"_"，"?"，"-"，"."字符，且不支持"."或".."单独作为复制槽名称。
    
  
  - plugin_name 插件名称。
    取值范围：字符串类型，支持取值包括：
    - 通用插件：mppdb_decoding、sql_decoding。
    
    - 仅并行解码支持：parallel_binary_decoding、parallel_json_decoding、parallel_text_decoding。
      
  
  - output_order 复制槽解码结果输出顺序，该参数为可选参数。
    取值范围：0或1，在DN上默认值为0， 在CN上默认值为1。
    - 0：设为0时，复制槽解码结果按照事务的COMMIT LSN排序。此时复制槽的confirmed_csn为0，此复制槽称为LSN序复制槽。
    
    - 1：设为1时，复制槽解码结果按照事务的CSN排序。此时复制槽的confirmed_csn为非0值，此复制槽称为CSN序复制槽，此类复制槽的confirmed_flush值无意义。
     
  
  
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  - CSN序复制槽仅分布式强一致解码使用，非分布式强一致解码要求使用LSN序复制槽。
  
  - 创建复制槽时，如果output_order输入的数值为小数，会将其四舍五入为整数。
   
  返回值类型：name, text
  示例：
  ```
  gaussdb=# SELECT * FROM pg_create_logical_replication_slot('slot_lsn','mppdb_decoding',0);
   slotname | xlog_position
  ----------+---------------
   slot_lsn | 0/6D08B58
  (1 row)
  gaussdb=# SELECT * FROM pg_create_logical_replication_slot('slot_csn','mppdb_decoding',1);
   slotname | xlog_position
  ----------+---------------
   slot_csn | 0/59AD800
  (1 row)
  ```
  备注：第一个返回值表示slot_name，第二个返回值在LSN序复制槽和CSN序复制槽下有不同含义。对于LSN序复制槽，该值为复制槽的confirmed_flush，表示COMMIT LSN小于等于该值的事务之后不会被解码输出；对于CSN序复制槽，该值为复制槽的confirmed_csn，表示CSN小于等于该值的事务之后不会被解码输出。调用该函数的用户需要具有SYSADMIN权限或具有REPLICATION权限或继承了内置角色gs_role_replication的权限。此函数目前只支持在CN或主DN上调用。
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/caution_3.0-zh-cn.png)
  当该函数在CN上执行时，如果output_order值为1，会在所有CN和主DN上创建同名复制槽，如果某些DN上已存在同名复制槽，会在除当前CN节点外，其他不存在同名复制槽的CN和主DN节点上创建CSN序逻辑复制槽，同时报错复制槽已存在。因此需删除其他CN和主DN上已有的同名复制槽（如为LSN序复制槽则需在对应节点手动删除）再在CN上重新创建。如果在CN上创建复制槽时指定output_order为0，则不会在DN上创建复制槽。CN上创建的复制槽仅用于标识DN上存在相关复制槽。
  
- pg_create_physical_replication_slot('slot_name', 'isDummyStandby') 描述：创建新的物理复制槽。
  参数说明：
  - slot_name 流复制槽名称。
    取值范围：字符串，仅支持小写字母、数字以及"_"，"?"，"-"，"."字符，且不支持"."或".."单独作为复制槽名称。以gs_roach开头的复制槽名为内部保留槽名，只能由内部备份工具GaussRoach使用，执行时需要设置application_name='gs_roach'。
    
  
  
  
  - isDummyStandby 预留参数。
    类型：Boolean
    
  
  
  返回值类型：name，text
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  - 调用该函数的用户需要具有SYSADMIN权限或具有REPLICATION权限或继承了内置角色gs_role_replication的权限。
  
  - 由于该函数创建的物理复制槽没有restart_lsn，会被认为是无效槽，在做checkpoint时会被自动删除。
    
- pg_drop_replication_slot('slot_name') 描述：删除流复制槽。
  参数说明：
  - slot_name 流复制槽名称。
    取值范围：字符串，仅支持小写字母、数字以及"_"，"?"，"-"，"."字符，且不支持"."或".."单独作为复制槽名称。以gs_roach开头的复制槽名为内部保留槽名，只能由内部备份工具GaussRoach使用，执行时需要设置application_name='gs_roach'。
    
  
  
  返回值类型：void
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  - 调用该函数的用户需要具有SYSADMIN权限或具有REPLICATION权限或继承了内置角色gs_role_replication的权限。
  
  - 删除数据库时不会删除该库上的逻辑复制槽。该库上的逻辑复制槽需要手动删除，否则将会导致Xlog和系统表历史版本无法回收。
  
  - 在CN上删除逻辑复制槽时，若为LSN序逻辑复制槽，则仅删除当前节点复制槽，其他节点同名复制槽不受影响；否则只要其他节点有残留同名CSN序逻辑复制槽，执行删除时不会因为某些节点不存在复制槽而报错，同时所有节点的同名复制槽会被成功删除；如果任何节点均不存在该复制槽，则报错。
  
  - 如果当前CN节点残留LSN序逻辑复制槽，同时其他某些节点上残留同名CSN序逻辑复制槽，则在当前CN节点上执行删除复制槽操作仅会删除本地LSN序逻辑复制槽，待删除完成再次执行删除操作方可删除其他节点的同名复制槽。
    
- pg_logical_slot_peek_changes('slot_name', 'upto_lsn', upto_nchanges, 'options_name', 'options_value')
  描述：解码但不推进流复制槽（下次解码可以再次获取本次解出的数据）。
  参数说明：
  - slot_name 流复制槽名称。
    取值范围：字符串，仅支持小写字母、数字以及"_"，"?"，"-"，"."字符，且不支持"."或".."单独作为复制槽名称。
    
  
  - upto_lsn 在CSN序逻辑复制槽上代表日志的CSN，表示解码直到小于等于此CSN的事务日志解码完毕（可能会解码一个CSN大于指定CSN的事务）；在LSN序复制槽上代表日志的LSN，表示解码直到COMMIT LSN大于等于该LSN的第一个事务解码完毕。
    取值范围：字符串（代表十六进制格式表示的uint64，在正中间用'/'分隔，左右两边各为一个uint32，如某个uint32为0则显示0），如'1/2AAFC60'、'0/A060'或'3A/0'。为NULL时表示不对解码截止的日志位置做限制。
    
  
  - upto_nchanges 解码条数（包含begin和commit）。假设一共有三条事务，分别包含3、5、7条记录，如果upto_nchanges为4，那么会解码出前两个事务共8条记录。解码完第二条事务时发现解码条数记录大于等于upto_nchanges，会停止解码。
    取值范围：非负整数。
    ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
    upto_lsn和upto_nchanges中任一参数达到限制，解码都会结束。
    
  
  - options：此项为可选参数，由一系列options_name和options_value一一对应组成。
    - include-xids 解码出的data列是否包含xid信息。
      取值范围：bool型，默认值为true。
      - false：设为false时，解码出的data列不包含xid信息。
      
      - true：设为true时，解码出的data列包含xid信息。
       
    
    - skip-empty-xacts 解码时是否忽略空事务信息。
      取值范围：bool型，默认值为false。
      - false：设为false时，解码时不忽略空事务信息。
      
      - true：设为true时，解码时会忽略空事务信息。
       
    
    - include-timestamp 解码信息是否包含commit时间戳。
      取值范围：bool型，默认值为true。
      - false：设为false时，解码信息不包含commit时间戳。
      
      - true：设为true时，解码信息包含commit时间戳。
       
    
    - only-local 是否仅解码本地日志。
      取值范围：Boolean型，默认值为true。
      - false：设为false时，解码非本地日志和本地日志。
      
      - true：设为true时，仅解码本地日志。
       
    
    - force-binary 是否以二进制格式输出解码结果
      取值范围：Boolean型，默认值为false。
      - false：设为false时，以文本格式输出解码结果。
      
      - true：暂不支持设置。
       
    
    - white-table-list 白名单参数，包含需要进行解码的schema和表名。
      取值范围：包含白名单中表名的字符串，不同的表以','为分隔符进行隔离；使用'\*'来模糊匹配所有情况；schema名和表名间以'.'分割，不允许存在任意空白符。例：
      ```
      SELECT * FROM pg_logical_slot_peek_changes('slot1', NULL, 4096, 'white-table-list', 'public.t1,public.t2');
      ```
      
    
    - skip-xid-list 事务黑名单参数，包含需要跳过解码的事务xid。升级观察期不支持跳过事务。
      取值范围：3\~18446744073709551615（即uint64最大值）。包含事务xid的字符串，不同的事务以'/'为分隔符进行隔离；不允许存在任意空白符。例：
      ```
      SELECT * FROM pg_logical_slot_peek_changes('slot1', NULL, 4096, 'skip-xid-list', '1234/2345');
      ```
      
    
    - max-txn-in-memory 内存管控参数，单位为MB，单个事务占用内存大于该值即进行落盘。
      取值范围：0\~100的整型，默认值为0，即不开启此种管控。
      
    
    - max-reorderbuffer-in-memory 内存管控参数，单位为GB，拼接-发送线程中正在拼接的事务总内存（包含缓存）大于该值则对当前解码事务进行落盘。
      取值范围：0\~100的整型，默认值为0，即不开启此种管控。
      
    
    - desc-memory-limit 内存管控参数，单位为MB，逻辑解码任务维护的表元信息总内存大于该值时，触发淘汰机制清理部分表元信息。
      取值范围：10\~1048576的整型，默认值为200。
      
    
    - include-user 事务的BEGIN逻辑日志是否输出事务的用户名字。
      取值范围：Boolean型，默认值为false。
      - false：设为false时，事务的BEGIN逻辑日志不输出事务的用户名字。
      
      - true：设为true时，事务的BEGIN逻辑日志输出事务的用户名字。
       
    
    - exclude-userids 黑名单用户的OID参数。
      取值范围：指定黑名单用户的OID，多个OID通过','分隔，不校验用户OID是否存在。
      
    
    - exclude-users 黑名单用户的名字参数。
      取值范围：指定黑名单用户的名字，多个名字通过','分隔；通过dynamic-resolution设置是否动态解析识别用户名字。若解码报错用户不存在而中断，在确定日志产生时刻不存在对应的黑名单用户，可以通过配置dynamic-resolution成true或者从用户黑名单中删除报错用户名字来启动解码继续获取逻辑日志。
      
    
    - enable-ddl-decoding 逻辑解码控制参数，用于控制是否开启DDL语句的逻辑解码。
      取值范围：bool型，默认值为false。
      - false：设为false时，不开启DDL语句的逻辑解码。
      
      - true：设为true时，开启DDL语句的逻辑解码。
        
    
    - enable-ddl-json-format 逻辑解码控制参数，用于控制DDL的反解析流程以及输出形式。
      取值范围：bool型，默认值为false。
      - false：设为false时，传送TEXT格式的DDL反解析结果。
      
      - true：设为true时，传送JSON格式的DDL反解析结果。
        
    
    - skip-generated-columns： 逻辑解码控制参数，用于跳过存储生成列的输出。对UPDATE和DELETE的旧元组无效，相应元组始终会输出存储生成列。分布式版本暂不支持生成列语法，CN解码不支持配置此选项。
      取值范围：boolean型，默认值为false/off。
      - true/on：值为true/on时，不输出存储生成列的解码结果。
      
      - false/off：设为false/off时，输出存储生成列的解码结果。
      
      
      虚拟生成列不受此参数控制，DML的解码结果始终不会输出虚拟生成列。
      
    
    - dynamic-resolution 是否动态解析黑名单用户名字。
      取值范围：bool型，默认值为true。
      - false：设为false时，当解码观测到黑名单exclude-users中用户不存在时将会报错并退出逻辑解码。
      
      - true：设为true时，当解码观测到黑名单exclude-users中用户不存在时继续解码。
       
    
    - decode-sequence： 逻辑解码控制参数，用来指定是否输出sequence值的变更日志的解码结果。
      取值范围：boolean型，默认值为false。
      - true：暂不支持设置。
      
      - false：设为false时，不输出sequence值的变更日志的解码结果。
      
      
      ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
      解码选项decode-sequence当前仅允许设置为false，设置为true会在启动解码时报错退出。
      
    
    - enable-decode-position: 逻辑解码控制参数，该参数主要控制逻辑解码读取到解码位置日志时，是否发送该位置日志信息。
      取值范围：boolean型，默认值为false。
      - true：设为true时，输出位置日志。
      
      - false：设为false时，不输出位置日志。
       
    
    - enable-rowno: 逻辑解码控制参数，该参数用以控制解码包含rowid系统列的无主键表且REPLICA IDENTITY选项明确设置为FULL或者实际效果等同于FULL时，是否输出INSERT/UPDATE/DELETE操作中新元组和旧元组的rowno系统列。使用该选项输出rowno系统列，请确保目标库中存在名称和类型相同的列，否则回放逻辑解码日志可能失败。如有疑问，请联系华为技术工程师提供技术支持。
      取值范围：boolean型
      - true：输出rowno系统列。
      
      - false：不输出rowno系统列。
      
      
      默认值：false
      ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
      - 该选项对sql_decoding插件无效。
      
      - REPLICA IDENTITY选项的实际效果等同于FULL目前指的是Ustore表的NOTHING和DEFAULT选项，详情参见[REPLICA IDENTITY { DEFAULT \| USING INDEX index_name \| FULL \| NOTHING }](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0211.html#ZH-CN_TOPIC_0000002793787381__li19379654365)选项的说明。
        
     
  
  
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  其他配置选项可参考《开发指南》中"特性使用指导 \> 逻辑复制 \> 逻辑解码（非透明多写） \> 逻辑解码选项"章节。
  返回值类型：text、xid、text
  示例：
  ```
  gaussdb=# EXECUTE DIRECT ON (datanode1) 'SELECT * FROM pg_logical_slot_peek_changes(''slot_lsn'',NULL,4096,''skip-empty-xacts'',''on'')';
   location  |  xid  |                                                                                            data
  -----------+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   0/6D0B500 | 46914 | BEGIN 46914
   0/6D0B530 | 46914 | {"table_name":"public.t1","op_type":"INSERT","columns_name":["a","b"],"columns_type":["integer","integer"],"columns_val":["3","1"],"old_keys_name":[],"old_keys_type":[],"old_keys_val":[]}
   0/6D0B8B8 | 46914 | COMMIT 46914 (at 2023-02-22 17:29:31.090018+08) CSN 94034528
   0/6D0BB58 | 46915 | BEGIN 46915
   0/6D0BB88 | 46915 | {"table_name":"public.t1","op_type":"INSERT","columns_name":["a","b"],"columns_type":["integer","integer"],"columns_val":["3","2"],"old_keys_name":[],"old_keys_type":[],"old_keys_val":[]}
   0/6D0BF08 | 46915 | COMMIT 46915 (at 2023-02-22 17:31:30.672093+08) CSN 94034568
   0/6D0BF08 | 46916 | BEGIN 46916
   0/6D0BF38 | 46916 | {"table_name":"public.t1","op_type":"INSERT","columns_name":["a","b"],"columns_type":["integer","integer"],"columns_val":["3","3"],"old_keys_name":[],"old_keys_type":[],"old_keys_val":[]}
   0/6D0C218 | 46916 | COMMIT 46916 (at 2023-02-22 17:31:34.438319+08) CSN 94034570
  (9 rows)
  gaussdb=# EXECUTE DIRECT ON (datanode1) 'SELECT * FROM pg_logical_slot_peek_changes(''slot_csn'',NULL,4096,''skip-empty-xacts'',''on'')';
   location  |  xid  |                                                                                            data
  -----------+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   0/0       | 46914 | BEGIN CSN: 94034528
   0/0       | 46914 | {"table_name":"public.t1","op_type":"INSERT","columns_name":["a","b"],"columns_type":["integer","integer"],"columns_val":["3","1"],"old_keys_name":[],"old_keys_type":[],"old_keys_val":[]}
   0/59ADA60 | 46914 | COMMIT 46914 (at 2023-02-22 17:29:31.090018+08) CSN 94034528
   0/59ADA60 | 46915 | BEGIN CSN: 94034568
   0/59ADA60 | 46915 | {"table_name":"public.t1","op_type":"INSERT","columns_name":["a","b"],"columns_type":["integer","integer"],"columns_val":["3","2"],"old_keys_name":[],"old_keys_type":[],"old_keys_val":[]}
   0/59ADA88 | 46915 | COMMIT 46915 (at 2023-02-22 17:31:30.672093+08) CSN 94034568
   0/59ADA88 | 46916 | BEGIN CSN: 94034570
   0/59ADA88 | 46916 | {"table_name":"public.t1","op_type":"INSERT","columns_name":["a","b"],"columns_type":["integer","integer"],"columns_val":["3","3"],"old_keys_name":[],"old_keys_type":[],"old_keys_val":[]}
   0/59ADA8A | 46916 | COMMIT 46916 (at 2023-02-22 17:31:34.438319+08) CSN 94034570
  (9 rows)
  ```
  备注：上述函数示例中，datanode1为需要解码的DN节点名称，slot_lsn/slot_csn为逻辑复制槽名称。
  函数返回解码结果，每一条解码结果包含三列，对应上述返回值类型，分别表示LSN（LSN序复制槽）或CSN（CSN序复制槽）位置、xid和解码内容。其中location列代表CSN时，仅当解码到COMMIT日志时才会更新。调用该函数的用户需要具有SYSADMIN权限或具有REPLICATION权限或继承了内置角色gs_role_replication的权限。
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  在CN上，该函数不支持在CSN序复制槽（confirmed_csn值不为0）上执行。
  
- pg_logical_slot_get_changes('slot_name', 'upto_lsn', upto_nchanges, 'options_name', 'options_value') 描述：解码并推进流复制槽。
  参数说明：与pg_logical_slot_peek_changes一致，详细内容请参见[pg_logical_slot_peek_changes('slot_name', 'upto_lsn', upto_nchanges, 'options_name', 'options_value')]。
  备注：调用该函数的用户需要具有SYSADMIN权限或具有REPLICATION权限或继承了内置角色gs_role_replication的权限。
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  在CN上，该函数不支持在CSN序复制槽（confirmed_csn值不为0）上执行。此函数在备DN调用会同步推进主DN上对应的逻辑复制槽。在备DN上执行该函数，推进主DN对应复制槽时需占用主DN的一个walsender。由于逻辑解码功能会为每个逻辑复制槽预留walsender，因此正常场景执行该函数会正常推进主DN的逻辑复制槽，如果短时间连续执行该函数会导致通知主DN推进失败，且没有报错。
  
- pg_logical_slot_peek_binary_changes('slot_name', 'upto_lsn', upto_nchanges, 'options_name', 'options_value')
  描述：以二进制格式解码且不推进流复制槽（下次解码可以再次获取本次解出的数据）。
  参数说明：
  - slot_name 流复制槽名称。
    取值范围：字符串，仅支持小写字母、数字以及"_"，"?"，"-"，"."字符，且不支持"."或".."单独作为复制槽名称。
    
  
  - upto_lsn 在CSN序逻辑复制槽上代表日志的CSN，表示解码直到小于等于此CSN的事务日志解码完毕（可能会解码一个CSN大于指定CSN的事务）；在LSN序复制槽上代表日志的LSN，表示解码直到COMMIT LSN大于等于该LSN的第一个事务解码完毕。
    取值范围：字符串（代表十六进制格式表示的uint64，在正中间用'/'分隔，左右两边各为一个uint32，如某个uint32为0则显示0），如'1/2AAFC60'、'0/A060'或'3A/0'。为NULL时表示不对解码截止的日志位置做限制。
    
  
  - upto_nchanges 解码条数（包含begin和commit）。假设一共有三条事务，分别包含3、5、7条记录，如果upto_nchanges为4，那么会解码出前两个事务共8条记录。解码完第二条事务时发现解码条数记录大于等于upto_nchanges，会停止解码。
    取值范围：非负整数。
    ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
    upto_lsn和upto_nchanges中任一参数达到限制，解码都会结束。
    
  
  - options：此项为可选参数，由一系列options_name和options_value一一对应组成。
    - include-xids 解码出的data列是否包含xid信息。
      取值范围：Boolean型，默认值为true。
      - false：设为false时，解码出的data列不包含xid信息。
      
      - true：设为true时，解码出的data列包含xid信息。
       
    
    - skip-empty-xacts 解码时是否忽略空事务信息。
      取值范围：Boolean型，默认值为false。
      - false：设为false时，解码时不忽略空事务信息。
      
      - true：设为true时，解码时会忽略空事务信息。
       
    
    - include-timestamp 解码信息是否包含commit时间戳。
      取值范围：Boolean型，默认值为true。
      - false：设为false时，解码信息不包含commit时间戳。
      
      - true：设为true时，解码信息包含commit时间戳。
       
    
    - only-local 是否仅解码本地日志。
      取值范围：Boolean型，默认值为true。
      - false：设为false时，解码非本地日志和本地日志。
      
      - true：设为true时，仅解码本地日志。
       
    
    - force-binary 对此函数不生效。
      取值范围：Boolean型，均以二进制格式输出结果。
      
    
    - white-table-list 白名单参数，包含需要进行解码的Schema和表名。
      取值范围：包含白名单中表名的字符串，不同的表以','为分隔符进行隔离；使用'\*'来模糊匹配所有情况；schema名和表名间以'.'分割，不允许存在任意空白符。例：select \* from pg_logical_slot_peek_binary_changes('slot1', NULL, 4096, 'white-table-list', 'public.t1,public.t2');
      
    
    - skip-xid-list 事务黑名单参数，包含需要跳过解码的事务xid。升级观察期不支持跳过事务。
      取值范围：3\~18446744073709551615（即uint64最大值）。包含事务xid的字符串，不同的事务以'/'为分隔符进行隔离；不允许存在任意空白符。例：
      ```
      SELECT * FROM pg_logical_slot_peek_changes('slot1', NULL, 4096, 'skip-xid-list', '1234/2345');
      ```
      
    
    - max-txn-in-memory 内存管控参数，单位为MB，单个事务占用内存大于该值即进行落盘。
      取值范围：0\~100的整型，默认值为0，即不开启此种管控。
      
    
    - max-reorderbuffer-in-memory 内存管控参数，单位为GB，拼接-发送线程中正在拼接的事务总内存（包含缓存）大于该值则对当前解码事务进行落盘。
      取值范围：0\~100的整型，默认值为0，即不开启此种管控。
      
    
    - desc-memory-limit 内存管控参数，单位为MB，逻辑解码任务维护的表元信息总内存大于该值时，触发淘汰机制清理部分表元信息。
      取值范围：10\~1048576的整型，默认值为200。
      
    
    - include-user 事务的BEGIN逻辑日志是否输出事务的用户名字。
      取值范围：Boolean型，默认值为false。
      - false：设为false时，事务的BEGIN逻辑日志不输出事务的用户名字。
      
      - true：设为true时，事务的BEGIN逻辑日志输出事务的用户名字。
       
    
    - exclude-userids 黑名单用户的OID参数。
      取值范围：指定黑名单用户的OID，多个OID通过','分隔，不校验用户OID是否存在。
      
    
    - exclude-users 黑名单用户的名字参数。
      取值范围：指定黑名单用户的名字，多个名字通过逗号（,）分隔；通过dynamic-resolution设置是否动态解析识别用户名字。若解码报错用户不存在而中断，在确定日志产生时刻不存在对应的黑名单用户，可以通过配置dynamic-resolution为true或者从用户黑名单中删除报错用户名字来启动解码继续获取逻辑日志。
      
    
    - dynamic-resolution 是否动态解析黑名单用户名字。
      取值范围：Boolean型，默认值为true。
      - false：设为false时，当解码观测到黑名单exclude-users中用户不存在时将会报错并退出逻辑解码。
      
      - true：设为true时，当解码观测到黑名单exclude-users中用户不存在时继续解码。
       
    
    - decode-sequence： 逻辑解码控制参数，用来指定是否输出sequence值的变更日志的解码结果。
      取值范围：boolean型，默认值为false。
      - true：暂不支持设置。
      
      - false：设为false时，不输出sequence值的变更日志的解码结果。
      
      
      ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
      解码选项decode-sequence当前仅允许设置为false，设置为true会在启动解码时报错退出。
      
    
    - enable-decode-position: 逻辑解码控制参数，该参数主要控制逻辑解码读取到解码位置日志时，是否发送该位置日志信息。
      取值范围：boolean型，默认值为false。
      - true：设为true时，输出位置日志。
      
      - false：设为false时，不输出位置日志。
       
    
    - enable-rowno: 逻辑解码控制参数，该参数用以控制解码包含rowid系统列的无主键表且REPLICA IDENTITY选项明确设置为FULL或者实际效果等同于FULL时，是否输出INSERT/UPDATE/DELETE操作中新元组和旧元组的rowno系统列。使用该选项输出rowno系统列，请确保目标库中存在名称和类型相同的列，否则回放逻辑解码日志可能失败。如有疑问，请联系华为技术工程师提供技术支持。
      取值范围：boolean型
      - true：输出rowno系统列。
      
      - false：不输出rowno系统列。
      
      
      默认值：false
      ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
      - 该选项对sql_decoding插件无效。
      
      - REPLICA IDENTITY选项的实际效果等同于FULL目前指的是Ustore表的NOTHING和DEFAULT选项，详情参见[REPLICA IDENTITY { DEFAULT \| USING INDEX index_name \| FULL \| NOTHING }](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0211.html#ZH-CN_TOPIC_0000002793787381__li19379654365)选项的说明。
        
    
    
    ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
    某些配置选项在函数中仅能配置而不实际生效，可参考《开发指南》中"特性使用指导 \> 逻辑复制 \> 逻辑解码（非透明多写） \> 逻辑解码选项"章节。
    
  
  
  返回值类型：text、xid、bytea
  备注：函数返回解码结果，每一条解码结果包含三列，对应上述返回值类型，分别表示LSN位置、xid和二进制格式的解码内容。调用该函数的用户需要具有SYSADMIN权限或具有REPLICATION权限或继承了内置角色gs_role_replication的权限。
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  在CN上，该函数不支持在CSN序复制槽（confirmed_csn值不为0）上执行。
  
- pg_logical_slot_get_binary_changes('slot_name', 'upto_lsn', upto_nchanges, 'options_name', 'options_value') 描述：以二进制格式解码并推进流复制槽。
  参数说明：与pg_logical_slot_peek_binary_changes一致，详细内容请参见[pg_logical_slot_peek_bi...]。
  备注：调用该函数的用户需要具有SYSADMIN权限或具有REPLICATION权限或继承了内置角色gs_role_replication的权限。
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  在CN上，该函数不支持在CSN序复制槽（confirmed_csn值不为0）上执行。该函数不支持在备DN上执行。
  
- pg_replication_slot_advance ('slot_name', 'upto_lsn') 描述：直接推进流复制槽到指定位置（CSN序逻辑复制槽代表CSN，LSN序复制槽代表LSN），不输出解码结果。
  参数说明：
  - slot_name 流复制槽名称。
    取值范围：字符串，不支持除小写字母，数字,以及"_"，"?"，"-"，"."以外的字符，且不支持'.'或'..'单独作为复制槽名称。
    
  
  - upto_lsn 在CSN序逻辑复制槽上代表推进到的日志CSN位置，下次解码时只会输出比该CSN大的事务结果。如果输入的CSN比当前流复制槽记录的confirmed_csn还要小，则直接返回；如果输入的CSN比当前可获取的最新CSN要大，则推进到当前可获取的最新CSN；如果输入的CSN比当前最新物理日志CSN小，则推进到第一个比输入的CSN大的有效日志位置。
    在LSN序复制槽上代表推进到的日志LSN位置，下次解码时只会输出提交位置比该LSN大的事务结果。如果输入的LSN比当前流复制槽记录的推进位置还要小，则报错；如果输入的LSN比当前最新物理日志LSN还要大，则推进到当前最新物理日志LSN；如果输入的LSN比当前最新物理日志LSN小，则推进到第一个比输入的LSN大的有效日志位置。
    取值范围：字符串（代表十六进制格式表示的uint64，在正中间用'/'分隔，左右两边各为一个uint32，如某个uint32为0则显示0），如'1/2AAFC60'、'0/A060'或'3A/0'。为NULL时表示不对解码截止的日志位置做限制。
    
  
  
  返回值类型：name, text
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  - 返回值分别对应slot_name和实际推进到的位置（CSN或LSN）。调用该函数的用户需要具有SYSADMIN权限或具有REPLICATION权限或继承了内置角色gs_role_replication的权限。
  
  - 在CN上，该函数不支持在CSN序复制槽（confirmed_csn值不为0）上执行。该函数在备DN上支持对备份复制槽的执行。该函数在备DN上支持对逻辑复制槽执行，同步推进主DN上对应的逻辑复制槽。在备DN上执行该函数，推进主DN对应复制槽时需占用主DN的一个walsender。由于逻辑解码功能会为每个逻辑复制槽预留walsender，因此正常场景执行该函数会正常推进主DN的逻辑复制槽，如果短时间连续执行该函数会导致通知主DN推进失败，且没有报错。
    
- pg_get_replication_slots()
  描述：获取复制槽列表。
  表1返回值说明 
  | 字段名称                | 数据类型    | 说明                                                                                                                                                                                                                                         |
  |:---|:---|:---|
  | slot_name            | text       | 复制槽名称。                                                                                                                                                                                                                                      |
  | plugin               | text    | 逻辑复制槽对应的输出插件名称。                                                                                                                                                                                                                             |
  | slot_type            | text    | 复制槽的类型： - physical：物理复制槽。  - logical：逻辑复制槽。      |
  | datoid                | oid       | 复制槽所在的数据库OID。                                                                                                                                                                                                                               |
  | active                | boolean | 复制槽是否为激活状态： - f：未激活。  - t：已激活。                  |
  | xmin               | xid     | 数据库须为复制槽保留的最早事务的事务号。                                                                                                                                                                                                                         |
  | catalog_xmin         | xid      | 数据库须为逻辑复制槽保留的最早的涉及系统表的事务的事务号。                                                                                                                                                                                                               |
  | restart_lsn          | text     | 复制槽需要的最早Xlog的物理位置。                                                                                                                                                                                                                          |
  | dummy_standby        | boolean  | 预留参数。                                                                                                                                                                                                                                     |
  | confirmed_flush      | text    | 客户端确认接收到的日志位置（逻辑复制槽专用）。                                                                                                                                                                                                                     |
  | confirmed_csn         | xid     | 客户端确认接收到的日志中最后一个事务对应的CSN（逻辑复制槽专用）。                                                                                                                                                                                                          |
  | dictionary_csn_min    | xid       | 数据库须为逻辑复制槽保留的最早的涉及字典表的事务提交CSN。                                                                                                                                                                                                              |
  | slot_dictionary_type | text     | 逻辑复制槽的类型。                                                                                                                                                                                                                                   |
  | intra_cluster       | boolean   | 该复制槽是否无需在集群之间进行同步： - true：无需同步。  - false：需同步。   |
  | remote_stream       | boolean  | 该复制槽当前是否在解码远端日志流。                                                                                                                                                                                                                          |
     
  示例：
  ```
  在DN上执行查询：
  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 | intra_cluster | remote_stream
  -----------+----------------+-----------+--------+--------+------+--------------+-------------+---------------+-----------------+---------------+--------------------+----------------------
   dn_6002   |                | physical  |      0 | t      |      |              | 0/3622B528  | f             |                 |               |                    |                      |
    f           |     f
   dn_6003   |                | physical  |      0 | t      |      |              | 0/3622B528  | f             |                 |               |                    |                      |
    f           |     f
                  
   slot_lsn  | mppdb_decoding | logical   | 131072 | f      |      |        66658 | 0/36252350  | f             | 0/362523D0      |               |                    |                      |
    f           |     f
   slot_test | mppdb_decoding | logical   | 131072 | f      |      |        66658 | 0/36251718  | f             |                 |      10025527 |                    |                      |
    f           |     f
  (4 rows)
  在CN上执行查询：
  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 |
  intra_cluster | remote_stream
  -----------+----------------+-----------+--------+--------+------+--------------+-------------+---------------+-----------------+---------------+--------------------+----------------------
   slot_test | mppdb_decoding | logical   | 139264 | f      |      |              |             | f             |                 |               |                    |                      |
    f           |     f      
  (1 row)
  ```
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
  在DN上执行查询，LSN序逻辑复制槽的confirmed_csn查询结果为空，CSN序逻辑复制槽的confirmed_flush查询结果为空；在CN上执行查询，CSN序逻辑复制槽的catalog_xmin、restart_lsn、confirmed_flush和confirmed_csn均不予显示，查询结果为空。
  
- pg_logical_get_area_changes('start_lsn', 'upto_lsn', upto_nchanges, 'decoding_plugin', 'xlog_path', 'options_name', 'options_value') 描述：指定lsn区间进行解码，或者指定Xlog文件进行解码。
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  约束条件如下：
  - 当前网络和硬件环境正常。
  
  - 单条元组大小建议不超过500MB，500MB\~1GB之间会报错。
  
  - 不支持数据页复制这种不落Xlog的日志解码。
  
  - 调用接口时，要求日志级别wal_level=logical，且只有在wal_level=logical期间产生的日志文件才能被解析。如果使用的Xlog文件为非logical级别，则报错不解码。
  
  - Xlog文件只能被完全同构的dn的某个副本解析，且数据库没有发生DDL操作和VACUUM FULL，以确保可以找到数据对应的元信息。
  
  - 需注意一次不要读入过多Xlog文件，在指定范围解码不指定文件解码时，推荐指定一次一个Xlog文件的大小。一般情况下，一个Xlog文件解码过程中占用内存约为该Xlog文件大小的2\~3倍。
  
  - 不支持VACUUM FULL之前的日志解码。
  
  - 不能解码扩容前的Xlog文件。
  
  - enable-ddl不打开时：不支持toast类型、clob类型和blob类型的字段解码。当enable-ddl打开时：支持相关类型的解码。
  
  - 此解码方式为根据Xlog文本记录数据进行解码，将可解码内容解码出来，不基于事务进行解码。因此不在此Xlog里的数据无法解码。若相关Xlog日志缺失，缺失日志也无法解码。
  
  - enable-ddl不打开时：从解码点开始，如果未指定解码文件，会先检测从解码开始点到最新redo值之间是否发生ddl，如果发生ddl则全部不解码；如果指定解码文件，会同时检测解码文件的开始点到文件最后可读内容之间，以及数据目录下Xlog开始点到最新redo值之间是否发生ddl，检测到一条ddl则对所有表都不解码。
  
  - enable-ddl不打开时：不支持toast类型、clob类型和blob类型的字段解码。当enable-ddl打开时：支持相关类型的解码。
  
  - enable-ddl打开时：支持区间含有DDL的解码，并且可以解码输出DDL语句，输出DDL语句范围请参见《开发指南》中"特性使用指导 \> 逻辑复制 \> 逻辑解码（非透明多写） \> 逻辑解码支持DDL"章节。
  
  - 为解析某个表的UPDATE和DELETE语句，需为此表配置REPLICA IDENTITY属性，在此表无主键时需要配置为FULL，具体配置方式请参见[ALTER TABLE](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0211.html)章节中"REPLICA IDENTITY { DEFAULT \| USING INDEX index_name \| FULL \| NOTHING }"字段。
  
  - M兼容模式下，float4类型的解码数据值会以实际存储值输出，行为同SQL查询存在显示上的差异。
   
  备注：打开三权分立时，只有数据库初始用户可以调用；关闭三权分立时，需要具备系统管理员权限。
  参数说明：
  - start_lsn 指定开始解码的lsn。
    取值范围：字符串（LSN，格式为xlogid/xrecoff），如'1/2AAFC60'。为NULL时表示不对解码起始的日志位置做限制。
    
  
  - upto_lsn 指定解码结束的lsn。
    取值范围：字符串（LSN，格式为xlogid/xrecoff），如'1/2AAFC60'。为NULL时表示不对解码截止的日志位置做限制。
    
  
  - upto_nchanges 解码条数（包含begin和commit）。假设一共有三条事务，分别包含3、5、7条记录，如果upto_nchanges为4，那么会解码出前两个事务共8条记录。解码完第二条事务时发现解码条数记录大于等于upto_nchanges，会停止解码。
    取值范围：非负整数。
    ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
    LSN和upto_nchanges中任一参数达到限制，解码都会结束。
    
  
  - decoding_plugin
  
  
  解码插件，指定解码内容输出格式的so插件。
  取值范围：提供mppdb_decoding和sql_decoding两个解码插件。
  - xlog_path
  
  
  解码插件，指定解码文件的Xlog绝对路径。
  取值范围：NULL 或者 Xlog文件绝对路径的字符串。
  - options：此项为可选参数，由一系列options_name和options_value一一对应组成，可以缺省。
    - include-xids 解码出的data列是否包含xid信息。
      取值范围：bool型，默认值为true。
      false：设为false时，解码出的data列不包含xid信息。
      true：设为true时，解码出的data列包含xid信息。
      
    
    
    
    - include-timestamp 解码信息是否包含commit时间戳。
      取值范围：bool型，默认值为true。
      false：设为false时，解码信息不包含commit时间戳。
      true：设为true时，解码信息包含commit时间戳。
      
    
    
    
    - only-local 是否仅解码本地日志。
      取值范围：Boolean型，默认值为true。
      false：设为false时，解码非本地日志和本地日志。
      true：设为true时，仅解码本地日志。
      
    
    
    
    - force-binary 是否以二进制格式输出解码结果
      取值范围：Boolean型，默认值为false。
      false：设为false时，以文本格式输出解码结果。
      true：暂不支持设置。
      
    
    
    
    - white-table-list 白名单参数，包含需要进行解码的Schema和表名。取值范围：包含白名单中表名的字符串，不同的表以','为分隔符进行隔离；使用'\*'来模糊匹配所有情况；Schema名和表名间以'.'分割，不允许存在任意空白符。
      
    
    - white-database-list 白名单参数，包含需要进行解码的database名。取值范围：包含白名单中database名的字符串，不同的database名以','为分隔符进行隔离；不允许存在任意空白符。如果不设置white-database-list时，只解码当前连接的database Xlog日志；如果设置white-database-list时，只解码white-database-list里的database Xlog日志。如果是对系统库解码时，也支持对系统库中普通表的数据找回。
      
    
    - enable-ddl 支持含有DDL语法的解码。从起始位置到当前最新日志之间，如果出现DDL语法，不影响功能使用。取值范围：0或1。
      设置为1：打开状态。该函数支持含有DDL语法的解码。
      设置为0：默认关闭状态。该函数不支持含有DDL语法的解码，如果检测到DDL语句，直接退出。
      若表结构发生过删除列操作，enable-ddl在打开状态时，解码数据的列名会被UNDEFINED占位符替代。
      
    
    - data-limit 解码输出数据量。单位：KB。
      取值范围：大于等于0的整数。默认值0，表示不限制解码结果大小。
      该函数入参data-limit与GUC中data-limit配合使用，解码超过data-limit大小结束。
      规则：
      1. GUC中data-limit设置为0，函数解码data-limit不设置或者设置为0，解码结果无上限。
      
      2. GUC中data-limit不设置，函数解码data-limit设置为0，解码结果上限为10GB。
      
      3. GUC中data-limit设置，函数解码data-limit不设置或者设置为0，解码结果上限为GUC中的data-limit。
      
      4. GUC中data-limit和函数data-limit同时设置，取两者较小值作为解码结果上限。
       
    
    - xlog_dir： 支持归档日志文件夹解码，且文件夹名称与WAL日志文件前8位同名。当且仅当enable-ddl = 1，输入的start_lsn 和 upto_lsn 为有效区间，可以进行解码。取值范围：文件夹的全路径。
      具体可参考《开发指南》中"特性使用指导 \> 逻辑复制 \> 逻辑解码（非透明多写） \> 逻辑解码数据找回功能"章节。
      ```
      gaussdb=# SELECT * FROM pg_logical_get_area_changes('1/F9FC24C8', '1/FA67B2A0', NULL, 'sql_decoding', NULL ,'enable-ddl','1','xlog_dir','/base/username/xlog_dir/00000000');
      ```
      
    
    - decode-sequence： 逻辑解码控制参数，用来指定是否输出sequence值的变更日志的解码结果。
      取值范围：boolean型，默认值为false。
      - true：暂不支持设置。
      
      - false：设为false时，不输出sequence值的变更日志的解码结果。
      
      
      ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
      解码选项decode-sequence当前仅允许设置为false，设置为true会在启动解码时报错。
      
    
    - enable-rowno: 逻辑解码控制参数，该参数用以控制解码包含rowid系统列的无主键表且REPLICA IDENTITY选项明确设置为FULL或者实际效果等同于FULL时，是否输出INSERT/UPDATE/DELETE操作中新元组和旧元组的rowno系统列。使用该选项输出rowno系统列，请确保目标库中存在名称和类型相同的列，否则回放逻辑解码日志可能失败。如有疑问，请联系华为技术工程师提供技术支持。
      取值范围：boolean型
      - true：输出rowno系统列。
      
      - false：不输出rowno系统列。
      
      
      默认值：false
      ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
      - 该选项对sql_decoding插件无效。
      
      - REPLICA IDENTITY选项的实际效果等同于FULL目前指的是Ustore表的NOTHING和DEFAULT选项，详情参见[REPLICA IDENTITY { DEFAULT \| USING INDEX index_name \| FULL \| NOTHING }](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0211.html#ZH-CN_TOPIC_0000002793787381__li19379654365)选项的说明。
        
     
  
  
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  pg_logical_get_area_changes只对以上参数生效。其余参数max-txn-in-memory、include-user、exclude-userids、exclude-users、dynamic-resolution等（详见pg_logical_slot_peek_changes）不生效。
  返回值类型：text、xid、text
  示例：
  ```
  -在CN上执行DML操作，在DN上可以查询出当前DN上执行的DML：
  gaussdb=# SELECT * FROM pg_logical_get_area_changes('0/502E418', NULL, NULL, 'sql_decoding', NULL);
   location  |  xid  |                                  data
  -----------+-------+------------------------------------------------------------------------
   0/502E448 | 17365 | insert into public.t1 values (1, 1);
   0/502E5A0 | 17365 | COMMIT 17365 (at 2023-11-01 11:28:43.92526+08) 2010016
   0/502E5D0 | 17366 | delete from public.t1 where a = 1;insert into public.t1 values (1, 2);
   0/502E6D8 | 17366 | COMMIT 17366 (at 2023-11-01 11:28:45.889283+08) 2010017
   0/502E7B8 | 17367 | delete from public.t1 where a = 1;
   0/502E8B0 | 17367 | COMMIT 17367 (at 2023-11-01 11:28:48.301307+08) 2010018
  (6 rows)
  ```
  备注：函数返回解码结果，每一条解码结果包含三列，对应上述返回值类型，分别表示LSN位置、xid和解码内容。
  
- gs_get_parallel_decode_status() 描述：监控各个解码线程的读取日志队列和解码结果队列的长度，以便定位并行解码性能瓶颈。
  返回值类型：text、int、text、text、text、int64、int64、TimestampTz
  示例：
  ```
  gaussdb=# SELECT * FROM gs_get_parallel_decode_status();
   slot_name | parallel_decode_num | read_change_queue_length  | decode_change_queue_length | reader_lsn | working_txn_cnt | working_txn_memory |      decoded_time
  -----------+---------------------+---------------------------+----------------------------+------------+-----------------+--------------------+------------------------
   slot1     |                   2 | queue0: 1005, queue1: 320 | queue0: 63, queue1: 748    | 0/1DCE2578 |              42 |          192927504 | 2023-01-10 11:18:22+08
  (1 row)
  ```
  备注：返回值的slot_name代表复制槽名，parallel_decode_num代表该复制槽的并行解码线程数，read_change_queue_length列出了每个解码线程读取日志队列的当前长度，decode_change_queue_length列出了每个解码线程解码结果队列的当前长度，reader_lsn表示当前reader线程读取的日志位置，working_txn_cnt表示当前拼接-发送线程中正在拼接的事务个数，working_txn_memory代表拼接-发送线程中拼接事务占用总内存（单位字节），decoded_time代表该复制槽最新解码到的WAL日志时间。
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
  decoded_time时间来自检查点日志和事务提交日志，存在一定误差。如果没有解码到任何前述包含时间的日志，则显示"2000-01-01 08:00:00+08"(依照数据库设置的时区而定)。
  
- gs_get_slot_decoded_wal_time(slot_name) 描述：查看某个复制槽最新解码的WAL日志时间。
  参数说明：
  - slot_name： 要查询的复制槽名称。
    取值范围：字符串，不支持除字母、数字以及"_"，"?"，"-"，"."以外的字符。
    
  
  
  示例：
  ```
  gaussdb=# SELECT * FROM gs_get_slot_decoded_wal_time('replication_slot');
   gs_get_slot_decoded_wal_time
  ------------------------------
   2023-01-10 11:25:22+08
  (1 row)
  ```
  备注：返回一列值代表该复制槽最新解码到的WAL日志时间。
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
  - 返回的时间来自检查点日志和事务提交日志，存在一定误差。如果没有解码到任何前述包含时间的日志，则显示"2000-01-01 08:00:00+08"(依照数据库设置的时区而定)。查询一个当前不存在的逻辑复制槽的最新解码的WAL日志时间时，返回NULL，在gsql中NULL显示和设置有关，可以使用\\pset null 'null'设置。
  
  - 不支持串行解码使用。
    
- gs_logical_parallel_decode_status('slot_name') 描述：获取并行逻辑解码中活跃复制槽的解码统计信息，包含29行指标。
  指标定义如下：
  ```
  Record - (stat_id int, stat_name TEXT, value TEXT)
  ```
  表2指标含义 
  | 指标名称                        | 说明                                                                                                            |
  |:---|:---|
  | slot_name                    | 逻辑解码任务复制槽名称。                                                                                                   |
  | reader_lsn                    | 逻辑解码日志位置。                                                                                                       |
  | wal_read_total_time          | 日志模块加载耗时，单位：微秒。                                                                                                |
  | wal_wait_total_time         | 日志模块等待耗时，单位：微秒。                                                                                                 |
  | parser_total_time           | reader线程处理耗时，单位：微秒。                                                                                          |
  | decoder_total_time            | 各decoder线程处理耗时总值，单位：微秒。                                                                                        |
  | sender_total_time            | sender线程处理耗时，单位：微秒。                                                                                              |
  | net_send_total_time          | 网络发送逻辑日志耗时，单位：微秒。                                                                                               |
  | net_wait_total_time          | 网络等待发送逻辑日志耗时，单位：微秒。                                                                                            |
  | net_send_total_bytes          | 网络发送逻辑日志字节数，单位：byte。                                                                                             |
  | transaction_count           | 事务数量。                                                                                                           |
  | big_transaction_count       | 大事务数量。                                                                                                       |
  | max_transaction_tuples       | 事务操作元组的最大数量。                                                                                                  |
  | sent_transaction_count       | 发送事务数量（本库）。                                                                                                    |
  | spill_disk_transaction_count | 落盘事务数量。                                                                                                       |
  | spill_disk_bytes            | 累计落盘字节数量，单位：byte。                                                                                                |
  | spill_disk_count            | 落盘次数。                                                                                                        |
  | input_queue_full_count      | 各decode线程输入队列FULL次数总数。                                                                                          |
  | output_queue_full_count       | 各decode线程输出队列FULL次数总数。                                                                                         |
  | dml_count                    | 各decode线程解码WAL日志中DML数量（本库）总数。                                                                                |
  | dml_filtered_count           | 各decode线程解码过滤WAL日志中DML数量（本库）总数。                                                                                |
  | toast_count                 | 涉及TOAST表修改行数。                                                                                                   |
  | candidate_catalog_xmin      | 当前逻辑复制槽catalog_xmin候选点。                                                                                        |
  | candidate_xmin_lsn            | LSN序逻辑复制槽推进catalog_xmin所需要的日志确认接收点。                                                                            |
  | candidate_restart_valid       | LSN序逻辑复制槽推进restart_lsn所需要的日志确认接收点。                                                                             |
  | candidate_restart_lsn       | 当前逻辑复制槽restart_lsn候选点。                                                                                          |
  | candidate_xmin_csn           | CSN序逻辑复制槽推进catalog_xmin所需要的日志确认接收点。                                                                             |
  | candidate_restart_csn        | CSN序逻辑复制槽推进restart_lsn所需要的日志确认接收点。                                                                            |
  | candidate_csn_min             | 当前逻辑复制槽dictionary_csn_min（参考函数[pg_get_replication_slot...])的候选点。 |
     
  参数说明：
  - slot_name 流复制槽名称。
    取值范围：字符串，仅支持小写字母、数字以及"_"，"?"，"-"，"."字符，且不支持"."或".."单独作为复制槽名称。
    
  
  
  返回值类型：int、text、text
  示例：
  ```
  gaussdb=# SELECT * FROM gs_logical_parallel_decode_status('replication_slot');
   stat_id |          stat_name           |        value
  ---------+------------------------------+----------------------
         1 | slot_name                    | replication_slot_lsn
         2 | reader_lsn                   | 0/1E249228
         3 | wal_read_total_time          | 4769541
         4 | wal_wait_total_time          | 4754879
         5 | parser_total_time            | 12727
         6 | decoder_total_time           | 215633
         7 | sender_total_time            | 41707
         8 | net_send_total_time          | 28435
         9 | net_wait_total_time          | 11918
        10 | net_send_total_bytes         | 931076
        11 | transaction_count            | 19
        12 | big_transaction_count        | 1
        13 | max_transaction_tuples       | 10000
        14 | sent_transaction_count       | 19
        15 | spill_disk_transaction_count | 0
        16 | spill_disk_bytes             | 0
        17 | spill_disk_count             | 0
        18 | input_queue_full_count       | 226
        19 | output_queue_full_count      | 13
        20 | dml_count                    | 10000
        21 | dml_filtered_count           | 0
        22 | toast_count                  | 0
        23 | candidate_catalog_xmin       | 83576
        24 | candidate_xmin_lsn           | 0/1E0992A0
        25 | candidate_restart_valid      | 0/1E0992A0
        26 | candidate_restart_lsn        | 0/1E0992A0
        27 | candidate_xmin_csn           | 0
        28 | candidate_restart_csn        | 0
        29 | candidate_csn_min            | 17157
  (29 rows)
  ```
  备注：按照指标定义，指标应该满足下列约束关系：
  wal_read_total_time \>= wal_wait_total_time;
  transaction_count \>= big_transaction_count;
  transaction_count \>= sent_transaction_count;
  transaction_count \>= spill_disk_transaction_count;
  dml_count \>= dml_filtered_count;
  dml_count \>= toast_count;
  如果spill_transaction_count == 0，那么 spill_disk_bytes == 0；
  但由于严格保证需要频繁加锁解锁，将对性能造成较大影响，故上面约束关系在多线程情况下可能不满足。
  transaction_count 统计的是所有库的事务数量。
  sent_transaction_count统计的是本库的发送事务数量，因为非本库事务将不会被发送。
  当传入不存在的slot_name时，函数不报错，返回值为空。
  
- gs_logical_parallel_decode_reset_status('slot_name') 描述：重置gs_logical_parallel_decode_status('slot_name')中的指标。
  参数说明：
  - slot_name 流复制槽名称。
    取值范围：字符串，仅支持小写字母、数字以及"_"，"?"，"-"，"."字符，且不支持"."或".."单独作为复制槽名称。
    
  
  
  返回值类型：text
  示例：
  ```
  gaussdb=# SELECT * FROM gs_logical_parallel_decode_reset_status('replication_slot');
   gs_logical_parallel_decode_reset_status
  -----------------------------------------
   OK
  (1 row)
  gaussdb=# SELECT * FROM gs_logical_parallel_decode_status('replication_slot');
   stat_id |          stat_name           |        value
  ---------+------------------------------+----------------------
         1 | slot_name                    | replication_slot_lsn
         2 | reader_lsn                   | 0/1E2497F0
         3 | wal_read_total_time          | 0
         4 | wal_wait_total_time          | 0
         5 | parser_total_time            | 0
         6 | decoder_total_time           | 0
         7 | sender_total_time            | 0
         8 | net_send_total_time          | 0
         9 | net_wait_total_time          | 0
        10 | net_send_total_bytes         | 0
        11 | transaction_count            | 0
        12 | big_transaction_count        | 0
        13 | max_transaction_tuples       | 0
        14 | sent_transaction_count       | 0
        15 | spill_disk_transaction_count | 0
        16 | spill_disk_bytes             | 0
        17 | spill_disk_count             | 0
        18 | input_queue_full_count       | 0
        19 | output_queue_full_count      | 0
        20 | dml_count                    | 0
        21 | dml_filtered_count           | 0
        22 | toast_count                  | 0
        23 | candidate_catalog_xmin       | 83594
        24 | candidate_xmin_lsn           | 0/1E249528
        25 | candidate_restart_valid      | 0/1E249528
        26 | candidate_restart_lsn        | 0/1E249528
        27 | candidate_xmin_csn           | 0
        28 | candidate_restart_csn        | 0
        29 | candidate_csn_min            | 17176
  (29 rows)
  ```
  备注：返回值为执行结果，传入不存在的slot_name时，函数不报错，返回值为invalid slot name。
  不允许对正在进行observe的复制槽进行reset操作，异常信息按优先级如下：
  1. slot_name为空，报错，显示：ERROR: inputString should not be NULL。
  
  2. slot_name不为空，但不存在，不报错，显示：invalid slot name。
  
  3. slot_name不为空，但当前slot_name对应的复制槽正在被采样（observing)，不报错，显示：can't reset during observing! use gs_logical_decode_stop_observe to stop。
    
- gs_logical_decode_start_observe('slot_name', window, interval) 描述：开启逻辑复制性能指标采样。分布式需要在DN上执行。
  参数说明：
  - slot_name 流复制槽名称。
    取值范围：字符串，仅支持小写字母、数字以及"_"，"?"，"-"，"."字符，且不支持"."或".."单独作为复制槽名称。
    
  
  - window 指定采样窗口大小
    取值范围：整数类型，最小2，最大1024,收集最近interval\*window时间内采样数据。
    
  
  - interval
    性能监控的间隔，时间间隔类型，秒级。
    取值范围：时间间隔类型，最小1s，最大60s，收集最近interval\*window时间内采样数据。
    返回值类型：text
    
  
  
  备注：返回值为执行结果，传入不存在的slot_name时，函数不报错，返回值为invalid slot name。
  不允许对已经开启observe的复制槽进行开启observe操作，异常信息按优先级如下：
  1. slot_name为空，报错，显示：ERROR: inputString should not be NULL。
  
  2. slot_name不为空，但不存在，不报错，显示：invalid slot name。
  
  3. 若window小于2，则显示：window has to be \>= 2。
  
  4. 若window大于1024，则显示：window has to be \<= 1024。
  
  5. 若interval小于1s，则显示：sample interval has to be \>= 1s。
  
  6. 若interval大于60s，则显示：sample interval has to be \<= 60s。
  
  7. slot_name不为空，但当前slot_name对应的复制槽已开启observe，不报错，显示：observe has started!
    
- gs_logical_decode_stop_observe('slot_name') 描述：停止逻辑复制性能指标采样。分布式需要在DN上执行。
  参数说明：
  - slot_name 流复制槽名称。
    取值范围：字符串，仅支持小写字母、数字以及"_"，"?"，"-"，"."字符，且不支持"."或".."单独作为复制槽名称。
    
  
  - 返回值类型：text
    
  
  
  备注：返回值为执行结果，传入不存在的slot_name时，函数不报错，返回值为invalid slot name。
  不允许对已经停止observe的复制槽进行停止observe操作，异常信息按优先级如下：
  1. slot_name为空，报错，显示：ERROR: inputString should not be NULL。
  
  2. slot_name不为空，但不存在，不报错，显示：invalid slot name。
  
  3. slot_name不为空，但当前slot_name对应的复制槽已停止observe，不报错，显示：observe not started!
    
- gs_logical_decode_observe_data('slot_name') 描述：展示逻辑复制性能指标采样原始数据。分布式需要在DN上执行。
  表3指标含义 
  | 指标名称                     | 说明                    |
  |:---|:---|
  | slot_name               | 逻辑解码任务复制槽名称。            |
  | sample_time              | 性能指标采样时间，单位：微秒。         |
  | reader_lsn               | 逻辑解码日志位置。               |
  | wal_read_total_time       | 日志模块加载耗时，单位：微秒。          |
  | wal_wait_total_time     | 日志模块等待耗时，单位：微秒。          |
  | parser_total_time        | reader线程处理耗时，单位：微秒。       |
  | decoder_total_time      | 各decoder线程处理耗时总值，单位：微秒。 |
  | sender_total_time          | sender线程处理耗时，单位：微秒。    |
  | net_send_total_time      | 网络发送逻辑日志耗时，单位：微秒。       |
  | net_send_total_bytes    | 网络发送逻辑日志字节数，单位：byte。  |
  | transaction_count       | 事务数量。                  |
  | big_transaction_count    | 大事务数量。                  |
  | sent_transaction_count   | 发送事务数量（本数据库）。           |
  | spill_transaction_count | 落盘事务数量。                  |
  | spill_disk_bytes         | 累计落盘字节数量，单位：byte。       |
     
  参数说明：
  - slot_name 流复制槽名称。
    取值范围：字符串，仅支持小写字母、数字以及"_"，"?"，"-"，"."字符，且不支持"."或".."单独作为复制槽名称。
    
  
  - 返回值类型：setof record
    
  
  
  示例：
  ```
  gaussdb=# SELECT * FROM gs_logical_decode_observe_data('replication_slot');
   slot_name |          sample_time          | reader_lsn | wal_read_total_time | wal_wait_total_time | parser_total_time | decoder_total_time | sender_total_time | net_send_total_time | net_send_total_bytes | transaction_count | big_
  transaction_count | sent_transaction_count | spill_transaction_count | spill_disk_bytes 
  -----------+-------------------------------+------------+---------------------+---------------------+-------------------+--------------------+-------------------+---------------------+----------------------+-------------------+-----
  ------------------+------------------------+-------------------------+------------------
   repl      | 2023-01-12 20:09:40.416798+08 |   49447976 |           776846657 |           776846244 |                65 | {46,11,11,6}       |                56 |                   0 |                    0 |                 0 |     
                  0 |                      0 |                       0 |                0
   repl      | 2023-01-12 20:09:45.416849+08 |   49447976 |           776846657 |           776846244 |                65 | {46,11,11,6}       |                56 |                   0 |                    0 |                 0 |     
                  0 |                      0 |                       0 |                0
   repl      | 2023-01-12 20:09:50.417006+08 |   49447976 |           776846657 |           776846244 |                65 | {46,11,11,6}       |                56 |                   0 |                    0 |                 0 |     
                  0 |                      0 |                       0 |                0
   repl      | 2023-01-12 20:09:55.417057+08 |   49447976 |           776846657 |           776846244 |                65 | {46,11,11,6}       |                56 |                   0 |                    0 |                 0 |     
                  0 |                      0 |                       0 |                0
   repl      | 2023-01-12 20:10:00.417115+08 |   49447976 |           776846657 |           776846244 |                65 | {46,11,11,6}       |                56 |                   0 |                    0 |                 0 |     
                  0 |                      0 |                       0 |                0
   repl      | 2023-01-12 20:10:05.417165+08 |   49447976 |           776846657 |           776846244 |                65 | {46,11,11,6}       |                56 |                   0 |                    0 |                 0 |     
                  0 |                      0 |                       0 |                0
   repl      | 2023-01-12 20:10:10.417217+08 |   49447976 |           776846657 |           776846244 |                65 | {46,11,11,6}       |                56 |                   0 |                    0 |                 0 |     
                  0 |                      0 |                       0 |                0
   repl      | 2023-01-12 20:10:15.417271+08 |   49447976 |           776846657 |           776846244 |                65 | {46,11,11,6}       |                56 |                   0 |                    0 |                 0 |     
                  0 |                      0 |                       0 |                0
   repl      | 2023-01-12 20:10:20.417342+08 |   49448264 |           836085882 |           836085442 |                67 | {46,11,11,8}       |                58 |                   0 |                    0 |                 0 |     
                  0 |                      0 |                       0 |                0
   repl      | 2023-01-12 20:10:25.417433+08 |   49448264 |           836085882 |           836085442 |                67 | {46,11,11,8}       |                58 |                   0 |                    0 |                 0 |     
                  0 |                      0 |                       0 |                0
   repl      | 2023-01-12 20:10:30.417526+08 |   49448264 |           836085882 |           836085442 |                67 | {46,11,11,8}       |                58 |                   0 |                    0 |                 0 |     
                  0 |                      0 |                       0 |                0
   repl      | 2023-01-12 20:10:35.417532+08 |   49448264 |           836085882 |           836085442 |                67 | {46,11,11,8}       |                58 |                   0 |                    0 |                 0 |     
                  0 |                      0 |                       0 |                0
   repl      | 2023-01-12 20:10:40.417644+08 |   49448264 |           836085882 |           836085442 |                67 | {46,11,11,8}       |                58 |                   0 |                    0 |                 0 |     
                  0 |                      0 |                       0 |                0
   repl      | 2023-01-12 20:10:45.417763+08 |   49448264 |           836085882 |           836085442 |                67 | {46,11,11,8}       |                58 |                   0 |                    0 |                 0 |     
                  0 |                      0 |                       0 |                0
  (14 rows)
  ```
  备注：传入不存在的slot_name时，函数不报错，返回值为空记录。
  
- gs_logical_decode_observe('slot_name') 描述：展示逻辑复制性能指标数据。分布式需要在DN上执行。
  表4指标含义 
  | 指标名称                | 说明                        |
  |:---|:---|
  | slot_name            | 逻辑解码任务复制槽名称。             |
  | sample_time          | 性能指标采样时间。                 |
  | logical_decode_rate | 逻辑解码整体推进速率，单位：byte/s。   |
  | wal_read_rate         | WAL日志读取阶段处理速率，单位：byte/s。 |
  | parser_rate         | WAL日志解析阶段处理速率，单位：byte/s。  |
  | decoder_rate        | 解码阶段处理速率，单位：byte/s。        |
  | sender_rate        | 发送阶段处理速率，单位：byte/s。        |
  | net_send_rate        | 网络发送速率，单位：byte/s。        |
     
  参数说明：
  - slot_name 流复制槽名称。
    取值范围：字符串，仅支持小写字母、数字以及"_"，"?"，"-"，"."字符，且不支持"."或".."单独作为复制槽名称。
    
  
  - 返回值类型：setof record
    
  
  
  示例：
  ```
  gaussdb=# SELECT * FROM gs_logical_decode_observe('replication_slot');
      slot_name     |          sample_time          | logical_decode_rate | wal_read_rate | parser_rate  |  decoder_rate  |  sender_rate  | net_send_rate 
  ------------------+-------------------------------+---------------------+---------------+--------------+----------------+---------------+---------------
   replication_slot | 2023-01-12 20:16:50.42448+08  | 0.000               | 0.000         | 0.000        | 0.000          | 0.000         | 0.000
   replication_slot | 2023-01-12 20:16:55.424537+08 | 0.000               | 0.000         | 0.000        | 0.000          | 0.000         | 0.000
   replication_slot | 2023-01-12 20:17:00.424641+08 | 0.000               | 0.000         | 0.000        | 0.000          | 0.000         | 0.000
   replication_slot | 2023-01-12 20:17:05.424645+08 | 0.000               | 0.000         | 0.000        | 0.000          | 0.000         | 0.000
   replication_slot | 2023-01-12 20:17:10.424795+08 | 0.000               | 0.000         | 0.000        | 0.000          | 0.000         | 0.000
   replication_slot | 2023-01-12 20:17:15.424848+08 | 0.000               | 0.000         | 0.000        | 0.000          | 0.000         | 0.000
   replication_slot | 2023-01-12 20:17:20.424849+08 | 57.600              | 699029.126    | 96000000.000 | 1152000000.000 | 144000000.000 | 0.000
   replication_slot | 2023-01-12 20:17:25.424959+08 | 0.000               | 699029.126    | 96000000.000 | 1152000000.000 | 144000000.000 | 0.000
   replication_slot | 2023-01-12 20:17:30.42496+08  | 0.000               | 699029.126    | 96000000.000 | 1152000000.000 | 144000000.000 | 0.000
   replication_slot | 2023-01-12 20:17:35.425059+08 | 0.000               | 699029.126    | 96000000.000 | 1152000000.000 | 144000000.000 | 0.000
  ```
  备注：传入不存在的slot_name时，函数不报错，返回值为空记录。若分母为0，则返回最近一次有效数据。若分母不为0，分子为0，则返回0。
  指标计算公式：
  - logical_decode_rate = (reader_lsn1 - reader_lsn2) / (sample_time1 - sample_time2)
  
  - wal_read_rate = (reader_lsn1 - reader_lsn2) / (wal_read_total_time1 - wal_read_total_time2) - (wal_wait_total_time1 - wal_wait_total_time2)
  
  - parser_rate = (reader_lsn1 - reader_lsn2) / (parser_total_time1 - parser_total_time2)
  
  - decoder_rate = (reader_lsn1 - reader_lsn2) / avg(decoder_total_time1\[i\]- decoder_total_time2\[i\])
  
  - sender_rate = (reader_lsn1 - reader_lsn2) / (sender_total_time1 - sender_total_time2) - (net_send_total_time1 - net_send_total_time2)
  
  - net_send_rate = (net_sent_bytes1 - net_sent_bytes2) / (net_send_total_time1 - net_send_total_time2) - (net_wait_total_time1 - net_wait_total_time2)
    
- gs_logical_decode_observe_status('slot_name') 描述：查询指定逻辑解码任务的监控状态。分布式需要在DN上执行。
  参数说明：
  - slot_name 流复制槽名称。
    取值范围：字符串，仅支持小写字母、数字以及"_"，"?"，"-"，"."字符，且不支持"."或".."单独作为复制槽名称。
    
  
  - 返回值类型：text
    
  
  
  示例：
  ```
  gaussdb=# SELECT * FROM gs_logical_decode_observe_status('replication_slot');
   gs_logical_decode_observe_status 
  ----------------------------------
   START
  (1 row)
  gaussdb=# SELECT * FROM gs_logical_decode_observe_status('replication_slot');
   gs_logical_decode_observe_status 
  ----------------------------------
   invalid slot name
  (1 row)
  gaussdb=# SELECT * FROM gs_logical_decode_stop_observe('replication_slot');
   gs_logical_decode_stop_observe 
  --------------------------------
   OK
  (1 row)
  gaussdb=# SELECT * FROM gs_logical_decode_observe_status('replication_slot');
   gs_logical_decode_observe_status 
  ----------------------------------
   STOP
  (1 row)
  ```
  备注：返回值为逻辑解码任务的监控状态，传入不存在的slot_name时，函数不报错，返回值为invalid slot name。
  
- gs_get_parallel_decode_thread_info() 描述：在并行解码所在的DN执行，返回当前DN上并行解码的线程信息。
  返回值类型：int64、text、text、int
  示例：
  ```
  gaussdb=# SELECT * FROM gs_get_parallel_decode_thread_info();
      thread_id    | slot_name | thread_type | seq_number
  -----------------+-----------+-------------+------------
   140335364699904 | slot1     | sender      |          1
   140335214098176 | slot1     | reader      |          1
   140335325312768 | slot1     | decoder     |          1
   140335291750144 | slot1     | decoder     |          2
   140335274968832 | slot1     | decoder     |          3
   140335258187520 | slot1     | decoder     |          4
   140335165404928 | slot2     | sender      |          1
   140335022864128 | slot2     | reader      |          1
   140335129818880 | slot2     | decoder     |          1
   140335113037568 | slot2     | decoder     |          2
  (10 rows)
  ```
  备注：返回值thread_id代表线程id，slot_name代表复制槽名，thread_type表示线程种类（共三种，sender代表发送线程、reader代表读取线程、decoder代表解码线程），seq_number代表每个线程在当前复制槽中同种线程的序号。其中sender和reader在每个并行解码连接中均只有一个，因此序号均为1，decoder的序号从1排列到当前复制槽解码并行度。
  
- gs_get_logical_decode_parameter() 描述：查询活跃的并行逻辑解码任务参数选项。
  表5参数含义 
  | 字段名称                            | 返回值类型  | 说明                                           |
  |:---|:---|:---|
  | slot_name                        | text    | 复制槽名。                                        |
  | include_xids                      | bool   | 解码信息是否包含xid。                                 |
  | include_timestamp                | bool   | 解码信息是否包含时间戳。                               |
  | skip_empty_xacts               | bool    | 解码结果是否忽略空事务。                                 |
  | only_local                      | bool    | 是否只解码当前数据库产生的数据。                            |
  | include_username                 | bool     | 事务的BEGIN日志是否包含用户名。                          |
  | enable_ddl_decoding             | bool   | 是否开启DDL语句的解码。                                |
  | enable_ddl_json_format          | bool  | 是否开启DDL的反解析json输出形式。                      |
  | max_txn_in_memory              | int64   | 事务占用内存最大值（该参数已废弃，不生效）。                    |
  | max_reorderbuffer_in_memory    | int64   | 当前解码任务最大内存值。                                |
  | decode_style                  | char  | 解码格式。                                      |
  | parallel_decode_num               | int64    | 并行解码的decoder线程数量。                           |
  | sending_batch                  | int64 | 是否批量发送。                                    |
  | parallel_queue_size            | int64 | 并行逻辑解码线程间进行交互的队列长度。                        |
  | enable_heartbeat                | bool  | 是否输出心跳日志。                                    |
  | slice_id                       | int64   | 复制表分片id。                                   |
  | output_start_csn              | int64   | 开始输出的CSN位置。                                |
  | output_start_lsn              | int64    | 开始输出的LSN位置。                                |
  | logical_reader_bind_cpu           | int64    | reader线程绑定CPU的编号。                            |
  | logical_decoder_bind_cpu_index  | int64 | decoder线程绑定CPU的索引。                          |
  | auto_advance                  | bool  | 是否自动推进。                                    |
  | skip_generated_columns           | bool    | 是否跳过生成列的结果输出。                               |
  | big_transaction_limit             | int64   | 判断是否为大事务的内存使用限额（单位字节）。                         |
  | exclUser                          | text  | 黑名单用户的名称列表。                                 |
  | table_white_list              | text   | 白名单表参数。                                    |
  | desc_memory_limit               | int64  | 逻辑解码任务维护的表元信息总内存（单位MB）。                    |
  | max_logical_decode_memory      | int64  | 并行解码任务的总内存（单位GB）。                          |
  | max_control_memory_size         | int64   | 参数max-logical-decode-memory的上限值（单位GB）。         |
  | max_queue_cache_num            | int64  | 参数max-decode-to-sender-cache-num的上限值。       |
  | max_toast_memory_size          | int64   | 读取Xlog中toast字段的内存使用上限值（单位MB）。                 |
  | restart_lsn                   | int64   | 逻辑解码控制参数，用于指定解码开始点。                         |
  | timezone_is_utc                | bool    | 逻辑解码控制参数，用于控制携带时区的时间类型数据的输出。                |
  | enable_decode_position         | bool   | 逻辑解码控制参数，该参数主要控制逻辑解码读取到解码位置日志时，是否发送该位置日志信息。 |
  | standby_connection              | bool  | 仅流式解码设置，是否仅限制备机解码。                         |
  | sender_timeout                  | int64 | 仅流式解码设置，GaussDB与客户端的心跳超时阈值（单位毫秒）。          |
  | change_log_max_len            | int64 | 逻辑日志缓存长度上限参数，单位为字节。                        |
  | max_decode_to_sender_cache_num | int64 | 并行解码日志的缓存条数阈值。                             |
  | output_order                    | bool  | 仅流式解码设置有效，代表是否使用CSN顺序输出解码结果。               |
     
  示例：
  ```
  gaussdb=# SELECT * FROM gs_get_logical_decode_parameter();
   slot_name |configs                                                                                                                                                              -----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  --------------------------------------------------------------------------------------
   slot_1    | include_xids: 1, include_timestamp: 0, skip_empty_xacts: 0, only_local: 1, include_username: 0, enable_ddl_decoding: 1, enable_ddl_json_format: 0, max_txn_in_memory: 3072, max_reorderbuffer_in_memory: 1, decode_style: b, parallel_decode_num: 2, 
  sending_batch: 0, parallel_queue_size: 128, enable_heartbeat: 0, slice_id: -1, output_start_csn: 0, output_start_lsn: 0, logical_reader_bind_cpu: -1, logical_decoder_bind_cpu_index: -1, auto_advance: 0, skip_generated_columns: 0, big_transaction_limit: 10, desc_memory_limit: 200, max_logical_decode_memory: 6, max_control_memory_size: 10, max_queue_cache_num: 16384, max_toast_memory_size: 100,  restart_lsn: 274660168, timezone_is_utc: 1, enable_decode_position: 1, standby_connection: 0, sender_timeout: 10, change_log_max_len: 8192, max_decode_to_sender_cache_num: 10000, output_order: 0, exclUser: , table_white_list: 
  (1 row)
  ```
  
- gs_logical_get_transaction_table_info('start_lsn', 'upto_lsn', 'xid', 'options_name', 'options_value') 描述：指定LSN区间和xid，解析Xlog获取表相关信息。打开三权分立时，仅数据库初始用户可以调用；关闭三权分立时，具备系统管理员权限的用户可以调用。
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  约束条件如下：
  - 当前网络和硬件环境正常。
  
  - 调用函数时，要求日志级别wal_level=logical，且只有在wal_level=logical期间产生的日志文件才能被解析，如果使用的Xlog文件为非logical级别，则解析内容没有对应的值和类型，无其他影响。如果wal_level未被设置成logical级别，则报错不解析。
  
  - 此解析方式为根据Xlog文本记录数据进行解析，因此不在此Xlog里的数据无法解析。若相关Xlog日志缺失，缺失日志也无法解析。
  
  - enable_decode_parent_xid不打开时，从start_lsn点开始，只解析该事务相关的Xlog，其父事务、子事务等都不解析。
  
  - enable_decode_parent_xid打开时，从start_lsn点开始解析，解析输出仅包含该子事务及后续产生的事务信息。因需解析至子事务方可确立父子关系，该子事务之前的父事务及同层级其他子事务信息不予输出。如果需要完整顶层事务信息，请将事务ID指定为顶层事务ID，并合理设置start_lsn。
  
  - 不支持获取relfilenode已变化场景的表名称，例如表被TRUNCATE/DROP等。
  
  - 不支持获取Schema、表名已经变化的历史版本名称。
  
  - 执行函数时，输出文件大小超过100MB将被截断并报错。
  
  - xid小于Xlog中事务最小值时不报错，返回文件内容为空。
  
  - 当start_lsn检索范围过大，或设置为NULL（即从头遍历）时，Xlog解析期间可能因底层Xlog日志已被回收而中断，建议调整start_lsn范围后重新执行。
   
  参数说明：
  - start_lsn 指定开始解析的LSN。
    取值范围：字符串（LSN，格式为xlogid/xrecoff），如'1/2AAFC60'。为NULL时表示不对解析起始的日志位置做限制。
    
  
  - upto_lsn 指定解析结束的LSN。
    取值范围：字符串（LSN，格式为xlogid/xrecoff），如'1/2AAFC60'。为NULL时表示不对解析截止的日志位置做限制。
    
  
  - xid 事务ID。
    取值范围：3\~18446744073709551615（即uint64最大值）。
    ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
    如果用户设置的xid超过当前数据系统使用的xid的最大值，则会提示输入事务ID非法。
    
  
  - options：可选参数，由一系列options_name和options_value一一对应组成，可以缺省。
    - enable_decode_parent_xid 是否解析出的指定xid的父事务以及子事务信息。
      取值类型：布尔型。
      取值范围：
      - false：设为false时，解析出的指定事务的表信息。
      
      - true：设为true时，解析出指定事务的父事务以及相关子事务信息。
       
      默认值：false。
      ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
      仅505.2.0以后的版本产生的Xlog日志支持构建父子事务关系。
      
     
   
  返回值类型：text
  示例：
  ```
  gaussdb=# SELECT * FROM gs_logical_get_transaction_table_info('0/202FC320', '0/20306EE8', '221557', 'enable_decode_parent_xid', '1');
                                      output_filepath                                     
  ----------------------------------------------------------------------------------------
   /home/omm/install/clusters/clusters_cent/cxz/cxz_datanode/221557_202fc320_20306ee8.log
  (1 row)
  解析结果如下：
  === DETAIL RECORDS ===
  XID|TOP_XID|PARENT_XID|RELFILE_OID|START_LSN|END_LSN|CSN|TABLE_OID|SCHEMA_NAME|TABLE_NAME|OPERATION|ADDITIONAL_INFO
  9982031|9982031|0|324521|9/297251C8|9/29725260|9417216|324521|public|t_tran|INSERT|
  9982032|9982031|9982031|324521|9/297254E8|9/29725578|9417216|324521|public|t_tran|INSERT|
  9982034|9982031|9982032|324521|9/29725B80|9/29725C18|9417217|324521|public|t_tran|INSERT|
  9982041|9982031|9982031|324521|9/29727940|9/297279D0|9417221|324521|public|t_tran|INSERT|
  9982045|9982031|9982041|324521|9/2974C458|9/2974C4F0|9417224|324521|public|t_tran|INSERT|
  9982047|9982031|9982041|324521|9/2974CC00|9/2974CC98|9417225|324521|public|t_tran|INSERT|
  === SUMMARY RECORDS ===
  XID|TABLE_OID|SCHEMA_NAME|TABLE_NAME|IS_COMMITTED|INSERT_COUNT|UPDATE_COUNT|DELETE_COUNT|DDL_COUNT
  9982031|324521|public|t_tran|true|6|0|0|0
  ```
  表6指标含义 
  | 指标名称          | 说明         |
  |:---|:---|
  | XID             | 事务号。        |
  | TOP_XID       | 顶层事务号。     |
  | PARENT_XID     | 父事务号。        |
  | RELFILE_NODE    | 表文件对象标识符。   |
  | START_LSN      | 该事务起始LSN。  |
  | END_LSN      | 该事务结束LSN。 |
  | CSN           | 提交序列号。    |
  | TABLE_OID      | 表的对象标识符。   |
  | SCHEMA_NAME     | 表所属Schema。  |
  | TABLE_NAME       | 表名。        |
  | OPERATION         | 操作类型。      |
  | ADDITIONAL_INFO | DDL信息。     |
  | IS_COMMITTED    | 事务是否提交。  |
  | INSERT_COUNT   | 插入记录数。      |
  | UPDATE_COUNT   | 更新记录数。      |
  | DELETE_COUNT  | 删除记录数。     |
  | DDL_COUNT     | DDL语句数。   |
     
  
- gs_get_distribute_decode_status() 描述：获取当前节点上分布式解码状态细节（以复制槽为粒度），需在CN上执行，DN上执行仅返回空。
  返回值类型：text、int、int、int64、xid、xid、text、text、text
  ```
  gaussdb=# SELECT * FROM gs_get_distribute_decode_status();
   slot_name | logical_receiver_num | slice_num | walsender_thread_id | last_sent_csn | last_confirmed_csn |      receiver_queue_length      |          connect_times          |                 csn_receive_array
  -----------+----------------------+-----------+---------------------+---------------+--------------------+---------------------------------+---------------------------------+---------------------------------------------------
   slot1     |                    1 |         3 |     139958481843968 |       2012169 |            2010107 | queue0: 1, queue1: 1, queue2: 0 | slice0: 2, slice1: 2, slice2: 2 | slice0: 2012244, slice1: 2012244, slice2: 2012244
  (1 row)
  ```
  表7指标含义 
  | 指标名称                  | 类型   | 说明                        |
  |:---|:---|:---|
  | slot_name               | text   | 复制槽名。                     |
  | logical_receiver_num    | int   | 分布式解码启动的receiver线程数量。      |
  | slice_num              | int    | 集群分片数。                     |
  | walsender_thread_id     | int64  | walsender线程id。             |
  | last_sent_csn         | xid   | 最近发送的CSN。                 |
  | last_confirmed_csn     | xid  | 最后从客户端返回的已确认接收的CSN。        |
  | receiver_queue_length | text  | 各DN接收日志队列长度（拼接后以字符串格式显示）。 |
  | connect_times          | text | 各DN连接次数（拼接后以字符串格式显示）。      |
  | csn_receive_array    | text    | 各DN获取到的最新CSN（拼接后以字符串格式显示）。 |
     
  
- gs_logical_decode_meta_cache_summary('slot_name') 描述：获取并行逻辑解码中活跃复制槽的解码元信息缓存的统计信息，包括缓存对象数、版本数、总内存占用、缓存命中率、扫描系统表命中率等全局指标。
  参数说明：
  - slot_name 流复制槽名称。
    取值类型：字符串。
    取值范围：仅支持小写字母、数字以及"_"，"?"，"-"，"."字符，且不支持"."或".."单独作为复制槽名称。
    
   
  表8指标含义 
  | 指标名称            | 说明                                                    |
  |:---|:---|
  | type           | 逻辑解码元信息的类型（支持table、partition、type、enum、auth、database）。 |
  | entry_num       | 元信息实体个数。                                              |
  | version_num      | 元信息实体版本总数（每个实体可能有多个版本）。                                 |
  | total_mem_size    | 元信息缓存总内存，单位：字节。                                        |
  | hit_count      | 缓存命中次数。                                                |
  | miss_count      | 缓存未命中次数。                                                |
  | hit_ratio     | 缓存命中率。                                                 |
  | scan_count     | 扫描系统表次数。                                               |
  | scan_hit_count   | 扫描系统表命中次数。                                            |
  | scan_hit_ratio | 扫描系统表命中率。                                              |
  | extra_info       | 其它信息。                                                  |
     
  示例：
  ```
  gaussdb=# SELECT * FROM gs_logical_decode_meta_cache_summary('slot1');
     type    | entry_num | version_num | total_mem_size | hit_count | miss_count | hit_ratio | scan_count | scan_hit_count | scan_hit_ratio | extra_info 
  -----------+-----------+-------------+----------------+-----------+------------+-----------+------------+----------------+----------------+------------
   table     |        53 |          53 |         173056 |         0 |          0 |         0 |          0 |              0 |              0 | 
   partition |         0 |           0 |              0 |         0 |          0 |         0 |          0 |              0 |              0 | 
   type      |        14 |          14 |           1791 |         0 |          0 |         0 |          0 |              0 |              0 | 
   enum      |         0 |           0 |              0 |         0 |          0 |         0 |          0 |              0 |              0 | 
   auth      |         1 |           1 |            136 |         0 |          0 |         0 |          0 |              0 |              0 | 
   database  |         0 |           0 |              0 |         0 |          0 |         0 |          0 |              0 |              0 | 
  (6 rows)
  ```
  
- gs_logical_decode_meta_cache_stats('slot_name', 'type', 'mode', 'limit_num') 描述：获取并行逻辑解码中活跃复制槽的解码元信息缓存指定维度的TopN对象统计信息，支持按内存占用（memory）、版本链长度（version_cnt）、未命中次数（miss_count）、命中率（hit_ratio）维度查询。
  参数说明：
  - slot_name 流复制槽名称。
    取值类型：字符串。
    取值范围：仅支持小写字母、数字以及"_"、"?"、"-"、"."字符，且不支持"."或".."单独作为复制槽名称。
    
  
  - type 元信息类型名称。
    取值范围：支持table_oid、table_rfn、partition、type、enum、auth、database。
    
  
  - mode 查询维度信息。
    取值范围：支持memory、version_cnt、miss_count、hit_ratio。
    
  
  - limit_num 输出行数限制大小。
    取值类型：整型。
    取值范围：1 \~ 1000。
    
   
  表9指标含义 
  | 指标名称                  | 说明                      |
  |:---|:---|
  | oid                  | 元信息实体的oid。              |
  | name               | 元信息实体的名称。                |
  | relfilenode         | 元信息实体的relfilenode。       |
  | version_cnt        | 元信息实体的版本个数。               |
  | invalid_version_cnt | 元信息实体的失效版本个数。           |
  | total_mem_size      | 元信息实体的占用内存的总大小，单位：字节。     |
  | avg_version_size    | 元信息实体各版本占用内存的平均大小，单位：字节。 |
  | hit_count           | 元信息实体的命中次数。               |
  | miss_count           | 元信息实体的未命中次数。             |
  | hit_ratio             | 元信息实体的命中率。               |
  | create_time         | 元信息实体加载到内存中的时间。           |
  | evict_fail_count    | 元信息实体的淘汰失败次数。            |
  | evict_count           | 元信息实体的淘汰次数。               |
  | latest_evict_time  | 元信息实体的最近一次淘汰的时间。       |
  | warning_flags       | 元信息实体异常标记信息。             |
  | extra_info          | 其他信息。                      |
     
  示例：
  ```
  gaussdb=# SELECT * FROM gs_logical_decode_meta_cache_stats('slot1', 'table_oid', 'memory', 20);
    oid  |                 name                  | relfilenode | version_cnt | invalid_version_cnt | total_mem_size | avg_version_size | hit_count | miss_count | hit_ratio |          create_time          | evict_fail_count | evict_count | latest_evict_time | warning_flags | extra_info 
  -------+---------------------------------------+-------------+-------------+---------------------+----------------+------------------+-----------+------------+-----------+-------------------------------+------------------+-------------+-------------------+---------------+------------
   16609 | snap_summary_statement                |       16609 |           1 |                   0 |           6544 |             6544 |         3 |          0 |         1 | 2026-07-01 10:55:57.313943+08 |                0 |           0 |                   |             0 | 
   16616 | snap_global_statement_count           |       16616 |           1 |                   0 |           3424 |             3424 |         3 |          0 |         1 | 2026-07-01 10:55:57.31703+08  |                0 |           0 |                   |             0 | 
   16622 | snap_summary_statement_count          |       16622 |           1 |                   0 |           3424 |             3424 |         3 |          0 |         1 | 2026-07-01 10:55:57.319207+08 |                0 |           0 |                   |             0 | 
   16758 | snap_global_stat_all_tables           |       16758 |           1 |                   0 |           2904 |             2904 |         3 |          0 |         1 | 2026-07-01 10:55:54.406154+08 |                0 |           0 |                   |             0 | 
   16664 | snap_global_redo_status               |       16664 |           1 |                   0 |           2800 |             2800 |         0 |          0 |         0 | 2026-07-01 10:55:54.385334+08 |                0 |           0 |                   |             0 | 
   16764 | snap_summary_stat_all_tables          |       16764 |           1 |                   0 |           2800 |             2800 |         3 |          0 |         1 | 2026-07-01 10:55:54.408911+08 |                0 |           0 |                   |             0 | 
  (6 rows)
  ```
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
  函数执行过程中需要访问解码元信息缓存的Hash表并获取锁，以保证统计数据一致性。执行过程中可能与逻辑解码线程存在锁竞争，对解码性能造成影响。建议避免频繁调用该函数，推荐在问题定位、性能分析等场景下使用。
  
- gs_logical_decode_meta_cache_obj_detail('slot_name', 'type', oid, 'mode', 'limit_num') 描述：获取并行逻辑解码中活跃复制槽的解码元信息缓存指定对象的详细统计信息和版本链详情，包括版本数、有效区间（csnmin/csnmax）、内存占用、命中情况等。
  参数说明：
  - slot_name 流复制槽名称。
    取值类型：字符串。
    取值范围：仅支持小写字母、数字以及"_"、"?"、"-"、"."字符，且不支持"."或".."单独作为复制槽名称。
    
  
  - type 元信息类型名称。
    取值范围：支持table、partition、type、enum、auth、database。
    
  
  - oid 查询元信息的oid。
    
  
  - mode 查询结果输出模式。
    取值范围：支持memory、file。
    
  
  - limit_num 输出行数限制大小。
    取值类型：整型。
    取值范围：当mode为memory时取值1 \~ 1000；当mode为file时取值1 \~ 2147483647。
    
   
  表10指标含义 
  | 指标名称          | 说明                       |
  |:---|:---|
  | oid           | 元信息版本的oid。                |
  | relfilenode | 元信息版本的relfilenode。        |
  | name           | 元信息版本的名称。                 |
  | csnmin          | 元信息版本的csnmin信息。            |
  | csnmax         | 元信息版本的csnmax信息。          |
  | is_invalid   | 元信息版本是否有效。                  |
  | mem_size     | 元信息版本的内存占用大小，单位：字节。      |
  | hit_count    | 元信息版本的命中次数。                |
  | refcnt         | 元信息版本的引用计数。                |
  | createtime    | 元信息版本加载到内存中的时间。          |
  | extra_info     | 其他信息，当mode=file时，表示输出文件路径。 |
     
  示例：
  ```
  gaussdb=# SELECT * FROM gs_logical_decode_meta_cache_obj_detail('slot1', 'table', 54921, 'memory', 100);
    oid  | relfilenode | name | csnmin | csnmax | is_invalid | mem_size | hit_count | refcnt |          createtime          | extra_info 
  -------+-------------+------+--------+--------+------------+----------+-----------+--------+------------------------------+------------
   54921 |       54921 | t1   | 409737 |      0 | f          |      408 |         0 |      0 | 2026-07-01 10:55:52.27585+08 | 
  (1 row)
  gaussdb=# SELECT * FROM gs_logical_decode_meta_cache_obj_detail('slot1', 'table', 54921, 'file', 100);
   oid | relfilenode | name | csnmin | csnmax | is_invalid | mem_size | hit_count | refcnt | createtime |                                         extra_info                                          
  -----+-------------+------+--------+--------+------------+----------+-----------+--------+------------+---------------------------------------------------------------------------------------------
     0 |           0 |      |      0 |      0 | f          |        0 |         0 |      0 |            | <DataDir>/meta_cache_slot1_1782874593.out
  (1 row)
  ```
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
  函数执行过程中需要访问解码元信息缓存的Hash表并获取锁，以保证统计数据一致性。执行过程中可能与逻辑解码线程存在锁竞争，对解码性能造成影响。建议避免频繁调用该函数，推荐在问题定位、性能分析等场景下使用。
  
- gs_get_distribute_decode_status_detail() 描述：获取当前节点上分布式解码状态细节（以DN为粒度），需在CN上执行，DN上执行仅返回空。
  返回值类型：text、int、int64、int、int、xid
  ```
  gaussdb=# SELECT * FROM gs_get_distribute_decode_status_detail();
   slot_name | slice_id |    thread_id    | queue_len | connect_times | received_csn
  -----------+----------+-----------------+-----------+---------------+--------------
   slot1     |        0 | 139959895848704 |         1 |             2 |      2012244
   slot1     |        1 | 139959895848704 |         1 |             2 |      2012244
   slot1     |        2 | 139959895848704 |         0 |             2 |      2012244
  (3 rows)
  ```
  表11指标含义 
  | 指标名称          | 类型    | 说明                  |
  |:---|:---|:---|
  | slot_name   | text | 复制槽名。               |
  | slice_id   | int   | 分片号（从0开始）。           |
  | thread_id    | int64 | 分布式解码启动的receiver线程号。 |
  | queue_len    | int  | 当前DN接收日志队列长度。       |
  | connect_times | int   | 各DN连接次数。              |
  | received_csn | xid  | 从当前DN获取的最新CSN。        |
     
  
- gs_logical_dictionary_baseline() 描述：执行逻辑解码数据字典的存量数据基线化，执行成功返回耗时，执行失败返回失败原因。
  返回值类型：text
  
- gs_logical_dictionary_disabled() 描述：关闭逻辑解码数据字典功能，停止增量DDL，执行成功返回OK，执行失败返回失败原因。
  返回值类型：text
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/caution_3.0-zh-cn.png)
  关闭数据字典功能之后，无法使用已有的数据字典模式复制槽继续解码，如需使用数据字典功能，须执行gs_logical_dictionary_baseline()函数，对逻辑数据字典重新进行基线化，然后重建逻辑复制槽。
  
- gs_logical_decode_lock()
  描述：逻辑解码组件升级管理加锁接口，加锁成功返回t，失败返回f。内部使用功能，不建议用户使用。
  参数说明：wait_time：加锁等待时间。取值范围：非负数，单位：秒；支持不传入参，不传入参，加锁等待时间为0秒，即不等待。
  返回值类型：boolean
  
- gs_logical_decode_unlock() 描述：逻辑解码组件升级管理放锁接口，无入参，放锁成功返回t，失败返回f。内部使用功能，不建议用户使用。
  返回值类型：boolean
  
- gs_add_logical_decoding_position_xlog() 描述：执行该函数后会生成XLOG_STANDBY_DECODE_POSITION类型的Xlog日志。该日志会被当前数据库上的解码任务读取，用于反馈解码位置。具有sysadmin、replication或opradmin权限的用户才能调用该函数，否则调用失败。该函数执行频率依据数据库统计，按节点控制每个数据库调用该系统函数的频率，调用最小间隔为1秒。分布式场景也遵循此原则，每个CN单独控制调用频率。
  返回值类型：text
  
- gs_change_replication_slot_plugin('slot_name', 'plugin_name') 描述：修改逻辑复制槽插件类型。
  参数说明：
  - slot_name 流复制槽名称。
    取值范围：字符串，仅支持小写字母、数字以及"_"，"?"，"-"，"."字符，且不支持"."或".."单独作为复制槽名称。
    
  
  - plugin_name 插件名称。
    取值范围：字符串，当前支持mppdb_decoding、sql_decoding、parallel_binary_decoding、parallel_json_decoding、parallel_text_decoding。
    返回值类型：boolean，默认值为true。
    
  
  
  示例：
  查询当前复制槽信息：
  ```
  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 
  -----------+--------------------------+-----------+--------+--------+------+--------------+-------------+---------------+-----------------+---------------+--------------------+----------------------
   slot1     | parallel_json_decoding   | logical   |  12834 | f      |      |              | 0/125A15E0  | f             | 0/125E84D0      |               |               7787 | dictionary table
   slot2     | parallel_binary_decoding | logical   |  12834 | f      |      |              | 0/E9C71B0   | f             | 0/E9CA638       |               |               3860 | dictionary table
   slot3     | parallel_text_decoding   | logical   |  12834 | f      |      |              | 0/E9D96D0   | f             | 0/EEE6508       |               |               3867 | dictionary table
   slot4     | mppdb_decoding           | logical   |  12834 | f      |      |              | 0/E9AFC38   | f             | 0/EEE6508       |               |               3853 | dictionary table
  (4 rows)
  ```
  修改复制槽类型：
  ```
  gaussdb=# SELECT * FROM gs_change_replication_slot_plugin('slot1', 'mppdb_decoding');
   gs_change_replication_slot_plugin 
  -----------------------------------
   t
  (1 row)
  ```
  再次查询复制槽信息：
  ```
  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 
  -----------+--------------------------+-----------+--------+--------+------+--------------+-------------+---------------+-----------------+---------------+--------------------+----------------------
   slot1     | mppdb_decoding           | logical   |  12834 | f      |      |              | 0/125A15E0  | f             | 0/125E84D0      |               |               7787 | dictionary table
   slot2     | parallel_binary_decoding | logical   |  12834 | f      |      |              | 0/E9C71B0   | f             | 0/E9CA638       |               |               3860 | dictionary table
   slot3     | parallel_text_decoding   | logical   |  12834 | f      |      |              | 0/E9D96D0   | f             | 0/EEE6508       |               |               3867 | dictionary table
   slot4     | mppdb_decoding           | logical   |  12834 | f      |      |              | 0/E9AFC38   | f             | 0/EEE6508       |               |               3853 | dictionary table
  (4 rows)
  ```
  
- gs_get_inter_cluster_version_info() 描述：查询主备数据库的版本号、逻辑解码组件的版本以及复制类型（逻辑复制或者物理复制）。当前版本暂不支持。
  返回值类型：int、text、int、text、text
  
 
