华为云云数据库GaussDBUndo系统函数_云淘科技
gs_undo_meta(type, zoneId, location)
描述:Undo模块元信息。
参数说明:
type(元信息类型)
0:表示UndoZone(Record) 对应的元信息。
1:表示UndoZone(Transaction Slot) 对应的元信息。
2:表示UndoSpace(Record) 对应的元信息。
3:表示UndoSpace(Transaction Slot) 对应的元信息。
zoneId(UndoZone编号)
-1:表示所有UndoZone的元信息。
0~1024*1024-1:表示对应ZoneID的元信息。
location(读取位置)
0:表示从当前内存中读取。
1:表示从物理文件中读取。
返回值类型:record
参数类型 |
参数名 |
类型 |
描述 |
---|---|---|---|
输出参数 |
zoneId |
oid |
UndoZone的ID。 |
输出参数 |
persistType |
oid |
持久化级别。 |
输出参数 |
insert |
text |
下一条插入的Undo记录位置。 |
输出参数 |
discard |
text |
普通回收到的Undo记录位置。 |
输出参数 |
end |
text |
强制回收掉的Undo记录位置,小于它的Undo记录已经被回收。 |
输出参数 |
used |
text |
已经使用的Undo空间。 |
输出参数 |
lsn |
text |
修改UndoZone的LSN。 |
输出参数 |
pid |
oid |
UndoZone绑定的进程ID。 |
gs_undo_translot(location, zoneId)
描述:Undo事务槽信息。
参数说明:
location(读取位置)
0:表示从当前内存中读取。
1:表示从物理文件中读取。
zoneId(UndoZone编号)
-1:表示所有UndoZone的元信息。
0~1024*1024-1:表示对应ZoneID的元信息。
返回值类型:record
参数类型 |
参数名 |
类型 |
描述 |
---|---|---|---|
输出参数 |
groupId |
oid |
使用的UndoZone ID。 |
输出参数 |
xactId |
text |
事务ID。 |
输出参数 |
startUndoPtr |
text |
Transaction Slot对应事务起始插入Undo记录位置。 |
输出参数 |
endUndoPtr |
text |
Transaction Slot对应事务结束插入Undo记录位置。 |
输出参数 |
lsn |
text |
对应Transaction Slot指针。 |
输出参数 |
slot_states |
oid |
事务状态。 0表示已经提交。 |
gs_stat_undo([bool init])
描述:Undo统计信息。
返回值类型:record
参数类型 |
参数名 |
类型 |
描述 |
---|---|---|---|
输入参数 |
init |
bool |
可选参数,是否清理统计信息并重新开始统计。 |
输出参数 |
curr_used_zone_count |
uint32 |
当前使用的UndoZone数量。 |
输出参数 |
top_used_zones |
text |
前三个使用量最大的UndoZone信息,格式输出为: zoneId1:使用大小。 |
输出参数 |
curr_used_undo_size |
uint32 |
当前使用的Undo总空间大小,单位为MB。 |
输出参数 |
undo_threshold |
uint32 |
为guc参数undo_space_limit_size * 80%计算的结果,单位为MB。 |
输出参数 |
global_recycle_xid |
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文件数量统计。 |
输出参数 |
info |
text |
如果入参为false,输出undo_space_limit_size、undo_limit_size_per_transaction 、undo_retention_time参数的合理化建议。 如果入参为true,即需要init(清理统计信息),仅提示‘The statistics have been initialized.’。 |
示例1:清除undo统计信息
gaussdb=# select * from gs_stat_undo(true); 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_coun t | discard_undo_file_count | info ----------------------+---------------------+---------------------+----------------+--------------------+-------------+----------------------+--------------------+---------------------- --+-------------------------+-------------------------------------- 3 | 0 : 0, 0 : 0, 0 : 0 | 1 | 209715 | 15741 | 15741 | 0 | 0 | 2 | 0 | The statistics have been initialized. (1 row)
示例2:输出undo统计信息
gaussdb=# select * from gs_stat_undo(false); 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_coun t | discard_undo_file_count | info ----------------------+---------------------+---------------------+----------------+--------------------+-------------+----------------------+--------------------+---------------------- --+-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------ ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - 3 | 0 : 0, 0 : 0, 0 : 0 | 1 | 209715 | 16253 | 16253 | 0 | 0 | 2 | 0 | Based on the statistic info from last initialization, undo_space_limit_size is recommended to set >= 120953 blocks, undo_limit_size_per_transaction is recommended to set <= 327150 blocks, undo_retention_time is recommended to set <= 259200 seconds. Since last initialization, max undo space used by a single transaction is 32715 blocks. (1 row)
gs_undo_record(undoptr)
描述:Undo记录解析。
参数说明:undoptr(undo记录指针)。
返回值类型:record
gs_undo_dump_parsepage_mv(relpath text, blkno bigint, reltype text, rmem boolean)
描述:解析USTORE数据表磁盘页面的页头信息,每个元组的头部信息,标识位信息以及所有可以查询到undo历史版本信息。
返回值类型:text
备注:必须是系统管理员或者运维管理人员才能执行此函数。
该接口当前仅支持USTORE数据表。
参数类型 |
参数名 |
类型 |
描述 |
---|---|---|---|
输入参数 |
relpath |
text |
USTORE表数据文件相对路径,相对路径格式为:tablespace name/database oid/relfilenode,例如base/16603/16384, 表对应数据文件的相对路径查找可以通过pg_relation_filepath(‘tablename’)查询。 |
输入参数 |
blkno |
bigint |
-1 解析所有block页面。 |
输入参数 |
reltype |
text |
表类型,目前仅支持USTORE数据表,取值为uheap。 |
输入参数 |
rmem |
boolean |
false 目前仅支持false,从磁盘文件上解析对应的页面。 |
输出参数 |
output |
text |
解析结果文件的绝对路径。 |
gs_undo_meta_dump_zone(zone_id int, read_memory boolean)
描述:解析Undo模块中UndoZone的元信息。
返回值类型:record
参数类型 |
参数名 |
类型 |
描述 |
---|---|---|---|
输入参数 |
zone_id |
int |
UndoZone编号: -1:查询所有UndoZone。 |
输入参数 |
read_memory |
boolean |
true:从当前内存中读取。 |
输出参数 |
zone_id |
int |
UndoZone编号。 |
输出参数 |
persist_type |
int |
持久化级别: 0:普通表。 |
输出参数 |
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记录空间、Transaction Slot空间的元信息。
返回值类型:record
参数类型 |
参数名 |
类型 |
描述 |
---|---|---|---|
输入参数 |
zone_id |
int |
UndoZone编号: -1:查询所有UndoZone。 |
输入参数 |
read_memory |
boolean |
true:从当前内存中读取。 |
输出参数 |
zone_id |
int |
UndoZone编号。 |
输出参数 |
undorecord_space_tail |
text |
UndoRecord空间的结尾位置。 |
输出参数 |
undorecord_space_head |
text |
UndoRecord空间的起始位置。 |
输出参数 |
undorecord_space_lsn |
text |
修改UndoRecord空间LSN。 |
输出参数 |
undoslot_space_tail |
text |
Transaction Slot空间的结尾位置。 |
输出参数 |
undoslot_space_head |
text |
Transaction Slot空间的起始位置。 |
输出参数 |
undoreslot_space_lsn |
text |
修改UndoSlot空间LSN。 |
gs_undo_meta_dump_slot(zone_id int, read_memory boolean)
描述:解析Undo模块中Transaction Slot元信息。
返回值类型:record
参数类型 |
参数名 |
类型 |
描述 |
---|---|---|---|
输入参数 |
zone_id |
int |
UndoZone编号: -1:查询所有UndoZone。 |
输入参数 |
read_memory |
boolean |
true:从当前内存中读取。 |
输出参数 |
zone_id |
int |
UndoZone编号。 |
输出参数 |
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,小于该Xxid的事务被回收。 |
gs_undo_translot_dump_slot(zone_id int, read_memory boolean)
描述:解析UndoZone中的Transaction Slot。
返回值类型:record
参数类型 |
参数名 |
类型 |
描述 |
---|---|---|---|
输入参数 |
zone_id |
oid |
UndoZone编号: -1:查询所有UndoZone。 |
输入参数 |
read_memory |
boolean |
true:从当前内存中读取。 |
输出参数 |
zone_id |
text |
UndoZone编号。 |
输出参数 |
slot_xid |
text |
事务ID。 |
输出参数 |
start_undoptr |
text |
Transaction Slot对应事务起始插入Undo记录位置。 |
输出参数 |
end_undoptr |
text |
Transaction Slot对应事务结束插入Undo记录位置。 |
输出参数 |
slot_ptr |
text |
Transaction Slot对应的位置。 |
输出参数 |
slot_states |
oid |
事务状态: 0:已提交。 |
gs_undo_translot_dump_xid(slot_xid xid, read_memory boolean)
描述:根据xid解析UndoZone中对应的Transaction Slot。
返回值类型:record
参数类型 |
参数名 |
类型 |
描述 |
---|---|---|---|
输入参数 |
slot_xid |
xid |
需要查询的事务ID。 |
输入参数 |
read_memory |
boolean |
true:从当前内存中读取。 |
输出参数 |
zone_id |
text |
UndoZ-one编号。 |
输出参数 |
slot_xid |
text |
事务ID。 |
输出参数 |
start_undoptr |
text |
Transaction Slot对应事务起始插入Undo记录位置。 |
输出参数 |
end_undoptr |
text |
Transaction Slot对应事务结束插入Undo记录位置。 |
输出参数 |
slot_ptr |
text |
Transaction Slot对应的位置。 |
输出参数 |
slot_states |
oid |
事务状态: 0 已提交。 |
gs_undo_dump_record(undoptr bigint)
描述:解析Undo记录。
返回值类型: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 |
Undo 记录中存储的旧版本元组预留标识位。 |
输出参数 |
flag |
text |
Undo 记录中存储的旧版本元组状态标识。 |
输出参数 |
flag2 |
text |
Undo 记录中存储的旧版本元组列数。 |
输出参数 |
t_hoff |
text |
Undo记录数据头的长度。 |
gs_undo_dump_xid(undo_xid xid)
描述:根据xid解析Undo记录。
返回值类型:record
参数类型 |
参数名 |
类型 |
描述 |
---|---|---|---|
输入参数 |
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 |
Undo 记录中存储的旧版本元组预留标识位。 |
输出参数 |
flag |
text |
Undo 记录中存储的旧版本元组状态标识。 |
输出参数 |
flag2 |
text |
Undo 记录中存储的旧版本元组列数。 |
输出参数 |
t_hoff |
text |
Undo记录数据头的长度。 |
gs_verify_undo_record(type, start_idx,end_idx, location)
描述:校验Undo记录,目前只支持磁盘校验模式。仅支持在业务非运行时执行离线校验,校验之前需要手动执行一次checkpoint落盘操作。
返回值类型:record
参数类型 |
参数名 |
类型 |
描述 |
---|---|---|---|
输入参数 |
type |
text |
校验类型: ‘urp’:校验给定urp区间的所有undo记录。 |
输入参数 |
start_idx |
int64 |
开始位置: type为’urp’时,表示起始undo记录位置。 |
输入参数 |
end_idx |
int64 |
结束位置: type为’urp’时,表示undo记录结束位置。 |
输入参数 |
location |
bool |
0:内存校验。 目前该参数只支持输入为1。 |
输出参数 |
zone_id |
int64 |
UndoZone编号。 |
输出参数 |
detail |
text |
校验出错信息。 |
示例1:校验urp为24的这条Undo记录:
gaussdb=# select * from gs_verify_undo_record('urp', 24, 24, 1); zone_id | detail --------+-------- (0 rows)
示例2:从磁盘中校验zone0到zone2的所有Undo记录:
gaussdb=# select * from gs_verify_undo_record('zone', 0, 2, 1); zone_id | detail --------+-------- (0 rows)
调用此视图如有报错,请联系华为工程师处理。
gs_verify_undo_slot(type, start_idx,end_idx, location)
描述:校验Undo事务槽,目前只支持磁盘校验模式。仅支持在业务非运行时执行离线校验,校验之前需要手动执行一次checkpoint落盘操作。
返回值类型:record
参数类型 |
参数名 |
类型 |
描述 |
---|---|---|---|
输入参数 |
type |
text |
校验类型: ‘zone’:校验给定zone区间的所有zone的所有事务槽。 |
输入参数 |
start_idx |
int64 |
起始UndoZone编号。 |
输入参数 |
end_idx |
int64 |
结束UndoZone编号。 |
输入参数 |
location |
bool |
0:内存校验。 目前该参数只支持输入为1。 |
输出参数 |
zone_id |
int64 |
UndoZone编号。 |
输出参数 |
detail |
text |
校验出错信息。 |
示例1:从磁盘中校验zone0到zone2的所有事务槽记录:
gaussdb=# select * from gs_verify_undo_slot('zone', 0, 2, 1); zone_id | detail --------+-------- (0 rows)
调用此视图如有报错,请联系华为工程师处理。
gs_verify_undo_meta(type, start_idx,end_idx, location)
描述:校验Undo元信息,目前只支持磁盘校验模式。仅支持在业务非运行时执行离线校验,校验之前需要手动执行一次checkpoint落盘操作。
返回值类型:record
参数类型 |
参数名 |
类型 |
描述 |
---|---|---|---|
输入参数 |
type |
text |
校验类型,type只能设置为’all’: ‘all’:校验给定zone区间的所有zone的所有meta信息。 |
输入参数 |
start_idx |
int64 |
起始UndoZone编号。 |
输入参数 |
end_idx |
int64 |
结束UndoZone编号。 |
输入参数 |
location |
bool |
0:内存校验。 目前该参数只支持输入为1。 |
输出参数 |
zone_id |
int64 |
UndoZone编号。 |
输出参数 |
detail |
text |
校验出错信息。 |
示例1:从磁盘中校验zone0到zone2的所有meta信息记录:
gaussdb=# select * from gs_verify_undo_meta('all', 0, 2, 1); zone_id | detail --------+-------- (0 rows)
调用此视图如有报错,请联系华为工程师处理。
gs_async_rollback_worker_status()
描述:活跃异步回滚线程状态监控。
返回值类型:record
参数类型 |
参数名 |
类型 |
描述 |
---|---|---|---|
输出参数 |
datid |
oid |
数据库ID。 |
输出参数 |
pid |
int64 |
进程ID。 |
输出参数 |
sessionid |
int64 |
会话ID。 |
输出参数 |
usesysid |
oid |
发起该线程的用户ID。 |
输出参数 |
state |
int32 |
线程当前状态: 0:未定义。 1:空闲。 2:运行中。 |
输出参数 |
rollback_start_time |
timestamptz |
线程启动时间戳。 |
输出参数 |
idx |
uint32 |
异步回滚线程在数组中的下标。 |
输出参数 |
xid |
uint64 |
正在回滚的事务xid。 |
输出参数 |
progress |
text |
该事务的回滚进度(当前已回滚的Undo记录条数/总Undo记录条数,以百分比形式显示)。 |
gs_async_rollback_xact_status()
描述:异步回滚任务哈希表监控。
返回值类型:record
参数类型 |
参数名 |
类型 |
描述 |
---|---|---|---|
输出参数 |
xid |
xid |
需要进行异步回滚的事务xid。 |
输出参数 |
start_undoptr |
uint64 |
该事务起始Undo记录指针。 |
输出参数 |
end_undoptr |
uint64 |
该事务结束Undo记录指针。 |
输出参数 |
dbid |
uint32 |
该事务所在数据库id。 |
输出参数 |
slot_ptr |
uint64 |
该事务对应事务槽的指针。 |
输出参数 |
launched |
bool |
是否有对应的活跃的异步回滚线程。 |
gs_undo_recycler_status()
描述:异步回收线程状态监控。
返回值类型:record
参数类型 |
参数名 |
类型 |
描述 |
---|---|---|---|
输出参数 |
datid |
oid |
数据库ID。 |
输出参数 |
pid |
int64 |
进程ID。 |
输出参数 |
sessionid |
int64 |
会话ID。 |
输出参数 |
usesysid |
oid |
发起该线程的用户ID。 |
输出参数 |
state |
int32 |
线程当前状态: 0:未定义。 1:空闲。 2:运行中。 |
输出参数 |
backend_start |
timestamptz |
线程启动时间戳。 |
输出参数 |
total_recycle_time |
uint64 |
总回收时间。 |
输出参数 |
max_recycle_time |
uint64 |
最大回收时间。 |
输出参数 |
total_recycle_size |
uint64 |
总回收空间。 |
输出参数 |
total_recycle_count |
uint64 |
总回收次数。 |
输出参数 |
recycle_sleep_count |
uint64 |
睡眠次数。 |
输出参数 |
recycle_sleep_time |
uint64 |
睡眠总时间。 |
输出参数 |
max_recycle_sleep_time |
uint64 |
最长睡眠时间。 |
输出参数 |
last_recycle_timestamp |
uint64 |
上次成功回收时间戳。 |
输出参数 |
last_update_global_recycle_xid_timestamp |
uint64 |
globalRecycleXid上次推进时间戳。 |
gs_undo_launcher_status()
描述:异步回滚发起线程状态监控。
返回值类型:record
参数类型 |
参数名 |
类型 |
描述 |
---|---|---|---|
输出参数 |
datid |
oid |
数据库ID。 |
输出参数 |
pid |
int64 |
进程ID。 |
输出参数 |
sessionid |
int64 |
会话ID。 |
输出参数 |
usesysid |
oid |
发起该线程的用户ID。 |
输出参数 |
state |
int32 |
线程当前状态: 0:未定义。 1:空闲。 2:运行中。 |
输出参数 |
backend_start |
timestamptz |
线程启动时间戳。 |
输出参数 |
total_async_rollback_task_count |
uint64 |
本节点数据库启动后发起异步回滚任务总个数。 |
输出参数 |
average_async_rollback_time |
uint64 |
异步回滚任务平均耗时。 |
输出参数 |
max_async_rollback_time |
uint64 |
异步回滚任务最长耗时。 |
输出参数 |
min_async_rollback_time |
uint64 |
异步回滚任务最短耗时。 |
父主题: 系统管理函数
同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家