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

其它函数

  • pgxc_pool_check()

    描述:检查连接池中缓存的连接数据是否与pgxc_node一致。

    返回值类型:Boolean

  • pgxc_pool_reload()

    描述:更新连接池中缓存的连接信息。

    返回值类型:Boolean

  • reload_active_coordinator()

    描述:对所有存活的CN,更新连接池中缓存的连接信息。

    返回值类型:void

  • pgxc_lock_for_backup()

    描述:为备份操作给集群加锁,这些备份是为在新增节点上做恢复。

    返回值类型:Boolean

    pgxc_lock_for_backup是在使用gs_dump或gs_dumpall工具备份集群前,用来给集群加锁的。当给集群加锁后,不允许有改变系统结构的操作。该函数不影响DML语句。

  • pg_pool_validate(clear bool, node_name text)

    描述:显示CN到节点node_name之间pooler中无效连接,当clear为true时清理无效连接。

    返回值类型:record

  • pgxc_pool_connection_status()

    描述:检查pooler连接状态是否正常。

    返回值类型:boolean

  • pg_nodes_memory()

    描述:查看所有节点的内存占用。

    返回值类型:record

  • table_skewness(text)

    描述:查看表数据在所有节点的占比。

    参数:表示待查询表的表名,为text类型。

    返回值类型:record

  • table_skewness(text, text, text)

    描述:查看表数据指定列在所有节点的占比。

    参数:表示待查询表的表名、指定列名、指定的表的记录数(默认值为0,查询所有记录),都为text类型。

    返回值类型:record

    返回值说明:节点编号,指定列的数据行数,当前节点数据量相对总数据量的占比。

    示例:

    返回't'表'a'字段前5行数据在节点上的分布。
    openGauss=# select table_skewness('t', 'a',5);
     table_skewness
    ----------------
     (1,3,60.000%)
     (2,2,40.000%)
    (2 rows)
    
    返回't'表'a'字段所有数据在节点上的分布。
    openGauss=# select table_skewness('t', 'a');
     table_skewness
    ----------------
     (1,7,70.000%)
     (2,2,20.000%)
     (0,1,10.000%)
    (3 rows)
  • table_skewness_with_schema(text, text)

    描述:查看表数据在所有节点的占比,与table_skewness(text)作用相同。

    参数:表示待查询表的schema名称和表名,为text类型。

    返回值类型:record

  • table_data_skewness(colrecord, type)

    描述:查看表数据所在节点。

    参数说明:

    colrecord:表示待查询表的列名记录,为record类型。

    type:hash分布类型

    返回值类型:smallint

    示例:

    openGauss=# select table_data_skewness(row(index), 'R') from test1;
     table_data_skewness
    ---------------------
                       4
                       3
                       1
                       2
    (4 rows)
  • table_distribution(schemaname text, tablename text)

    描述:查看指定表在各个节点上占用的存储空间。

    参数:表示待查询表的模式名和表名,均为text类型。

    返回值类型:record

    • 使用本函数查询指定表存储分布信息,需要具备指定表的SELECT权限。
    • table_distribution性能比table_skewness更优,尤其是在大数据量场景下,请优先考虑使用table_distribution函数。
    • 当使用table_distribution并希望直观的看到空间占比时,可使用dnsize/(sum(dnsize) over ())的方式查看出具体的占比情况。
  • table_distribution()

    描述:查看当前库中所有表在各节点的存储空间分布情况。

    返回值类型:record

    • 使用本函数涉及全库表信息查询,需要具备管理员权限。
    • 当前基于table_distribution()函数,GaussDB提供视图PGXC_GET_TABLE_SKEWNESS进行数据倾斜查询,建议在数据库中表数量(小于10000)较少的场景直接使用。
  • plan_seed

    描述:获取前一次查询语句的seed值(内部使用)。

    返回值类型:int

  • pg_stat_get_env

    描述:获取当前节点的环境变量信息,仅sysadmin和monitor admin可以访问。

    返回值类型:record

    示例:

    openGauss=# select pg_stat_get_env();
                                                                                  pg_stat_get_env
    ---------------------------------------------------------------------------------------------------------------------------------------
     (coordinator1,localhost,144773,49100,/data1/GaussDB_Kernel_TRUNK/install,/data1/GaussDB_Kernel_TRUNK/install/data/coordinator1,pg_log)
    (1 row)
  • pg_catalog.plancache_clean()

    描述:清理节点上无人使用的全局计划缓存。

    返回值类型:bool

  • pg_stat_get_thread

    描述:提供当前节点下线程的状态信息,sysadmin和monitor admin用户可以查看所有线程的信息,普通用户只能查看本用户的线程信息。

    返回值类型:record

  • pgxc_get_os_threads

    描述:提供整个集群中所有正常节点下的线程状态信息。

    返回值类型:record

  • pg_stat_get_sql_count

    描述:提供当前节点中用户执行的SELECT/UPDATE/INSERT/DELETE/MERGE INTO语句的计数结果,sysadmin和monitor admin用户可以查看所有用户的信息,普通用户只能查看本用户的统计信息。

    返回值类型:record

  • pgxc_get_sql_count

    描述:提供整个集群所有节点中所有用户执行的SELECT/UPDATE/INSERT/DELETE/MERGE INTO语句的计数结果。

    返回值类型:record

  • pgxc_get_node_env

    描述:提供获取集群中所有节点的环境变量信息。

    返回值类型:record

  • pgxc_disaster_read_set(text)

    描述:设置灾备集群的节点信息到ETCD上。仅灾备集群可用,仅初始用户可调用。

    返回值类型:Boolean

  • pgxc_disaster_read_init

    描述:初始化灾备可读的资源和状态信息。仅灾备集群可用,仅初始用户可调用。

    返回值类型:Boolean

  • pgxc_disaster_read_clear

    描述:清理灾备可读的资源和状态信息。仅灾备集群可用,仅初始用户可调用。

    返回值类型:Boolean

  • pgxc_disaster_read_status

    描述:提供灾备集群的节点信息,仅灾备集群可用。

    返回值类型:record

  • gs_switch_relfilenode

    描述:交换两个表或分区的元信息(重分布工具内部使用,用户直接使用会有错误信息提示)。

    返回值类型:int

  • pg_catalog.plancache_clean()

    描述:清理当前节点上无人使用的全局计划缓存。

    返回值类型:boolean

  • DBE_PERF.global_plancache_clean()

    描述:清理所有节点上无人使用的全局计划缓存。

    返回值类型:Boolean

  • copy_error_log_create()

    描述:创建COPY FROM容错机制所需要的错误表(public.pgxc_copy_error_log)。

    返回值类型:Boolean

    • 此函数会尝试创建public.pgxc_copy_error_log表,表的详细信息请参见表1
    • 在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默认为off)。
    • 此函数自身权限为Sysadmin及以上(与错误表、COPY权限一致)。
    • 若创建前public.pgxc_copy_error_log表已存在或者copy_error_log_relname_idx索引已存在,则此函数会报错回滚。
    表1 错误表public.pgxc_copy_error_log信息

    列名称

    类型

    描述

    relname

    character varying

    表名称。以模式名.表名形式显示。

    begintime

    timestamp with time zone

    出现数据格式错误的时间。

    filename

    character varying

    出现数据格式错误的数据源文件名。

    lineno

    bigint

    在数据源文件中,出现数据格式错误的行号。

    rawrecord

    text

    在数据源文件中,出现数据格式错误的原始记录。

    detail

    text

    详细错误信息。

  • pg_stat_get_data_senders()

    描述:提供当前活跃的数据复制发送线程的详细信息。

    返回值类型:record

  • textlen()

    描述:提供查询text的逻辑长度的方法。

    返回值类型:int

  • threadpool_status()

    描述:显示线程池中工作线程及会话的状态信息。

    返回值类型:record

  • get_local_active_session()

    描述:提供当前节点保存在内存中的历史活跃session状态的采样记录,sysadmin和monitor admin权限能查看当前节点所有的历史活跃session记录,普通用户查看本会话的历史活跃session记录。

    返回值类型:record

  • dbe_perf.get_global_active_session()

    描述:提供所有节点保存在内存中的历史活跃session状态的采样记录。

    返回值类型:record

  • dbe_perf.get_global_gs_asp(timestamp,timestamp)

    描述:提供所有节点保存在系统表gs_asp中的历史活跃session状态的采样记录。

    返回值类型:record

  • get_wait_event_info()

    描述:提供wait event事件的具体信息。

    返回值类型:record

  • dbe_perf.get_datanode_active_session(text)

    描述:提供从CN查询DN上保存在内存中的历史活跃session状态的采样记录。

    返回值类型:record

    备注:该函数查询目标DN上local_active_session视图中记录并和所有CN上的local_active_session中的记录进行匹配获取query string,所以会占用大量的内存。

  • dbe_perf.get_datanode_active_session_hist(text,timestamp,timestamp)

    描述:提供从CN查询DN上保存在系统表gs_asp中的历史活跃session状态的采样记录。

    返回值类型:record

    备注:该函数查询目标DN上指定时间段的gs_asp记录,如果指定时间段过长造成查询的记录过多,会耗费大量时间。

  • generate_wdr_report(bigint, bigint, cstring, cstring,cstring)

    描述:基于两个snapshot生成系统诊断报告,默认初始化用户或监控管理员用户可以访问。只可在系统库中查询到结果,用户库中无法查询。

    返回值类型:text

    表2 generate_wdr_report参数说明

    参数

    说明

    取值范围

    begin_snap_id

    生成某段时间内性能诊断报告的开始snapshotid。

    -

    end_snap_id

    结束snapshot的id,默认end_snap_id大于begin_snap_id。

    -

    report_type

    指定生成report的类型。

    • summary
    • detail
    • all,即同时包含summary和detail。

    report_scope

    指定生成report的范围。

    • cluster:数据库级别的信息
    • node:节点级别的信息。

    node_name

    • “report_scope”指定为“node”时,需要把该参数指定为对应节点的名称。
    • “report_scope”“cluster”时,该参数可以省略,或指定为NULL。
    • node:GaussDB中的节点名称。
    • cluster:省略/空/NULL。
  • create_wdr_snapshot()

    描述:手工生成系统诊断快照,该函数需要sysadmin权限,且只能在CCN上执行。

    返回值类型:text

  • kill_snapshot()

    描述:kill后台的WDR snapshot线程,调用该函数的用户需要具有SYSADMIN权限或具有REPLICATION权限或继承了内置角色gs_role_replication的权限。

    返回值类型:void

  • capture_view_to_json(text,integer)

    描述:将视图的结果存入GUC: perf_directory所指定的目录,如果is_crossdb为1,则表示对于所有的database都会访问一次view;如果is_crossdb为0,则表示仅对当前database进行一次视图访问。该函数只有sysadmin和monitor admin用户可以执行。

    返回值类型:int

  • reset_unique_sql(text,text,bigint)

    描述:用来清理CN/DN内存中的Unique SQL(需要sysadmin/monitor admin权限)。

    返回值类型:Boolean

    表3 reset_unique_sql参数说明

    参数

    类型

    描述

    scope

    text

    清理范围类型:

    'GLOBAL' - 清理所有的CN/DN节点,如果是'GLOBAL',则只可以为CN节点执行此函数。

    'LOCAL' - 清理本节点。

    clean_type

    text

    'BY_USERID' - 按用户ID来进行清理Unique SQL。

    'BY_CNID' - 按CN的ID来进行清理Unique SQL。

    'ALL' - 全部清理。

    clean_value

    int8

    具体清理type对应的清理值。如果第二个参数为ALL,则第三个参数不起作用,可以取任意值。

  • wdr_xdb_query(db_name_str text, query text)

    描述:提供本地跨数据库执行query的能力。例如: 在连接到testdb库时, 访问test库下的表。只有系统管理员才有权限执行。

    select col1 from wdr_xdb_query('dbname=test','select col1 from t1') as dd(col1 int);

    返回值类型:record

  • pg_wlm_jump_queue(pid int)

    描述:调整任务到CN队列的最前端。

    返回值类型:boolean

    • true:成功。
    • false:失败。
  • gs_wlm_switch_cgroup(pid int, cgroup text)

    描述:调整作业的优先级到新控制组。

    返回值类型:boolean

    • true:成功。
    • false:失败。
  • pv_session_memctx_detail(threadid tid, MemoryContextName text)

    描述:将线程tid的MemoryContextName内存上下文信息记录到“$GAUSSLOG/pg_log/${node_name}/dumpmem”目录下的“threadid_timestamp.log”文件中。其中threadid可通过查询表PV_SESSION_MEMORY_DETAIL中的sessid字段获得。在正式发布的版本中仅接受MemoryContextName为空串(两个单引号表示输入为空串,即'')的输入,此时会记录所有的内存上下文信息,否则不会有任何操作。该函数需要管理员权限的用户才能执行。

    返回值类型:boolean

    • true:成功。
    • false:失败。
  • pg_shared_memctx_detail(MemoryContextName text)

    描述:将MemoryContextName内存上下文信息记录到“$GAUSSLOG/pg_log/${node_name}/dumpmem”目录下的“threadid_timestamp.log”文件中。在正式发布版本中调用该函数不会有任何操作。该函数需要管理员权限的用户才能执行。

    返回值类型:boolean

    • true:成功。
    • false:失败。
  • local_bgwriter_stat()

    描述:显示本实例的bgwriter线程刷页信息,候选buffer链中页面个数,buffer淘汰信息。

    返回值类型:record

  • local_candidate_stat()

    描述:显示本实例的候选buffer链中页面个数,buffer淘汰信息,包含normal buffer pool和segment buffer pool。

    返回值类型:record

  • local_ckpt_stat()

    描述:显示本实例的检查点信息和各类日志刷页情况。

    返回值类型:record

  • local_double_write_stat()

    描述:显示本实例的双写文件的情况。

    返回值类型:record
    表4 local_double_write_stat参数说明

    参数

    类型

    描述

    node_name

    text

    实例名称。

    curr_dwn

    int8

    当前双写文件的序列号。

    curr_start_page

    int8

    当前双写文件恢复起始页面。

    file_trunc_num

    int8

    当前双写文件复用的次数。

    file_reset_num

    int8

    当前双写文件写满后发生重置的次数。

    total_writes

    int8

    当前双写文件总的I/O次数。

    low_threshold_writes

    int8

    低效率写双写文件的I/O次数(一次I/O刷页数量少于16页面)。

    high_threshold_writes

    int8

    高效率写双写文件的I/O次数(一次I/O刷页数量多于一批,421个页面)。

    total_pages

    int8

    当前刷页到双写文件区的总的页面个数。

    low_threshold_pages

    int8

    低效率刷页的页面个数。

    high_threshold_pages

    int8

    高效率刷页的页面个数。

    file_id

    int8

    当前双写文件的id号

  • local_single_flush_dw_stat()

    描述:显示本实例的单页面淘汰双写文件的情况。

    返回值类型:record

  • local_pagewriter_stat()

    描述:显示本实例的刷页信息和检查点信息。

    返回值类型:record

  • local_redo_stat()

    描述:显示本实例的备机的当前回放状态。

    返回值类型:record

    备注:返回的回放状态主要包括当前回放位置,回放最小恢复点位置等信息。

  • local_recovery_status()

    描述:显示本实例的主机和备机的日志流控信息。

    返回值类型:record

  • local_rto_status()

    描述:显示本实例的主机和备机的日志流控信息。

    返回值类型:record

  • gs_cgroup_map_ng_conf(group name)

    描述:读取指定Node group的cgroup配置文件。该函数只有sysadmin权限的用户可以执行。

    返回值类型:record

  • pgxc_cgroup_map_ng_conf(group name)

    描述:在所有节点上读取指定Node group的cgroup配置文件。该函数只有sysadmin权限的用户可以执行。

    返回值类型:bool

  • gs_wlm_switch_cgroup(sess_id int8, cgroup name)

    描述:切换指定会话的控制组。

    返回值类型:record

  • comm_client_info()

    描述:用于查询单个节点活跃的客户端连接信息,返回结果解释见COMM_CLIENT_INFO

    返回值类型:setof record

  • pg_get_flush_lsn()

    描述:返回当前节点flush的xLog位置。

    返回值类型:text

  • pg_get_sync_flush_lsn()

    描述:返回当前节点多数派flush的xLog位置。

    返回值类型:text

  • pgxc_wlm_rebuild_user_resource_pool()

    描述:重新构建用户及资源池缓存信息。需要系统管理员权限才可以执行该函数。

    返回值类型:boolean

  • locktag_decode(locktag text)

    描述:从locktag中解析锁的具体信息。

    示例:

    openGauss=# select locktag_decode('271b:0:0:0:0:6');
                   locktag_decode
    ---------------------------------------------
     locktype:transactionid, transactionid:10011
    (1 row)

    返回值类型:text

  • disable_conn(disconn_mode text, host text, port integer)

    描述:CM Agent处理CM Server下发的命令,在DN进行选主时设置该DN拒绝连接所有DN、强制连接某个DN或轮询连接所有DN。只有初始化用户和系统管理员才可以调用该函数。

    返回值类型:void

    表5 disable_conn参数说明

    参数

    类型

    描述

    disconn_mode

    text

    DN连接模式:

    • 'prohibit_connection' - 拒绝连接所有DN。
    • 'specify_connection' - 强制连接某个DN。
    • 'polling_connection' - 轮询连接所有DN。

    host

    text

    DN的IP。

    port

    integer

    DN的端口号。

  • dbe_perf.get_global_full_sql_by_timestamp(start_timestamp timestamp with time zone, end_timestamp timestamp with time zone)

    描述:获取集群级的全量SQL(Full SQL)信息。只可在系统库中查询到结果,用户库中无法查询。

    返回值类型:record

    表6 dbe_perf.get_global_full_sql_by_timestamp参数说明

    参数

    类型

    描述

    start_timestamp

    timestamp with time zone

    SQL启动时间范围的开始时间点。

    end_timestamp

    timestamp with time zone

    SQL启动时间范围的结束时间点。

  • dbe_perf.get_global_slow_sql_by_timestamp(start_timestamp timestamp with time zone, end_timestamp timestamp with time zone)

    描述:获取集群级的慢SQL(Slow SQL)信息。只可在系统库中查询到结果,用户库中无法查询。

    返回值类型:record

    表7 dbe_perf.get_global_slow_sql_by_timestamp参数说明

    参数

    类型

    描述

    start_timestamp

    timestamp with time zone

    SQL启动时间范围的开始时间点。

    end_timestamp

    timestamp with time zone

    SQL启动时间范围的结束时间点。

  • statement_detail_decode(detail text, format text, pretty boolean)

    描述:解析全量/慢SQL语句中的details字段的信息。只可在系统库中查询到结果,用户库中无法查询。

    返回值类型:text

    表8 statement_detail_decode参数说明

    参数

    类型

    描述

    detail

    text

    SQL语句产生的事件的集合(不可读)。

    format

    text

    解析输出格式,取值为plaintext。

    pretty

    boolean

    当format为plaintext时,是否以优雅的格式展示:

    • true表示通过“\n”分隔事件。
    • false表示通过“,”分隔事件。
  • pgxc_get_csn(tid)

    描述:返回给定的事务id对应的事务提交序号(CSN)。

    返回值类型:int8

  • get_global_user_transaction()

    描述:返回所有节点上各用户的事务相关信息。

    返回值类型:node_name name, usename name, commit_counter bigint, rollback_counter bigint, resp_min bigint, resp_max bigint, resp_avg bigint, resp_total bigint, bg_commit_counter bigint, bg_rollback_counter bigint, bg_resp_min bigint, bg_resp_max bigint, bg_resp_avg bigint, bg_resp_total bigint

  • pg_collation_for

    描述:返回入参字符串对应的排序规则

    参数:any(如果是常量必须进行显式类型转换)

    返回值类型:text

  • pgxc_unlock_for_sp_database(name Name)

    描述:释放指定数据库锁。

    参数:数据库名

    返回值类型:布尔

  • pgxc_lock_for_sp_database(name Name)

    描述:对指定的数据库加锁。

    参数:数据库名

    返回值类型:布尔

  • pgxc_unlock_for_transfer(name Name)

    描述:释放用于数据传输(数据重分布)锁。

    参数:数据库名

    返回值类型:布尔

  • pgxc_lock_for_transfer(name Name)

    描述:对数据库枷锁,用于数据传输(数据重分布)。

    参数:数据库名

    返回值类型:布尔

  • gs_catalog_attribute_records()

    描述:对于指定的系统表oid,返回该系统表对应的各个字段的定义。仅支持oid小于10000的普通系统表(不支持索引、toast表等)。

    参数:系统表oid

    返回值类型:record

  • dynamic_func_control(scope text, function_name text, action text, "{params}" text[])

    描述:动态开启内置的功能,当前仅支持动态开启全量SQL。

    返回值类型:record

    表9 dynamic_func_control参数说明

    参数

    类型

    描述

    scope

    text

    动态开启功能的范围,当前仅支持'GLOBAL/LOCAL'。

    function_name

    text

    功能的名称,当前仅支持'STMT'。

    action

    text

    当function_name为'STMT'时,action仅支持TRACK/UNTRACK/LIST/CLEAN:
    • TRACK - 开始记录归一化SQL的全量SQL信息。
    • UNTRACK - 取消记录归一化SQL的全量SQL信息。
    • LIST - 列取当前TRACK的归一化SQL的信息。
    • CLEAN - 清理记录当前归一化SQL的信息。

    params

    text[]

    当function_name为'STMT'时,对应不同的action时,对应的params设置如下:
    • TRACK - '{"归一化SQLID", "L0/L1/L2"}'
    • UNTRACK - '{"归一化SQLID"}'
    • LIST - '{}'
    • CLEAN - '{}'
  • gs_parse_page_bypath(path text, blocknum bigint, relation_type text, read_memory boolean)

    描述:用于解析指定表页面,并返回存放解析内容的路径。

    返回值类型:text

    备注:必须是系统管理员或运维管理员才能执行此函数。

    表10 gs_parse_page_bypath参数说明

    参数

    类型

    描述

    path

    text

    • 对于普通表或段页式的普通表,相对路径为:tablespace name/database oid/表的relfilenode(物理文件名);例如:base/16603/16394
    • 对于段页式的hashbucket表,相对路径为:tablespace name/database oid/Segment Head的逻辑页号_b(bucketid)。例如:base/16603/16394_b1437
    • 表文件的相对路径可以通过pg_relation_filepath(table_name text)查找。分区表的路径可以查看pg_partition系统表和调用pg_partition_filepath(partition_oid)。
    • 合法的path格式列举:
      • global/relNode
      • base/dbNode/relNode
      • pg_tblspc/spcNode/version_dir/dbNode/relNode

        对于hashbucket表,在此格式基础上,路径末尾加上_b段页式的逻辑页号。

    blocknum

    bigint

    • -1:所有block的信息(强制从磁盘解析)。
    • 0~MaxBlockNumber:对应block的信息。

    relation_type

    text

    • heap(astore表)
    • btree(BTree索引)
    • segment(段页式)

    read_memory

    boolean

    • false,从磁盘文件解析;
    • true,首先尝试从共享缓冲区中解析该页面;如果共享缓冲区中不存在,则从磁盘文件解析。
  • gs_xlogdump_lsn(start_lsn text, end_lsn text)

    描述:用于解析指定lsn范围之内的xLog日志,并返回存放解析内容的路径。可以通过pg_current_xlog_location()获取当前xLog位置。

    参数:LSN起始位置,LSN结束位置

    返回值类型:text

    备注:必须是系统管理员或运维管理员才能执行此函数。

  • gs_xlogdump_xid(c_xid xid)

    描述:用于解析指定xid的xLog日志,并返回存放解析内容的路径。可以通过txid_current()获取当前事务ID。

    参数:事务ID

    返回值类型:text

    备注:必须是系统管理员或运维管理员才能执行此函数。

  • gs_xlogdump_tablepath(path text, blocknum bigint, relation_type text)

    描述:用于解析指定表页面对应的日志,并返回存放解析内容的路径。

    返回值类型:text

    备注:必须是系统管理员或运维管理员才能执行此函数。

    表11 gs_xlogdump_tablepath参数说明

    参数

    类型

    描述

    path

    text

    • 对于普通表或段页式的普通表,相对路径为:tablespace name/database oid/表的relfilenode(物理文件名)。例如:base/16603/16394。
    • 对于段页式的hashbucket表,相对路径为:tablespace name/database oid/Segment Head的逻辑页号_b(bucketid)。例如:base/16603/16394_b1437
    • 表文件的相对路径可以通过pg_relation_filepath(table_name text)查找。分区表的路径可以查看pg_partition系统表和调用pg_partition_filepath(partition_oid)。
    • 合法的path格式列举:
      • global/relNode
      • base/dbNode/relNode
      • pg_tblspc/spcNode/version_dir/dbNode/relNode

        对于hashbucket表,在此格式基础上,路径末尾加上_b段页式的逻辑页号。

    blocknum

    bigint

    • -1:所有block的信息(强制从磁盘解析)。
    • 0~MaxBlockNumber:对应block的信息。

    relation_type

    text

    • heap(astore 表)
    • btree(BTree 索引)
    • segment(段页式)
  • gs_xlogdump_parsepage_tablepath(path text, blocknum bigint, relation_type text, read_memory boolean)

    描述:用于解析指定表页面和表页面对应的日志,并返回存放解析内容的路径。可以看做一次执行gs_parse_page_bypath和gs_xlogdump_tablepath。该函数执行的前置条件是表文件存在。如果想查看已删除的表的相关日志,请直接调用gs_xlogdump_tablepath。

    返回值类型:text

    备注:必须是系统管理员或运维管理员才能执行此函数。

    表12 gs_xlogdump_parsepage_tablepath参数说明

    参数

    类型

    描述

    path

    text

    • 对于普通表或段页式的普通表,相对路径为:tablespace name/database oid/表的relfilenode(物理文件名);例如:base/16603/16394
    • 对于段页式的hashbucket表,相对路径为:tablespace name/database oid/Segment Head的逻辑页号_b(bucketid)。例如:base/16603/16394_b1437
    • 表文件的相对路径可以通过pg_relation_filepath(table_name text)查找。分区表的路径可以查看pg_partition系统表和调用pg_partition_filepath(partition_oid)。
    • 合法的path格式列举:
      • global/relNode
      • base/dbNode/relNode
      • pg_tblspc/spcNode/version_dir/dbNode/relNode

        对于hashbucket表,在此格式基础上,路径末尾加上_b段页式的逻辑页号。

    blocknum

    bigint

    • -1:所有block的信息(强制从磁盘解析)。
    • 0~MaxBlockNumber:对应block的信息。

    relation_type

    text

    • heap(astore 表)
    • btree(BTree 索引)
    • segment(段页式)

    read_memory

    boolean

    • false,从磁盘文件解析;
    • true,首先尝试从共享缓冲区中解析该页面;如果共享缓冲区中不存在,则从磁盘文件解析。
  • gs_index_recycle_queue(Oid oid, int type, uint32 blkno)

    描述:用于解析UBtree索引回收队列信息。

    返回值类型:record

    表13 gs_index_recycle_queue参数说明

    参数

    类型

    描述

    oid

    Oid

    • 索引文件relfilenode,可以通过select relfilenode from pg_class where relname='name'查询,其中name表示对应的索引文件名字

    type

    int

    • 0,表示解析整个待回收队列
    • 1,表示解析整个空页队列
    • 2,表示解析单个页面

    blkno

    uint32

    回收队列页面编号,该参数只有在type=2的时候有效,blkno有效取值范围为1~4294967294。

    该函数功能在分布式版本上不支持,有报错提示。

  • gs_stat_wal_entrytable(int64 idx)

    描述:用于输出xLog中预写日志插入状态表的内容。

    返回值类型:record

    表14 gs_stat_wal_entrytable参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    idx

    int64

    • -1:查询数组所有元素。
    • 0-最大值:具体某个数组元素内容。

    输出参数

    idx

    uint64

    记录对应数组中的下标

    输出参数

    endlsn

    uint64

    记录的LSN标签

    输出参数

    lrc

    int32

    记录对应的LRC

    输出参数

    status

    uint32

    标识当前entry对应的xLog是否已经完全拷贝到wal buffer中

    • 0:非COPIED
    • 1: COPIED
  • gs_walwriter_flush_position()

    描述:输出预写日志的刷新位置。

    返回值类型:record

    表15 gs_walwriter_flush_position参数说明

    参数类型

    参数名

    类型

    描述

    输出参数

    last_flush_status_entry

    int32

    xLog flush上一个刷盘的tblEntry下标索引。

    输出参数

    last_scanned_lrc

    int32

    xLog flush上一次扫描到的最后一个tblEntry记录的LRC。

    输出参数

    curr_lrc

    int32

    WALInsertStatusEntry状态表中LRC最新的使用情况,该LRC表示下一个xLog记录写入时在WALInsertStatusEntry对应的LRC值。

    输出参数

    curr_byte_pos

    uint64

    xLog记录写入WAL 文件,最新分配的位置,下一个xLog记录插入点。

    输出参数

    prev_byte_size

    uint32

    上一个xLog记录的长度。

    输出参数

    flush_result

    uint64

    当前全局xLog刷盘的位置。

    输出参数

    send_result

    uint64

    当前主机上xLog发送位置。

    输出参数

    shm_rqst_write_pos

    uint64

    共享内存中记录的XLogCtl中LogwrtRqst请求的write位置。

    输出参数

    shm_rqst_flush_pos

    uint64

    共享内存中记录的XLogCtl中LogwrtRqst请求的flush位置。

    输出参数

    shm_result_write_pos

    uint64

    共享内存中记录的XLogCtl中LogwrtResult的write位置。

    输出参数

    shm_result_flush_pos

    uint64

    共享内存中记录的XLogCtl中LogwrtResult的flush位置。

    输出参数

    curr_time

    text

    当前时间。

  • gs_walwriter_flush_stat(int operation)

    描述:用于统计预写日志write与sync的次数频率与数据量,以及xLog文件的信息。

    返回值类型:record

    表16 gs_walwriter_flush_stat参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    operation

    int

    • -1: 关闭统计开关(默认状态为关闭)。
    • 0:打开统计开关。
    • 1:查询统计信息。
    • 2:重置统计信息。

    输出参数

    write_times

    uint64

    xLog调用write接口的次数

    输出参数

    sync_times

    uint64

    xLog调用sync接口次数

    输出参数

    total_xlog_sync_bytes

    uint64

    Backend线程请求写入xLog总量统计值

    输出参数

    total_actual_xlog_sync_bytes

    uint64

    调用sync接口实际刷盘的xLog总量统计值

    输出参数

    avg_write_bytes

    uint32

    每次调用XLogWrite接口请求写的xLog量

    输出参数

    avg_actual_write_bytes

    uint32

    实际每次调用write接口写的xLog量

    输出参数

    avg_sync_bytes

    uint32

    平均每次请求sync的xLog量

    输出参数

    avg_actual_sync_bytes

    uint32

    实际每次调用sync刷盘xLog量

    输出参数

    total_write_time

    uint64

    调用write操作总时间统计(单位:us)

    输出参数

    total_sync_time

    uint64

    调用sync操作总时间统计(单位:us)

    输出参数

    avg_write_time

    uint32

    每次调用write接口平均时间(单位:us)

    输出参数

    avg_sync_time

    uint32

    每次调用sync接口平均时间(单位:us)

    输出参数

    curr_init_xlog_segno

    uint64

    当前最新创建的xLog段文件编号

    输出参数

    curr_open_xlog_segno

    uint64

    当前正在写的xLog段文件编号

    输出参数

    last_reset_time

    text

    上一次重置统计信息的时间

    输出参数

    curr_time

    text

    当前时间

  • pg_ls_tmpdir()

    描述:返回默认表空间下临时目录(pgsql_tmp)中每个文件的名称、大小和最后修改时间。

    参数:nan

    返回值类型:record

    备注:必须是系统管理员或者监控管理员才能执行此函数。

    参数类型

    参数名

    类型

    描述

    输出参数

    name

    text

    文件名称

    输出参数

    size

    int8

    文件大小(单位:byte)

    输出参数

    modification

    timestamptz

    文件最后修改时间

  • pg_ls_tmpdir(oid)

    描述:返回指定表空间下临时目录(pgsql_tmp)中每个文件的名称、大小和最后修改时间。

    参数:oid

    返回值类型:record

    备注:必须是系统管理员或者监控管理员才能执行此函数。

    参数类型

    参数名

    类型

    描述

    输入参数

    oid

    oid

    表空间id

    输出参数

    name

    text

    文件名称

    输出参数

    size

    int8

    文件大小(单位:byte)

    输出参数

    modification

    timestamptz

    文件最后修改时间

  • pg_ls_waldir()

    描述:返回预写日志(WAL)目录中每个文件的名称、大小和最后修改时间。

    参数:nan

    返回值类型:record

    备注:必须是系统管理员或者监控管理员才能执行此函数。

    参数类型

    参数名

    类型

    描述

    输出参数

    name

    text

    文件名称

    输出参数

    size

    int8

    文件大小(单位:byte)

    输出参数

    modification

    timestamptz

    文件最后修改时间

  • gs_undo_dump_xid(undo_xid xid)

    描述:根据xid解析undo记录

    返回值类型:record

    表17 gs_undo_dump_xid参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    undo_xid

    xid

    事务xid

    输出参数

    undoptr

    xid

    需要解析的undo记录起始位置

    输出参数

    xactid

    text

    事务id

    输出参数

    cid

    text

    command id

    输出参数

    reloid

    text

    relation oid

    输出参数

    relfilenode

    text

    文件的relfinode

    输出参数

    utype

    text

    undo记录类型

    输出参数

    blkprev

    text

    同一个块前一条undo记录的位置

    输出参数

    blockno

    text

    块号

    输出参数

    uoffset

    text

    undo记录偏移

    输出参数

    prevurp

    text

    前一条undo记录位置

    输出参数

    payloadlen

    text

    undo记录数据部分长度

    输出参数

    oldxactid

    text

    前一个事务id

    输出参数

    partitionoid

    text

    分区oid

    输出参数

    tablespace

    text

    表空间

    输出参数

    alreadyread_bytes

    text

    读取到的undo记录长度

    输出参数

    prev_undorec_len

    text

    前一条undo记录长度

    输出参数

    td_id

    text

    Transaction Directory的id

    输出参数

    reserved

    text

    是否保存

    输出参数

    flag

    text

    标识1

    输出参数

    flag2

    text

    标识2

    输出参数

    t_hoff

    text

    Undo记录数据头的长度

  • gs_write_term_log(void)

    描述:写入一条日志记录DN节点当前的term值。备DN节点返回false,主DN节点写入成功后返回true。

    返回值类型:Boolean

相关文档