Undo系统函数
- gs_undo_meta(type, zoneId, location)
参数说明:
- type(元信息类型)
1表示Undo Zone(Transaction Slot) 对应的元信息。
2表示Undo Space(Record) 对应的元信息。
3表示Undo Space(Transaction Slot) 对应的元信息。
返回值类型: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。
- type(元信息类型)
- gs_undo_translot(location, zoneId)
参数说明:
返回值类型: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()
返回值类型: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)
参数说明:
- 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)
返回值类型: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
持久化级别:
- 0:普通表
- 1:无日志表
- 2:临时表
输出参数
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)
返回值类型: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)
返回值类型: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记录位置。
输出参数
slot_ptr
text
Transaction Slot对应的位置。
输出参数
slot_states
oid
事务状态:- 0:已提交
- 1:执行中
- 2:回滚中
- 3:回滚完成
- gs_undo_translot_dump_xid(slot_xid xid, read_memory boolean)
返回值类型: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
事务状态:- 0 已提交
- 1 执行中
- 2 回滚中
- 3 回滚完成
- gs_undo_dump_record(undoptr bigint)
返回值类型: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)
返回值类型: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_translot(type, startIdx,endIdx, location)
返回值类型:record
该接口仅为扩展预留接口,禁止使用。