华为云用户手册

  • get_col_file_vacuum_info(schema_name text, table_name text, force_get_rewritten_file_num bool) 描述:查询某张列存表的文件vacuum相关信息,每个分区单独统计。该函数仅8.2.0.100及以上集群版本支持。 参数:模式名(必选),表名(必选),是否强制获取准确的可清理文件数(必选,默认为false) 返回值类型:record 返回值字段: node_name:DN节点名。 part_name:分区名,普通表此列为空。 total_file_num:总CU文件数。 rewritable_file_num:可重写,但还未重写的文件数。 rewritten_file_num:已重写未清理文件数,此值来源于内存态ClearCache,若由于重启等原因ClearCache丢失,可通过设置force_get_rewritten_file_num=true,消耗额外的时间,强制获取准确的可清理文件数。 empty_file_num:已清理文件数。 示例: 1 2 3 4 5 6 7 8 9 10 SELECT * FROM get_col_file_vacuum_info('public','pa',false); node_name | part_name | total_file_num | rewritable_file_num | rewritten_file_num | empty_file_num -----------+-----------+----------------+---------------------+--------------------+---------------- datanode1 | pa1 | 1 | 0 | 0 | 0 datanode1 | pa2 | 1 | 0 | 0 | 0 datanode2 | pa1 | 1 | 0 | 0 | 0 datanode2 | pa2 | 1 | 0 | 0 | 0 datanode3 | pa1 | 1 | 0 | 0 | 0 datanode3 | pa2 | 1 | 0 | 0 | 0 (6 rows)
  • get_volatile_pg_class(relname text) 描述:获取当前会话中指定volatile临时表相关的pg_class元数据。该函数仅8.2.0及以上集群版本支持。 参数:当前会话中volatile临时表表名。 返回值类型:record 返回值字段: oid:返回volatile临时表的oid。 其他字段:同pg_class系统表中的基础字段(不包括系统隐藏字段)。 示例: 1 2 3 4 5 6 7 8 9 10 11 SELECT * FROM get_volatile_pg_class('tx1'); oid | relname | relnamespace | reltype | reloftype | relowner | relam | relfilenode | reltablespace | relpages | reltuples | relallvisible | reltoastrelid | reltoastidxid | reldeltarelid | reldeltaidx | relcudescrelid | relcudescidx | relhasindex | relisshared | relpersistence | relkind | relnatts | relchecks | relhasoids | relhaspkey | relhasrules | relhastriggers | relhassub class | relcmprs | relhasclusterkey | relrowmovement | parttype | relfrozenxid | relacl | reloptions | relreplident | relfrozenxid64 -------+---------+--------------+---------+-----------+----------+-------+-------------+---------------+----------+-----------+---------------+---------------+---------------+---------------+ -------------+----------------+--------------+-------------+-------------+----------------+---------+----------+-----------+------------+------------+-------------+----------------+---------- ------+----------+------------------+----------------+----------+--------------+--------+----------------------------------+--------------+---------------- 16772 | tx1 | 16770 | 16774 | 0 | 10 | 0 | 16772 | 1665 | 0 | 0 | 0 | 16775 | 0 | 0 | 0 | 0 | 0 | f | f | v | r | 2 | 0 | f | f | f | f | f | 1 | f | f | n | 11815 | | {orientation=row,compression=no} | d | 11815 (1 row)
  • get_volatile_pg_attribute(relname text, attrname text) 描述:获取当前会话中指定volatile临时表相关的pg_attribute元数据。该函数仅8.2.0及以上集群版本支持。 参数: relname:表名(必须在当前会话中)。 attrname:列名。 返回值类型:record 返回值字段: oid:返回该列信息的oid。 其他字段:同pg_attribute系统表中的基础字段(不包括系统隐藏字段)。 示例: 1 2 3 4 5 6 7 8 SELECT * FROM get_volatile_pg_attribute('tx1', 'b'); attrelid | attname | atttypid | attstattarget | attlen | attnum | attndims | attcacheoff | atttypmod | attbyval | attstorage | attalign | attnotnull | atthasdef | attisdropped | attislocal | attcmprmode | attinhcount | attcollation | attacl | attoptions | attfdwoptions | attinitdefval | attkvtype ----------+---------+----------+---------------+--------+--------+----------+-------------+-----------+----------+------------+----------+------------+-----------+--------------+------------+ -------------+-------------+--------------+--------+------------+---------------+---------------+----------- 16772 | b | 25 | -1 | -1 | 2 | 0 | -1 | -1 | f | x | i | f | f | f | t | 127 | 0 | 100 | | | | | 0 (1 row)
  • pg_get_publication_tables(pubname text) 描述:根据发布的名称,返回对应发布要发布的表的relid列表。该函数仅8.2.0.100及以上集群版本支持。 参数:pubname 返回值类型:set of oid 示例: 1 2 3 4 5 6 SELECT * FROM pg_get_publication_tables('mypub'); relid ------- 16757 16776 (2 rows)
  • pg_stat_get_status(tid, num_node_display) 描述:查询当前实例中工作线程(backend thread)以及辅助线程(auxiliary thread)的阻塞等待情况,其返回结果的详细含义参见PG_THREAD_WAIT_STATUS视图。输入参数含义如下: tid:表示线程ID,bigint类型。如果为NULL,则返回所有工作线程和辅助线程的等待情况;否则只返回指定ID线程的等待情况。 num_node_display:integer类型。对于等待状态为“wait node”的记录,指定其wait_status列中显示的被等待节点的最大数量。 如果为空或者小于等于0,则只显示一个被等待节点。 如果大于20,则最多只显示20个节点。 如果大于0且小于等于20,则显示数量为num_node_display和实际被等待节点数量的最小者。例如查询“SELECT * from pg_stat_get_status(NULL, 10)”,如果实际被等待节点数量大于10,则只随机显示其中10个节点名称,如果实际被等待节点数量小于等于10,则显示全部被等待节点名称。当实际被等待节点数量大于显示数量时,被显示的节点名称为随机挑选。 返回值类型:record
  • create_wdr_snapshot() 描述:创建性能数据快照。 返回值类型:text 该函数只有数据库管理员SYSADMIN才可以执行,非管理员执行会提示无权限。 该函数只能在CN上执行,在DN上执行会返回:“WDR snapshot can only be created on coordinator.”。 执行该函数前需确认enable_wdr_snapshot参数处于开启状态。如果enable_wdr_snapshot为off,执行该函数会返回:“WDR snapshot request can't be executed, because GUC parameter 'enable_wdr_snapshot' is off.”。 如果执行该函数时,快照线程由于节点重启等原因尚未启动,会提示错误:“WDR snapshot request can not be accepted, please retry later.”。 如果执行该函数失败,会提示:“Cannot respond to WDR snapshot request.”。 如果执行成功,会返回:“WDR snapshot request has been submitted.”。该提示表明创建快照请求已发送至后台快照线程,但不代表创建快照成功。
  • kill_snapshot(scope cstring) 描述:中止后台快照线程。该函数向后台快照线程发送中止信号并等待线程结束。 输入参数scope:表示操作范围。该参数取值范围为local和global。 local表示中止当前CN上的快照线程。 global表示不仅会中止当前CN上的快照线程,还会向集群中所有其他CN发送中止快照线程的请求,即中止集群中所有CN上的快照线程。 如果输入其他值,则报错“Scope is invalid, use "local" or "global".”。 输入参数可为空,表示默认取值为local。 返回值类型:无 该函数只有数据库管理员SYSADMIN才有权执行,非管理员执行会提示无权限。 该函数只能在CN上执行,在DN上执行会提示:“kill_snapshot can only be executed on coordinator.”; 执行该函数会向后台快照线程发送中止信号并等待其结束。如果100s内快照线程仍未中止则会报错:“Kill snapshot thread failed”;
  • wdr_xdb_query(db_name text, snapshot_id bigint, view_name text) 描述:查询指定数据库下的指定视图。有的视图在不同数据库中查询结果不同,例如global_table_stat视图用于查询表格的统计信息,由于不同数据库下表格不同,在不同数据库中查询该视图得到的结果也不同。wdr_xdb_query函数可以在当前连接中访问db_name指定的数据库,并在该数据库中查询view_name指定的视图。输入参数含义如下: db_name:指定的数据库名称,text型。 snapshot_id:快照ID,bigint型,参见“性能视图快照”。 view_name:指定视图名称,text型。视图名称必须在如下白名单中: global_table_stat global_table_change_stat global_column_table_io_stat global_row_table_io_stat 返回值类型:record,其第一列为snapshot_id bigint,第二列为db_name text,其他列的名称、类型和顺序与view_name指定的视图相同。 示例: 1 select snapshot_id, db_name, schemaname, relname, distribute_mode, seq_scan, seq_tuple_read, index_scan, index_tuple_read, tuple_inserted, tuple_updated,tuple_deleted, tuple_hot_updated, live_tuples, dead_tuples from wdr_xdb_query('postgres'::text, 1, 'global_table_stat'::text) as i(snapshot_id bigint, db_name text, schemaname name, relname name, distribute_mode char, seq_scan bigint, seq_tuple_read bigint, index_scan bigint, index_tuple_read bigint, tuple_inserted bigint, tuple_updated bigint, tuplee_deleted bigint, tuple_hot_updated bigint, live_tuples bigint, dead_tuples bigint); 该函数仅8.1.2及以上版本支持。 该函数只有数据库管理员SYSADMIN才有权执行,非管理员执行会提示无权限。 该函数只能查询白名单中的视图,如果查询其他视图,会报错:“Input view name is invalid.”。
  • get_col_file_info(table_name) 描述:查询指定列存表的空CU文件数和总CU文件数,该函数仅8.2.0及以上集群版本支持。 参数:列存表名。 返回值类型:int 返回值字段: total_file_num int:总CU文件数,范围为-1~INT_MAX,返回-1时表示表类型不支持等原因的失败,0~INT_MAX为总文件数。 empty_file_num int:空CU文件数,范围为-1~INT_MAX,返回-1时表示表类型不支持等原因的失败,0~INT_MAX为空文件数。 示例: 1 2 3 4 5 call get_col_file_info('t4'); total_file_num | empty_file_num ----------------+---------------- 10 | 7 (1 row)
  • get_all_col_file_info() 描述:查询所有列存表的空CU文件数和总CU文件数,该函数仅8.2.0及以上集群版本支持。 返回值类型:record 返回值字段: space_name text:列存表所属schema table_name text:列存表名 total_file_num int:总CU文件数,范围为-1~INT_MAX,返回-1时表示表类型不支持等原因的失败,0~INT_MAX为总文件数。 empty_file_num int:空CU文件数,范围为-1~INT_MAX,返回-1时表示表类型不支持等原因的失败,0~INT_MAX为空文件数。 示例: 1 2 3 4 5 6 7 call get_all_col_file_info(); space_name | table_name | total_file_num | empty_file_num ------------+------------+----------------+---------------- public | t4 | 10 | 7 public | t2 | 1 | 1 public | t1 | 3 | 0 (3 rows)
  • pgxc_parallel_query(text, text) 描述:在指定类型的 数据实例 上执行指定的SQL查询语句,并把查询语句的结果返回给当前CN。该函数8.1.2及以上版本支持。 函数有两个参数: 第一个参数:SQL语句在哪些实例上执行。当前支持的有效入参是 'dn', 'datanode','cn', 'coordinator', 'all', 其它值会导致函数执行报错。其中 'dn', 'datanode'表示在所有DN上执行,'cn', 'coordinator'表示在所有CN上执行, all表示在所有的CN和所有的DN上执行。 第二个参数:需要发往远程节点执行的SQL语句,函数内部会对SQL语句中查询的对象进行校验,不支持用户表、分布式表和自定义的多结果集函数。 返回值类型:record 该函数功能仅为便于开发人员高效的收集集群内实例执行信息或者状态的视图,不建议用户直接使用。 该函数为多结果集函数,返回的数据类型为record,所以需要在函数调用后面增加AS语句显示的指出输出的列名和数据类型,如下所示: SELECT * FROM pgxc_parallel_query('all', 'select node_name, db_name, thread_name, query_id, tid, lwtid, ptid, tlevel, smpid, wait_status, wait_event from pg_thread_wait_status') AS (node_name text, db_name text, thread_name text, query_id bigint, tid bigint, lwtid integer , ptid integer, tlevel integer , smpid integer, wait_status text, wait_event text); 函数第二个参数指定的SQL语句输出结果的数据类型必须跟AS后面指明的数据类型一致,否则执行时可能会因为类型不匹配而报错。 函数第二个参数指定的SQL语句中不能触发跨节点的查询动作,否则会触发执行报错。 函数第二个参数指定的SQL语句只能是SELECT/UPDATE/DELETE/INSERT语句中的一种,且 不支持语句中有returning语句。 函数调用用户需具有SQL语句中对象相应的操作权限。 如果是INSERT语句,不支持INSERT OVERWRITE、UPSERT、和INSERT INTO。 对于UPDATE/DELETE/INSERT语句,只允许初始化用户在就地升级模式下或者管理员用户在重分布模式下执行;要求语句在每个实例上修改的记录数相同,否则执行会报错;函数会输出一条一列bigint类型的数值,此数值表示语句在每个实例上操作的记录数。 SELECT * FROM pgxc_parallel_query('cn', 'UPDATE pg_partition SET relpages = 0') AS (updated bigint);
  • table_distribution(schemaname text, tablename text) 描述:查看指定表在各个节点上占用的存储空间。 参数:表示待查询表的模式名和表名,均为text类型。 返回值类型:record 使用本函数查询指定表存储分布信息,需要具备指定表的SELECT权限。 table_distribution性能比table_skewness更优,尤其是在大集群大数据量场景下,请优先考虑使用table_distribution函数。 当使用table_distribution并希望直观的看到空间占比时,可使用dnsize/(sum(dnsize) over ())的方式查看出具体的占比情况。
  • reset_instr_unique_sql(cstring, cstring, INT8) 描述:清理已收集的Unique SQL信息。输入参数含义如下: GLOBAL/LOCAL:清理范围为所有节点或当前节点。 ALL/BY_USERID/BY_CNID/BY_GUC:ALL表示清理所有,BY_USERID/BY_CNID表示按照USERID或CNID进行清理,BY_GUC表示清理操作是由GUC参数instr_unique_sql_count设置值变小引起的。 第三个参数值对应第二个参数设置,ALL/BY_GUC的情况下该值无意义。 返回值类型:bool
  • copy_error_log_create() 描述:创建COPY FROM容错机制所需要的错误表(public.pgxc_copy_error_log)。 返回值类型:boolean 此函数会尝试创建public.pgxc_copy_error_log表,表的详细信息请参见表3。 在relname列上创建B-tree索引,并REVOKE ALL on public.pgxc_copy_error_log FROM public对错误表进行权限控制(与COPY语句权限一致)。 由于尝试创建的public.pgxc_copy_error_log定义是一张行存表,因此集群上必须支持行存表的创建才能够正常运行此函数,并使用后续的COPY容错功能。需要特别注意的是,enable_hadoop_env这个GUC参数开启后会禁止在集群内创建行存表( GaussDB (DWS)默认为off)。 此函数自身权限为Sysadmin及以上(与错误表、COPY权限一致)。 若创建前public.pgxc_copy_error_log表已存在或者copy_error_log_relname_idx索引已存在,则此函数会报错回滚。 表3 错误表public.pgxc_copy_error_log信息 列名称 类型 描述 relname varchar 表名称。以模式名.表名形式显示。 begintime timestamp with time zone 出现数据格式错误的时间。 filename varchar 出现数据格式错误的数据源文件名。 rownum bigint 在数据源文件中,出现数据格式错误的行号。 rawrecord text 在数据源文件中,出现数据格式错误的原始记录。为了防止字段长度过大,限制字段的长度不超过1024 byte。 detail text 详细错误信息。 columnname varchar 在数据源文件中,出现数据格式错误的字段名称。仅8.2.1.100及以上版本支持。 errcode varchar 出错信息对应的错误码,使用sqlstate错误码。仅8.2.1.100及以上版本支持。 queryid bigint 执行copy的sql语句id,用于唯一标识一条sql语句。仅8.2.1.100及以上版本支持。
  • table_data_skewness(data_row record, locatorType "char") 描述:计算指定表中列拼接出的record,对应的桶分布索引。 参数:data_row表示指定表中列拼接出的record,locatorType表示分布规则,当前建议指定'H',按hash分布计算。 返回值类型:smallint 示例: 计算tx表中a列拼接的record,按照hash分布规则对应的桶分布索引。 1 2 3 4 5 6 7 8 9 select a, table_data_skewness(row(a), 'H') from tx; a | table_data_skewness ---+--------------------- 3 | 0 6 | 2 7 | 2 4 | 1 5 | 1 (5 rows)
  • table_distribution(regclass) 描述:查看指定表在各个节点上占用的存储空间。 参数:表示待查询表的表名或OID,表名可以有模式名限定。为regclass类型。 返回值类型:record 使用本函数查询指定表存储分布信息,需要具备指定表的SELECT权限。 table_distribution性能比table_skewness更优,尤其是在大集群大数据量场景下,请优先考虑使用table_distribution函数。 当使用table_distribution并希望直观的看到空间占比时,可使用dnsize/(sum(dnsize) over ())的方式查看出具体的占比情况。
  • gs_table_distribution(schemaname text, tablename text) 描述:快速查看指定表在各个节点上占用的存储空间。 返回值类型:record 表1 gs_table_distribution(schemaname text, tablename text)函数返回字段 名称 类型 描述 schemaname name 模式名称。 tablename name 表名。 relkind character 类型。 i:索引 r:表 nodename name 节点名称。 dnsize bigint 表在该节点上的存储空间大小,单位:字节。 使用本函数查询指定表存储分布信息,需要具备指定表的SELECT权限。 该函数基于PG_RELFILENODE_SIZE系统表上的物理文件存储空间记录,需确保GUC参数use_workload_manager和enable_perm_space必须开启。 性能上,单表查询时,gs_table_distribution函数低于table_distribution函数;在全库表查询时,gs_table_distribution函数大幅度优于table_distribution函数;在大集群大数据量场景下,如果进行全库表表查询,建议优先使用gs_table_distribution函数。
  • table_distribution() 描述:查看当前库中所有表在各节点的存储空间分布情况。 返回值类型:record 使用本函数涉及全库表信息查询,需要具备管理员权限或预置角色gs_role_read_all_stats权限。 当前基于table_distribution()函数,GaussDB(DWS)提供视图PGXC_GET_TABLE_SKEWNESS进行数据倾斜查询,建议在数据库中表数量(小于10000)较少的场景直接使用。
  • gs_table_distribution() 描述:快速查看当前库中所有表在各节点的存储空间分布情况。 返回值类型:record 表2 gs_table_distribution()函数返回字段 名称 类型 描述 schemaname name 模式名称。 tablename name 表名。 relkind character 类型,i: 索引,r: 表。 nodename name 节点名称。 dnsize bigint 表在该节点上的存储空间大小,单位:字节。 使用本函数查询指定表存储分布信息,需要具备指定表的SELECT权限。 该函数基于PG_RELFILENODE_SIZE系统表上的物理文件存储空间记录,需确保GUC参数use_workload_manager和enable_perm_space必须开启。 性能上,单表查询时,gs_table_distribution函数低于table_distribution函数;在全库表查询时,gs_table_distribution函数大幅度优于table_distribution函数;在大集群大数据量场景下,如果进行全库表表查询,建议优先使用gs_table_distribution函数。 基于gs_table_distribution()函数,GaussDB(DWS)自8.2.1集群版本提供了视图PGXC_WLM_TABLE_DISTRIBUTION_SKEWNESS进行数据倾斜查询,建议在数据库中表数量(小于10000)较少的场景直接使用。
  • table_skewness(table_name text, column_name text[, row_num text]) 描述:查看表里某列数据,按hash分布规则,在各节点的占比情况。结果以数据节点上的数据量排序。 参数:table_name为表名;column_name为列名;row_num表示查看当前列所有数据,可缺省,默认为0。非0时,表示抽取指定条数的数据查看占比情况(每次采样结果可能不相同,只保证采集row_num条数据进行占比计算)。 返回值类型:record 示例: 根据tx表中的a列,按hash分布,则在1,2,0编号的DN上分布的数据量分别为7条,2条,1条。 1 2 3 4 5 6 7 SELECT * FROM table_skewness('tx','a'); seqnum | num | ratio --------+-----+---------- 1 | 7 | 70.000% 2 | 2 | 20.000% 0 | 1 | 10.000% (3 row)
  • pgxc_stat_xlog_space() 描述:显示所有主DN上Xlog空间使用信息。 返回值类型:record 函数返回信息如下: 表7 pgxc_stat_xlog_space() 名称 类型 描述 node_name name 节点名称 xlog_files bigint pg_xlog目录下,去除backup、archive_status等子目录,所有识别为xlog文件的数目。 xlog_size bigint pg_xlog目录下,去除backup、archive_status等子目录,所有识别为xlog文件的文件大小之和,单位为MB。 other_size bigint pg_xlog目录下backup、archive_status等子目录文件的大小之和,单位为MB。 示例: 1 2 3 4 5 6 7 8 9 10 SELECT * FROM pgxc_stat_xlog_space(); node_name | xlog_files | xlog_size | other_size --------------+------------+-----------+------------ dn_6001_6002 | 73 | 1168 | 0 dn_6003_6004 | 73 | 1168 | 0 dn_6005_6006 | 73 | 1168 | 0 cn_5003 | 79 | 1264 | 0 cn_5001 | 72 | 1152 | 0 cn_5002 | 73 | 1168 | 0 (6 rows)
  • pg_stat_xlog_space() 描述:显示当前DN上Xlog空间使用信息。 返回值类型:record 函数返回信息如下: 表6 pg_stat_xlog_space() 名称 类型 描述 xlog_files bigint pg_xlog目录下,去除backup、archive_status等子目录,所有识别为xlog文件的数目。 xlog_size bigint pg_xlog目录下,去除backup、archive_status等子目录,所有识别为xlog文件的文件大小之和,单位为MB。 other_size bigint pg_xlog目录下backup、archive_status等子目录文件的大小之和,单位为MB。 示例: 1 2 3 4 5 SELECT * FROM pg_stat_xlog_space(); xlog_files | xlog_size | other_size ------------+-----------+------------ 79 | 1264 | 0 (1 row)
  • pg_stat_get_wal_receiver() 描述:显示当前DN上所有的WAL复制接收线程的统计信息。 返回值类型:record 函数返回信息如下: 表4 pg_stat_get_wal_receiver() 名称 类型 描述 receiver_pid integer 当前receiver的pid local_role text 本地的角色 peer_role text 远端的角色 peer_state text 远端的状态 state text 当前receiver的复制状态 sender_sent_location text 发送端发送的LSN位置 sender_write_location text 发送端write的LSN位置 sender_flush_location text 发送端flush的LSN位置 sender_replay_location text 发送端replay的LSN位置 receiver_received_location text 接收端received的LSN位置 receiver_write_location text 接收端write的LSN位置 receiver_flush_location text 接收端flush的LSN位置 receiver_replay_location text 接收端replay的LSN位置 sync_percent text 同步百分比 channel text WALReceiver的信道信息
  • pg_stat_get_stream_replications() 描述:显示当前DN上所有的复制统计信息。 返回值类型:record 函数返回信息如下: 表5 pg_stat_get_stream_replications() 名称 类型 描述 local_role text 本地的角色 static_connections integer 连接统计 db_state text 数据库状态 detail_information text 详细信息 示例: 1 2 3 4 5 SELECT * FROM pg_stat_get_stream_replications(); local_role | static_connections | db_state | detail_information ------------+--------------------+----------+-------------------- Normal | 0 | Normal | Normal (1 row)
  • pg_stat_get_wal_senders() 描述:显示当前DN上所有的WAL复制发送线程的统计信息。 返回值类型:record 函数返回信息如下: 表3 pg_stat_get_wal_senders()字段 名称 类型 描述 pid bigint 线程pid sender_pid integer 当前sender的pid local_role text 本地的角色 peer_role text 对端的角色 peer_state text 对端的状态 state text 当前sender的复制状态 catchup_start timestamp with time zone catchup启动的时间 catchup_end timestamp with time zone catchup结束的时间 sender_sent_location text 发送端发送的LSN位置 sender_write_location text 发送端write的LSN位置 sender_flush_location text 发送端flush的LSN位置 sender_replay_location text 发送端replay的LSN位置 receiver_received_location text 接收端received的LSN位置 receiver_write_location text 接收端write的LSN位置 receiver_flush_location text 接收端flush的LSN位置 receiver_replay_location text 接收端replay的LSN位置 sync_percent text 同步百分比 sync_state text 同步状态(异步复制,同步复制,还是潜在同步者) sync_priority integer 同步复制的优先级(0表示异步) sync_most_available text 在备机同步失败时,是否阻塞主机 channel text WALSender的信道信息
  • pg_logical_slot_get_changes('slot_name', 'LSN', upto_nchanges, 'options_name', 'options_value') 描述:解码并推进流复制槽。 参数说明: 与pg_logical_slot_peek_changes一致,详细内容请参见pg_logical_slot_peek_changes('slot_name', 'LSN', upto_nchanges, 'options_name', 'options_value')。
  • pg_replication_slot_advance ('slot_name', 'LSN') 描述:直接推进流复制槽到指定LSN,不输出解码结果。 参数说明: slot_name 流复制槽名称。 取值范围:字符串,不支持除字母,数字,以及(_?-.)以外的字符。 LSN 推进到的日志LSN位置,下次解码时只会输出提交位置比该LSN大的事务结果。如果输入的LSN比当前流复制槽记录的推进位置还要小,则直接返回;如果输入的LSN比当前最新物理日志LSN还要大,则推进到当前最新物理日志LSN。 取值范围:字符串(LSN,格式为xlogid/xrecoff)。 返回值类型:name, text 备注:返回值分别对应slot_name和实际推进至的LSN。
  • pg_stat_get_data_senders() 描述:显示当前DN上所有的数据页复制发送线程的统计信息。 返回值类型:record 函数返回信息如下: 表2 pg_stat_get_data_senders()字段 名称 类型 描述 pid bigint 线程pid sender_pid integer 当前sender的pid local_role text 本地的角色 peer_role text 对端的角色 state text 当前sender的复制状态 catchup_start timestamp with time zone catchup启动的时间 catchup_end timestamp with time zone catchup结束的时间 queue_size text 数据队列大小 queue_lower_tail text 数据队列尾1位置 queue_header text 数据队列头位置 queue_upper_tail text 数据队列尾2位置 send_position text 发送端发送的位置 receive_position text 接收端接收的位置 catchup_type text catchup方式为全量还是增量 catchup_bcm_filename text catchup当前执行的bcm文件 catchup_bcm_finished integer catchup已操作完成的bcm文件数量 catchup_bcm_total integer catchup总共需要操作的bcm文件数量 catchup_percent text catchup已经操作完成的百分比 catchup_remaining_time text catchup预估剩余时间
  • pg_logical_slot_peek_changes('slot_name', 'LSN', upto_nchanges, 'options_name', 'options_value') 描述:解码并不推进流复制槽(下次解码可以再次获取本次解出的数据)。 参数说明: slot_name 流复制槽名称。 取值范围:字符串,不支持除字母,数字,以及(_?-.)以外的字符。 LSN 日志的LSN,表示只解码小于等于此LSN的日志。 取值范围:字符串(LSN,格式为xlogid/xrecoff),如'1/2AAFC60'。为NULL时表示不对解码截止的日志位置做限制。 upto_nchanges 解码条数(包含begin和commit)。假设一共有三条事务,分别包含3、5、7条记录,如果upto_nchanges为4,那么会解码出前两个事务共8条记录。解码完第二条事务时发现解码条数记录大于等于upto_nchanges,会停止解码。 取值范围:非负整数。 LSN和upto_nchanges中任一参数达到限制,解码都会结束。 options:此项为可选参数。 include-xids 解码出的data列是否包含xid信息。 取值范围:0或1,默认值为1。 0:设为0时,解码出的data列不包含xid信息。 1:设为1时,解码出的data列包含xid信息。 skip-empty-xacts 解码时是否忽略空事务信息。 取值范围:0或1,默认值为0。 0:设为0时,解码时不忽略空事务信息。 1:设为1时,解码时会忽略空事务信息。 include-timestamp 解码信息是否包含commit时间戳。 取值范围:0或1,默认值为0。 0:设为0时,解码信息不包含commit时间戳。 1:设为1时,解码信息包含commit时间戳。 返回值类型:text, uint, text 备注:函数返回解码结果,每一条解码结果包含三列,对应上述返回值类型,分别表示LSN位置、xid和解码内容。
  • pg_get_replication_slots() 描述:显示当前DN上所有的复制槽信息。 返回值类型:record 函数返回信息如下: 表1 pg_get_replication_slots()字段 名称 类型 描述 slot_name text 复制槽的名称 plugin name 逻辑复制槽对应的输出插件名 slot_type text 复制槽的类型 datoid oid 复制槽的数据库OID active boolean 复制槽是否为激活状态 xmin xid 复制槽事务标识 catalog_xmin text 逻辑复制槽对应的最早解码事务标识 restart_lsn text 复制槽的Xlog文件信息 dummy_standby boolean 复制槽是否为从备 示例: 1 2 3 4 5 SELECT * FROM pg_get_replication_slots(); slot_name | plugin | slot_type | datoid | active | xmin | catalog_xmin | restart_lsn | dummy_standby -----------------+--------+-----------+--------+--------+------+--------------+-------------------+--------------- gs_roach_common | | physical | 0 | f | | 602861775 | FFFFFFFF/FFFFFFFF | f (1 row)
共100000条