事务ID和快照
txid_snapshot的文本表示为:xmin:xmax:xip_list。
示例:10:20:10,14,15意思为:xmin=10, xmax=20, xip_list=10, 14, 15。
以下的函数在一个输出形式中提供服务器事务信息。这些函数的主要用途是为了确定在两个快照之间有哪些事务提交。
pgxc_is_committed(transaction_id)
描述:如果普通表提交或忽略给定的XID(gxid)。NULL表示的状态是未知的(运行、准备、冻结等)。如果在维护模式(GUC参数xc_maintenance_mode为on时)下,会遍历所有bucketid和普通表对应的xid状态,如果有状态冲突,例如同一个xid,在bucket1状态为提交,在bucket2为回滚则报错。该模式谨慎打开,一般供维护人员排查问题使用,一般用户不应使用该模式。
返回类型:Boolean
pgxc_is_committed(transaction_id, bucketid)
描述:如果指定bucketid提交或忽略给定的XID(gxid)。NULL表示的状态是未知的(运行、准备、冻结等), bucketid是hash bucket表的物理bucketid,普通表为-1。如果在维护模式(GUC参数xc_maintenance_mode为on时)下,指定bucketid为-1,会遍历所有bucketid和普通表对应的xid状态,如果有状态冲突,例如同一个xid,在bucket1状态为提交,在bucket2为回滚则报错。该模式谨慎打开,一般供维护人员排查问题使用,一般用户不应使用该模式。
返回类型:Boolean
txid_current()
描述:获取当前事务ID。
返回类型:bigint
gs_txid_oldestxmin()
描述:获取当前最小事务id的值oldesxmin。
返回类型:bigint
txid_current_snapshot()
描述:获取当前快照。
返回类型:txid_snapshot
txid_snapshot_xip(txid_snapshot)
描述:在快照中获取正在进行的事务ID。
返回类型:setof bigint
txid_snapshot_xmax(txid_snapshot)
描述:获取快照的xmax。
返回类型:bigint
txid_snapshot_xmin(txid_snapshot)
描述:获取快照的xmin。
返回类型:bigint
txid_visible_in_snapshot(bigint, txid_snapshot)
描述:在快照中事务ID是否可见(不使用子事务ID)。
返回类型:Boolean
get_local_prepared_xact()
描述:获取当前节点两阶段残留事务信息,包括事务id、两阶段gid名称、prepared的时间、owner的oid、database的oid及当前节点的node_name。
返回类型:xid、text、timestamptz、oid、text
get_remote_prepared_xacts()
描述:获取所有远程节点两阶段残留事务信息,包括事务id、两阶段gid名称、prepared的时间、owner的名称、database的名称及node_name。
返回类型:xid、text、timestamptz、name、text
global_clean_prepared_xacts(text, text)
描述:并发清理两阶段残留事务,仅gs_clean工具调用该函数进行清理,其他情况下调用均返回false。
返回类型:Boolean
pgxc_stat_get_wal_senders()
描述:返回集群中所有主DN的发送日志的信息和其对应的备DN的接收日志的信息。仅支持system admin或monitor admin权限用户使用。
|
字段名 |
描述 |
|---|---|
|
nodename |
实例名。 |
|
sender_pid |
发送日志的线程pid。 |
|
local_role |
实例角色。 |
|
peer_role |
接收端的实例的角色。 |
|
peer_state |
接收端的实例的状态。 |
|
state |
实例间同步的状态。 |
|
sender_sent_location |
发送端发送日志的位置。 |
|
sender_write_location |
发送端写日志的位置。 |
|
sender_flush_location |
发送端刷盘日志的位置。 |
|
sender_replay_location |
当前实例的日志位置。如果是主DN,则该位置和sender_flush_location相同;否则该位置为当前实例日志回放到的位置。 |
|
receiver_received_location |
接收端日志接收到的位置。 |
|
receiver_write_location |
接收端日志写的位置。 |
|
receiver_flush_location |
接收端日志刷盘的位置。 |
|
receiver_replay_location |
接收端日志回放的位置。 |
pgxc_stat_get_wal_senders_status()
描述:返回所有节点事务日志接收状态。仅支持system admin或monitor admin权限用户使用。
返回值如表3 pgxc_stat_get_wal_senders_status返回参数说明所示。
|
字段名 |
描述 |
|---|---|
|
nodename |
主节点名。 |
|
source_ip |
主节点IP。 |
|
source_port |
主节点端口。 |
|
dest_ip |
备节点IP。 |
|
dest_port |
备节点端口。 |
|
sender_pid |
发送线程PID。 |
|
local_role |
主节点类型。 |
|
peer_role |
备节点类型。 |
|
peer_state |
备节点状态。 |
|
state |
wal sender状态。 |
|
sender_sent_location |
主节点发送位置。 |
|
sender_write_location |
主节点落盘位置。 |
|
sender_replay_location |
主节点redo位置。 |
|
receiver_received_location |
备节点接收位置。 |
|
receiver_write_location |
备节点落盘位置。 |
|
receiver_flush_location |
备节点flush磁盘位置。 |
|
receiver_replay_location |
备节点redo位置。 |
pg_control_system()
描述:返回系统控制文件状态。
返回类型:SETOF record
pg_control_checkpoint()
描述:返回系统检查点状态。
返回类型:SETOF record
get_prepared_pending_xid()
描述:当恢复完成时,返回nextxid。
参数:nan
返回值类型:text
pg_clean_region_info()
描述:清理regionmap。
参数:nan
返回值类型:character varying
pg_get_replication_slot_name()
描述:获取slot name。
参数:nan
返回值类型:text
pg_get_running_xacts()
描述:获取运行中的xact。
参数:nan
返回值类型:handle integer、gxid xid、state tinyint、node text、xmin xid、vacuum boolean、timeline bigint、prepare_xid xid、pid bigint、next_xid xid、dbid oid。
pg_get_variable_info()
描述:获取共享内存变量cache。
参数:nan
返回值类型:node_name text、nextOid oid、nextXid xid、oldestXid xid、xidVacLimit xid、oldestXidDB oid、lastExtendCSNLogpage xid、startExtendCSNLogpage xid、nextCommitSeqNo xid、latestCompletedXid xid、startupMaxXid xid
pg_get_xidlimit()
描述:从共享内存获取事务id信息。
参数:nan
返回值类型:nextXid xid、oldestXid xid、xidVacLimit xid、xidWarnLimit xid、xidStopLimit xid、xidWrapLimit xid、oldestXidDB oid
pg_relation_compression_ratio()
描述:查询表压缩率,默认返回1.0。
参数:text
返回值类型:real
pg_relation_with_compression()
描述:查询表是否压缩。
参数:text
返回值类型:boolean
pg_stat_file_recursive()
描述:列出路径下所有文件。
参数:location text
返回值类型:path text、filename text、size bigint、isdir boolean
pg_stat_get_activity_for_temptable()
描述:返回临时表相关的后台线程的记录。
参数:nan
返回值类型:datid oid、timelineid integer、tempid integer、sessionid bigint
pg_stat_get_activity_ng()
描述:返回nodegroup相关的后台线程的记录。
参数:pid bigint
返回值类型:datid oid、pid bigint、sessionid bigint、node_group text
pg_stat_get_cgroup_info()
描述:返回cgroup信息。
参数:nan
返回值类型:cgroup_name text、percent integer、usage_percent integer、shares bigint、usage bigint、cpuset text、relpath text、valid text、node_group text
pg_stat_get_realtime_info_internal()
描述:返回实时信息,当前该接口已不可用,返回FailedToGetSessionInfo。
参数:oid、oid、bigint、cstring、oid
返回值类型:text
pg_stat_get_wlm_session_iostat_info()
描述:返回会话负载I/O信息。
参数:nan
返回值类型:threadid bigint、maxcurr_iops integer、mincurr_iops integer、maxpeak_iops integer、minpeak_iops integer、iops_limits integer、io_priority integer、curr_io_limits integer
pg_test_err_contain_err()
描述:测试错误类型和返回信息。
参数:integer
返回值类型:void
pv_session_memory_detail_tp()
描述:返回会话的内存使用情况,参考pv_session_memory_detail函数。
参数:nan
返回值类型:sessid text、sesstype text、contextname text、level smallint、parent text、totalsize bigint、freesize bigint、usedsize bigint
gs_get_table_distribution()
描述:返回表数据在各个数据节点的分布情况。
参数:table_name text, schema_name text
返回值类型:text
pv_builtin_functions()
描述:查看所有内置系统函数信息。
参数:nan
返回值类型:proname name、pronamespace oid、proowner oid、prolang oid、procost real、prorows real、provariadic oid、protransform regproc、proisagg boolean、proiswindow boolean、prosecdef boolean、proleakproof boolean、proisstrict boolean、proretset boolean、provolatile "char"、pronargs smallint、pronargdefaults smallint、prorettype oid、proargtypes oidvector、proallargtypes integer[]、proargmodes "char"[]、proargnames text[]、proargdefaults pg_node_tree、prosrc text、probin text、proconfig text[], proacl aclitem[]、prodefaultargpos int2vector、fencedmode boolean、proshippable boolean、propackage boolean、oid oid
pv_thread_memory_detail()
描述:返回各线程的内存信息。
参数:nan
返回值类型:threadid text、tid bigint、thrdtype text、contextname text、level smallint、parent text、totalsize bigint、freesize bigint、usedsize bigint
pg_shared_memory_detail()
描述:返回所有已产生的共享内存上下文的使用信息,各列描述请参见SHARED_MEMORY_DETAIL。
参数:nan
返回值类型:contextname text、level smallint、parent text、totalsize bigint、freesize bigint、usedsize bigint
pgxc_get_running_xacts()
描述:返回集群中各个节点运行事务的信息,字段内容和PGXC_RUNNING_XACTS相同。只有system admin和monitor admin用户有权限查看。
参数:nan
返回值类型:setof record
pgxc_snapshot_status()
描述:在GTM模式下,返回GTM中关键内存信息状态,用来支持问题定位,GTM-Free、GTM-Lite不支持本函数。
参数:nan
返回值类型:xmin xid、xmax xid、xcnt int、oldestxmin xid、next_xid xid、timeline int、active_thread_num int、max_active_thread_num int, snapshot_num int、snapshot_totalsize bigint
返回值描述如:表5所示。
|
字段名 |
描述 |
|---|---|
|
xmin |
GTM上当前最小的活跃事务id。 |
|
xmax |
GTM上当前提交的最大的事务id + 1,大于等于该值的事务id是活跃的。 |
|
xcnt |
GTM上当前活跃事务个数。 |
|
oldestxmin |
GTM上最早被访问的事务id号。 |
|
next_xid |
GTM上下一个分配的事务id号。 |
|
timeline |
GTM上当前的时间线。 |
|
active_thread_num |
GTM上当前活跃的工作线程数。 |
|
max_active_thread_num |
GTM上1分钟内工作线程数峰值。 |
|
snapshot_num |
GTM上1分钟内下发的快照个数。 |
|
snapshot_totalsize |
GTM上1分钟内下发快照总大小。 |
adm_hist_snapshot_func()
描述:返回快照执行时间相关信息,访问该函数需要打开enable_wdr_snapshot参数,并且需要snapshot schema, snapshot表和tables_snap_timestamp表的访问权限。
参数:nan
返回值类型:snap_id bigint, dbid oid, begin_interval_time timestamp(3), end_interval_time timestamp(3), flush_elapsed interval day(5) to second(1), begin_interval_time_tz timestamp(3) with time zone, end_interval_time_tz timestamp(3) with time zone
global_sql_patch_func()
描述:全局各个节点上的SQL PATCH信息,用于返回global_sql_patch视图的结果。
返回值如表7 global_sql_patch_func返回参数说明所示。
|
名称 |
类型 |
描述 |
|---|---|---|
|
node_name |
text |
SQLpatch所在节点名。 |
|
patch_name |
name |
PATCH名称。 |
|
unique_sql_id |
bigint |
查询全局唯一ID。 |
|
owner |
oid |
PATCH的创建用户ID。 |
|
enable |
boolean |
PATCH是否生效。 |
|
status |
"char" |
PATCH的状态(预留字段)。 |
|
abort |
boolean |
是否是AbortHint。 |
|
hint_string |
text |
Hint文本。 |
|
description |
text |
PATCH的备注。 |
|
parent_unique_sql_id |
bigint |
PATCH生效的SQL语句的外层语句的全局唯一ID,存储过程外的语句该值为0,存储过程内的语句该值为调用该存储过程语句的全局唯一ID。 |
|
original_query |
text |
原始语句。 |
gs_get_current_version()
描述:依据当前编译宏返回当前编译模式,返回'M'。
参数:nan
返回值类型:char
gs_get_kernel_info()
描述:全局各个CN、DN主节点上的事务相关的信息。
返回值如表8所示。
|
名称 |
类型 |
描述 |
|---|---|---|
|
node_name |
text |
节点名。 |
|
module |
text |
模块名。包括:
|
|
name |
text |
探查内存态关键数据名字。包括:
|
|
value |
text |
探查内存态关键数据值。 |
示例:
gaussdb=# SELECT * FROM gs_get_kernel_info();
node_name | module | name | value
--------------+---------+-------------------------------+---------
coordinator1 | XACT | startup_max_xid | 16488
coordinator1 | XACT | recent_local_xmin | 16504
coordinator1 | XACT | recent_global_xmin | 16503
coordinator1 | STANDBY | standby_xmin | 0
coordinator1 | STANDBY | standby_redo_cleanup_xmin | 0
coordinator1 | STANDBY | standby_redo_cleanup_xmin_lsn | 0/0
coordinator1 | XACT | local_csn_min | 6014225
coordinator1 | XACT | replication_slot_xmin | 0
coordinator1 | XACT | replication_slot_catalog_xmin | 0
coordinator1 | UNDO | global_recycle_xid | 16501
coordinator1 | XACT | global_frozen_xid | 0
coordinator1 | XACT | recent_xmin | 16504
coordinator1 | XACT | next_csn | 6014226
coordinator1 | HOTPATH | hotpatch_additional_info |
coordinator1 | FULL_SQL| stmt_session_discard_records | 0
coordinator1 | FULL_SQL| stmt_shm_flush_discard_records| 0
coordinator1 | XACT | idle_in_trans_timeout_records | 0
datanode1 | XACT | startup_max_xid | 16488
datanode1 | XACT | recent_local_xmin | 15805
datanode1 | XACT | recent_global_xmin | 15805
datanode1 | STANDBY | standby_xmin | 0
datanode1 | STANDBY | standby_redo_cleanup_xmin | 0
datanode1 | STANDBY | standby_redo_cleanup_xmin_lsn | 0/0
datanode1 | XACT | local_csn_min | 6014225
datanode1 | XACT | replication_slot_xmin | 0
datanode1 | XACT | replication_slot_catalog_xmin | 0
datanode1 | UNDO | global_recycle_xid | 15805
datanode1 | XACT | global_frozen_xid | 0
datanode1 | XACT | recent_xmin | 15805
datanode1 | XACT | next_csn | 6014226
datanode1 | HOTPATH | hotpatch_additional_info |
datanode1 | FULL_SQL| stmt_session_discard_records | 0
datanode1 | FULL_SQL| stmt_shm_flush_discard_records| 0
datanode1 | XACT | idle_in_trans_timeout_records | 0
(34 row)