Undo系统函数
gs_undo_meta(type, zoneId, location)
描述:Undo各模块元信息。
参数说明:
type(元信息类型)
0表示Undo Zone(Record) 对应的元信息。
1表示Undo Zone(Transaction Slot) 对应的元信息。
2表示Undo Space(Record) 对应的元信息。
3表示Undo Space(Transaction Slot) 对应的元信息。
zoneId(undo zone编号)
-1表示所有undo zone的元信息。
0-1024*1024表示对应zoneid的元信息。
location(读取位置)
0表示从当前内存中读取。
1表示从物理文件中读取。
返回值类型:record
示例:
openGauss=# select * from gs_undo_meta(0, -1, 0); zoneId | persistType | insert | discard | end | used | lsn | pid --------+-------------+------------------+------------------+------------------+------------------+------------------+------------
表 1 gs_undo_meta参数说明
gs_undo_translot(location, zoneId)
描述:Undo事务槽信息。
参数说明:
location(读取位置)
0表示从当前内存中读取。
1表示从物理文件中读取。
zoneId(undo zone编号)
-1表示所有undo zone的元信息。
0-1024*1024表示对应zoneId的元信息。
返回值类型:record
示例:
openGauss=# select * from gs_undo_translot(0, -1); groupId | xactId | startUndoPtr | endUndoPtr | lsn | slot_states ---------+--------+--------------+------------+-----+-------------
表 2 gs_undo_translot参数说明
gs_stat_undo()
描述:Undo统计信息。
返回值类型:record
示例:
openGauss=# select * from gs_stat_undo(); curr_used_zone_count | top_used_zones | curr_used_undo_size | undo_threshold | global_recycle_xid | oldest_xmin | total_undo_chain_len | max_undo_chain_len | create_undo_file_count | discard_undo_file_count ----------------------+---------------------+---------------------+----------------+--------------------+-------------+----------------------+--------------------+------------------------+-------------------------
表 3 gs_stat_undo参数说明
gs_undo_record(undoptr)
描述:Undo记录解析。
参数说明:
- undoptr(undo记录指针)
返回值类型:record
示例:
openGauss=# select * from gs_undo_record(4698); undoptr | xid | cid | reloid | relfilenode | utype | blkprev | blockno | uoffset | prevurp | payloadlen ---------+-----+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------
gs_undo_dump_parsepage_mv(relpath text, blkno bigint, reltype text, rmem boolean)
描述:解析Ustore数据表磁盘页面的页头信息,每个元组的头部信息,标识位信息以及所有可以查询到undo历史版本信息。
返回值类型:text
备注:必须是系统管理员或者运维管理人员才能执行此函数。
说明: 该接口当前仅支持Ustore数据表。
示例:
openGauss=# select * from gs_undo_dump_parsepage_mv('base/16384/16391', -1, 'uheap', false); output -------------------------------------------
表 4 gs_undo_dump_parsepage_mv参数说明
Ustore表数据文件相对路径,相对路径格式为:tablespace name/database oid/relfilenode,例如base/16603/16384, 表对应数据文件的相对路径查找可以通过pg_relation_filepath('tablename')查询。
- -1 解析所有block页面。
- 0-MaxBlocNumber 解析指定的block页面。
- false
- true
gs_undo_meta_dump_zone(zone_id int, read_memory boolean)
描述:解析Undo模块中zone的元信息。
返回值类型:record
示例:
openGauss=# select * from gs_undo_meta_dump_zone(-1, true); zone_id | persist_type | insert | discard | forcediscard | lsn ---------+--------------+--------+---------+--------------+----------
表 5 gs_undo_meta_dump_zone参数说明
- true:从当前内存中读取。
- false:从物理文件中读取。
gs_undo_meta_dump_spaces(zone_id int, read_memory boolean)
描述:解析Undo模块中undo记录空间,undo slot空间的元信息。
返回值类型:record
示例:
openGauss=# select * from gs_undo_meta_dump_spaces(-1, true); zone_id | undorecord_space_tail | undorecord_space_head | undorecord_space_lsn | undoslot_space_tail | undoslot_space_head | undoreslot_space_lsn ---------+-----------------------+-----------------------+----------------------+---------------------+---------------------+----------------------
表 6 gs_undo_meta_dump_spaces参数说明
- true:从当前内存中读取。
- false:从物理文件中读取。
gs_undo_meta_dump_slot(zone_id int, read_memory boolean)
描述:解析Undo模块中slot元信息。
返回值类型:record
示例:
openGauss=# select * from gs_undo_meta_dump_slot(-1, true); zone_id | allocate | recycle | frozen_xid | global_frozen_xid | recycle_xid | global_recycle_xid ---------+----------+---------+------------+-------------------+-------------+--------------------
表 7 gs_undo_meta_dump_slot参数说明
- true:从当前内存中读取。
- false:从物理文件中读取。
gs_undo_translot_dump_slot(zone_id int, read_memory boolean)
描述:解析zone中的slot。
返回值类型:record
示例:
openGauss=# select * from gs_undo_translot_dump_slot(-1, true); zone_id | slot_xid | start_undoptr | end_undoptr | slot_ptr | slot_states ---------+----------+---------------+-------------+----------+-------------
表 8 gs_undo_translot_dump_slot参数说明
- true:从当前内存中读取。
- false:从物理文件中读取。
gs_undo_translot_dump_xid(slot_xid xid, read_memory boolean)
描述:根据xid,解析zone中对应的slot。
返回值类型:record
示例:
openGauss=# select * from gs_undo_translot_dump_xid('14249', true); zone_id | slot_xid | start_undoptr | end_undoptr | slot_ptr | slot_states ---------+----------+---------------+-------------+----------+-------------
表 9 gs_undo_translot_dump_xid参数说明
- true:从当前内存中读取。
- false:从物理文件中读取。
gs_undo_dump_record(undoptr bigint)
描述:解析undo记录。
返回值类型:record
示例:
openGauss=# select * from gs_undo_dump_record(4698); undoptr | xactid | cid | reloid | relfilenode | utype | blkprev | blockno | uoffset | prevurp | payloadlen | oldxactid | partitionoid | tablespace | alreadyread_bytes | prev_undorec_len | td_id | reserved | flag | flag2 | t_hoff ---------+--------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+------------------+-------------------+------------------+-------+----------+------+-------+--------
表 10 gs_undo_dump_record参数说明
gs_undo_dump_xid(undo_xid xid)
描述:根据xid解析undo记录
返回值类型:record
示例:
openGauss=# select * from gs_undo_dump_xid('14249'); undoptr | xactid | cid | reloid | relfilenode | utype | blkprev | blockno | uoffset | prevurp | payloadlen | oldxactid | partitionoid | tablespace | alreadyread_bytes | prev_undorec_len | td_id | reserved | flag | flag2 | t_hoff ---------+--------+-----+--------+-------------+-------+---------+---------+---------+---------+------------+-----------+--------------+------------+-------------------+------------------+-------+----------+------+-------+--------
表 11 gs_undo_dump_xid参数说明