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
表 1 gs_undo_meta(0,-1,0)输出示例
参数类型 | 参数名 | 类型 | 描述 |
---|
输出参数 | zoneId | oid | undo zone的id。 |
输出参数 | persistType | oid | 持久化级别。 |
输出参数 | insert | text | 下一条插入的undo记录位置。 |
输出参数 | discard | text | 普通回收到的undo记录位置。 |
输出参数 | end | text | 强制回收掉undo记录位置,小于它的undo记录已经被回收。 |
输出参数 | used | text | 已经使用的undo空间。 |
输出参数 | lsn | text | 修改zone的lsn。 |
输出参数 | pid | oid | zone绑定的进程id。 |
gs_undo_translot(location, zoneId)
描述:Undo事务槽信息。
参数说明:
返回值类型:record
表 2 gs_undo_translot(0,-1)输出示例
参数类型 | 参数名 | 类型 | 描述 |
---|
输出参数 | groupId | oid | 使用的undo zone id。 |
输出参数 | xactId | text | 事务id。 |
输出参数 | startUndoPtr | text | slot对应事务起始插入undo记录位置。 |
输出参数 | endUndoPtr | text | slot对应事务结束插入undo记录位置。 |
输出参数 | lsn | text | 对应slot指针。 |
输出参数 | slot_states | oid | 事务状态,0表示已经提交,1表示正在执行中,2表示回滚中,3表示回滚完成。 |
gs_stat_undo()
描述:Undo统计信息。
返回值类型:record
表 3 gs_stat_undo参数说明
参数类型 | 参数名 | 类型 | 描述 |
---|
输出参数 | curr_used_zone_count | uint32 | 当前使用的Undo zone数量。 |
输出参数 | top_used_zones | text | 前三个使用量最大的Undo zone信息,格式输出为: (zoneId1:使用大小,zoneId2:使用大小,zoneId3:使用大小)。 |
输出参数 | curr_used_undo_size | uint32 | 当前使用的Undo总空间大小,单位为MB。 |
输出参数 | undo_threshold | uint32 | 为guc参数undo_space_limit_size * 80%计算的结果,单位为MB。 |
输出参数 | oldest_xid_in_undo | uint64 | 当前Undo空间回收到的事务xid(小于该xid事务产生的Undo记录都已经被回收)。 |
输出参数 | oldest_xmin | uint64 | 最老的活跃事务。 |
输出参数 | total_undo_chain_len | int64 | 所有访问过的Undo链总长度。 |
输出参数 | max_undo_chain_len | int64 | 最大访问过的Undo链长度。 |
输出参数 | create_undo_file_count | uint32 | 创建的Undo文件数量统计。 |
输出参数 | discard_undo_file_count | uint32 | 删除的Undo文件数量统计。 |
gs_undo_record(undoptr)
描述:Undo记录解析。
参数说明:
返回值类型:record
gs_undo_dump_parsepage_mv(relpath text, blkno bigint, reltype text, rmem boolean)
描述:解析ustore数据表磁盘页面的页头信息,每个元组的头部信息,标识位信息以及所有可以查询到undo历史版本信息。
返回值类型:text
备注:必须是系统管理员或者运维管理人员才能执行此函数。
说明:
该接口当前仅支持USTORE数据表。
表 4 gs_undo_dump_parsepage_mv参数说明
参数类型 | 参数名 | 类型 | 描述 |
---|
输入参数 | relpath | text | ustore表数据文件相对路径,相对路径格式为:tablespace name/database oid/relfilenode,例如base/16603/16384, 表对应数据文件的相对路径查找可以通过pg_relation_filepath('tablename')查询。 |
输入参数 | blkno | bigint | - -1 解析所有block页面。
- 0-MaxBlocNumber解析指定的block页面。
|
输入参数 | reltype | text | 表类型,目前仅支持ustore数据表,取值为uheap。 |
输入参数 | rmem | boolean | |
输出参数 | output | text | 解析结果文件的绝对路径。 |
gs_undo_meta_dump_zone(zone_id int, read_memory boolean)
描述:解析Undo模块中zone的元信息。
返回值类型:record
表 5 gs_undo_meta_dump_zone参数说明
参数类型 | 参数名 | 类型 | 描述 |
---|
输入参数 | zone_id | int | Undo zone编号: - -1:查询所有Undo zone。
- 0-1,048,575:查询对应zone_id编号的undo zone元信息。
|
输入参数 | read_memory | boolean | - true:从当前内存中读取。
- false:从物理文件中读取。
|
输出参数 | zone_id | int | Undo zone编号。 |
输出参数 | persist_type | int | 持久化级别: |
输出参数 | insert | text | 下一条插入的undo记录位置。 |
输出参数 | discard | text | 普通回收到的undo记录位置。 |
输出参数 | forcediscard | text | 强制回收掉undo记录位置,小于它的undo记录已经被回收。 |
输出参数 | lsn | text | 修改zone的lsn。 |
gs_undo_meta_dump_spaces(zone_id int, read_memory boolean)
描述:解析Undo模块中undo记录空间,undo slot空间的元信息。
返回值类型:record
表 6 gs_undo_meta_dump_spaces参数说明
参数类型 | 参数名 | 类型 | 描述 |
---|
输入参数 | zone_id | int | Undo zone编号: - -1:查询所有Undo zone。
- 0-1,048,575:查询对应zone_id编号的undo zone元信息。
|
输入参数 | read_memory | boolean | - true:从当前内存中读取。
- false:从物理文件中读取。
|
输出参数 | zone_id | int | Undo zone编号。 |
输出参数 | undorecord_space_tail | text | Undo record空间的结尾位置。 |
输出参数 | undorecord_space_head | text | Undo record空间的起始位置。 |
输出参数 | undorecord_space_lsn | text | 修改Undo record空间lsn。 |
输出参数 | undoslot_space_tail | text | Undo slot空间的结尾位置。 |
输出参数 | undoslot_space_head | text | Undo slot空间的起始位置。 |
输出参数 | undoreslot_space_lsn | text | 修改Undo slot空间lsn。 |
gs_undo_meta_dump_slot(zone_id int, read_memory boolean)
描述:解析Undo模块中slot元信息。
返回值类型:record
表 7 gs_undo_meta_dump_slot参数说明
参数类型 | 参数名 | 类型 | 描述 |
---|
输入参数 | zone_id | int | Undo zone编号: - -1:查询所有Undo zone。
- 0-1,048,575:查询对应zone_id编号的undo zone元信息。
|
输入参数 | read_memory | boolean | - true:从当前内存中读取。
- false:从物理文件中读取。
|
输出参数 | zone_id | int | Undo zone编号。 |
输出参数 | allocate | text | Undo transaction slot分配位置。 |
输出参数 | recycle | text | Undo transaction slot回收位置。 |
输出参数 | frozen_xid | text | frozen xid,用于可见性判断。 |
输出参数 | global_frozen_xid | text | 全局最小的frozen xid,小于该xid的事务可见。 |
输出参数 | recycle_xid | text | 回收到的xid,小于该xid的事务被回收。 |
输出参数 | global_recycle_xid | text | 全局最小的recycle xid,小于该xid的事务被回收。 |
gs_undo_translot_dump_slot(zone_id int, read_memory boolean)
描述:解析zone中的slot。
返回值类型:record
表 8 gs_undo_translot_dump_slot参数说明
参数类型 | 参数名 | 类型 | 描述 |
---|
输入参数 | zone_id | oid | Undo zone编号: - -1:查询所有Undo zone。
- 0-1,048,575:查询对应zone_id编号的undo zone元信息。
|
输入参数 | read_memory | boolean | - true:从当前内存中读取。
- false:从物理文件中读取。
|
输出参数 | zone_id | text | Undo zone编号。 |
输出参数 | slot_xid | text | 事务id。 |
输出参数 | start_undoptr | text | slot对应事务起始插入undo记录位置。 |
输出参数 | end_undoptr | text | slot对应事务结束插入undo记录位置。 |
输出参数 | lsn | text | 修改slot的lsn。 |
输出参数 | slot_states | oid | |
gs_undo_translot_dump_xid(slot_xid xid, read_memory boolean)
描述:根据xid,解析zone中对应的slot。
返回值类型:record
表 9 gs_undo_translot_dump_xid参数说明
参数类型 | 参数名 | 类型 | 描述 |
---|
输入参数 | slot_xid | xid | 需要查询的事务id。 |
输入参数 | read_memory | boolean | - true:从当前内存中读取。
- false:从物理文件中读取。
|
输出参数 | zone_id | text | Undo zone编号。 |
输出参数 | slot_xid | text | 事务id。 |
输出参数 | start_undoptr | text | slot对应事务起始插入undo记录位置。 |
输出参数 | end_undoptr | text | slot对应事务结束插入undo记录位置。 |
输出参数 | lsn | text | 修改slot的lsn。 |
输出参数 | slot_states | oid | |
gs_undo_dump_record(undoptr bigint)
描述:解析undo记录。
返回值类型:record
表 10 gs_undo_dump_record参数说明
参数类型 | 参数名 | 类型 | 描述 |
---|
输入参数 | undoptr | bigint | 需要解析的undo记录起始位置。 |
输出参数 | undoptr | bigint | 需要解析的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_undo_dump_xid(undo_xid xid)
描述:根据xid解析undo记录。
返回值类型:record
表 11 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_verify_undo_record(type, startIdx,endIdx, location)
描述:校验Undo记录。
返回值类型:record
说明:
该接口仅为扩展预留接口,禁止使用。
gs_verify_undo_translot(type, startIdx,endIdx, location)
描述:校验Undo事务槽。
返回值类型:record
说明:
该接口仅为扩展预留接口,禁止使用。
gs_verify_undo_meta(type, startIdx,endIdx, location)
描述:校验Undo元信息。
返回值类型:record
说明:
该接口仅为扩展预留接口,禁止使用。
openGauss 2024-09-07 01:02:04