网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts盘古助手
华为云Astro大屏应用
计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
云手机服务器 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器(旧版)
VR云渲游平台 CVR
Huawei Cloud EulerOS
云化数据中心 CloudDC
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘平台 IEF
CloudPond云服务
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
湖仓构建 LakeFormation
智能数据洞察 DataArts Insight
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
开天aPaaS
应用平台 AppStage
开天企业工作台 MSSE
开天集成工作台 MSSI
API中心 API Hub
云消息服务 KooMessage
交换数据空间 EDS
云地图服务 KooMap
云手机服务 KooPhone
组织成员账号 OrgID
云空间服务 KooDrive
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
区块链
区块链服务 BCS
数字资产链 DAC
华为云区块链引擎服务 HBS
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
价格
成本优化最佳实践
专属云商业逻辑
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
其他
管理控制台
消息中心
产品价格详情
系统权限
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
云服务信任体系能力说明
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts盘古助手
华为云Astro大屏应用
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
云存储网关 CSG
专属分布式存储服务 DSS
数据工坊 DWR
地图数据 MapDS
键值存储服务 KVS
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
云原生服务中心 OSC
应用服务网格 ASM
华为云UCS
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB
云数据库 GeminiDB
数据管理服务 DAS
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
语音交互服务 SIS
人证核身服务 IVS
视频智能分析服务 VIAS
城市智能体
自动驾驶云服务 Octopus
盘古大模型 PanguLargeModels
IoT物联网
设备接入 IoTDA
全球SIM联接 GSL
IoT数据分析 IoTA
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
企业应用
域名注册服务 Domains
云解析服务 DNS
企业门户 EWP
ICP备案
商标注册
华为云WeLink
华为云会议 Meeting
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMA Exchange
API全生命周期管理 ROMA API
政企自服务管理 ESM
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
数字内容生产线 MetaStudio
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
专属云
专属计算集群 DCC
开发者工具
SDK开发指南
API签名指南
DevStar
华为云命令行工具服务 KooCLI
Huawei Cloud Toolkit
CodeArts API
云化转型
云架构中心
云采用框架
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
我的凭证
华为云公共事业服务云平台
工业软件
工业数字模型驱动引擎
硬件开发工具链平台云服务
工业数据转换引擎云服务
本文导读

展开导读

Undo系统函数

更新时间:2024-11-12 GMT+08:00
分享

如需确认当前回滚段使用的存储方式,可以通过查询gs_global_config系统表的undostoragetype字段确认:segpage表示段页式,预留参数,暂不支持;page表示页式。

示例:
gaussdb=# SELECT * FROM gs_global_config where name like '%undostoragetype%';
      name       |  value
-----------------+---------
 undostoragetype |  page
(1 row)
说明:

Undo系统函数仅支持在DN上执行,不支持在CN上执行。

  • 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

    说明:

    该系统函数仅支持回滚段使用页式存储方式。

    表1 gs_undo_meta参数说明

    参数类型

    参数名

    类型

    描述

    输出参数

    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
    说明:

    该系统函数仅支持回滚段使用页式存储方式。

    表2 gs_undo_translot参数说明

    参数类型

    参数名

    类型

    描述

    输出参数

    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表示已经提交。
    • 1表示正在执行中。
    • 2表示回滚中。
    • 3表示回滚完成。
  • gs_stat_undo([bool init])

    描述:Undo统计信息。

    返回值类型:record

    说明:

    当回滚段使用页式文件存储方式时,使用以下格式。

    表3 gs_stat_undo页式参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    init

    bool

    可选参数,是否清理统计信息并重新开始统计。

    输出参数

    curr_used_zone_count

    int

    当前使用的UndoZone数量。

    输出参数

    top_used_zones

    text

    前三个使用量最大的UndoZone信息,格式输出为:

    • zoneId1:使用大小。
    • zoneId2:使用大小。
    • zoneId3:使用大小。

    输出参数

    curr_used_undo_size

    int

    当前使用的Undo总空间大小,单位为MB。

    输出参数

    undo_threshold

    int

    为guc参数undo_space_limit_size * 80%计算的结果,单位为MB。

    输出参数

    global_recycle_xid

    xid

    当前Undo空间回收到的事务xid(小于该xid事务产生的Undo记录都已经被回收)。

    输出参数

    oldest_xmin

    xid

    最旧的活跃事务。

    输出参数

    total_undo_chain_len

    int8

    所有访问过的Undo链总长度。

    输出参数

    max_undo_chain_len

    int8

    最大访问过的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数据表。

    表4 gs_undo_dump_parsepage_mv参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    relpath

    text

    USTORE表数据文件相对路径,相对路径格式为:tablespace name/database oid/relfilenode,例如base/16603/16384, 表对应数据文件的相对路径查找可以通过pg_relation_filepath('tablename')查询。

    输入参数

    blkno

    int8

    • -1 解析所有block页面。
    • 0-MaxBlocNumber解析指定的block页面。

    输入参数

    reltype

    text

    表类型,目前仅支持USTORE数据表,取值为uheap。

    输入参数

    rmem

    boolean

    • false
    • true

    目前仅支持false,从磁盘文件上解析对应的页面。

    输出参数

    output

    text

    解析结果文件的绝对路径。

  • gs_undo_meta_dump_zone(zone_id int, read_memory boolean)

    描述:解析Undo模块中UndoZone的元信息。

    返回值类型:record

    说明:

    当回滚段使用页式文件存储方式时,使用以下格式。

    表5 gs_undo_meta_dump_zone页式参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    zone_id

    int

    UndoZone编号:
    • -1:查询所有UndoZone。
    • 0-1,048,575:查询对应zone_id编号的UndoZone元信息。

    输入参数

    read_memory

    boolean

    • true:从当前内存中读取。
    • false:从物理文件中读取。

    输出参数

    zone_id

    oid

    UndoZone编号。

    输出参数

    persist_type

    oid

    持久化级别:

    • 0:普通表。
    • 1:无日志表。
    • 2:临时表。

    输出参数

    insert

    text

    下一条插入的Undo记录位置。

    输出参数

    discard

    text

    普通回收到的Undo记录位置。

    输出参数

    forcediscard

    text

    强制回收掉Undo记录位置,小于它的Undo记录已经被回收。

    输出参数

    lsn

    text

    修改UndoZone的LSN。

    示例:
    gaussdb=# SELECT * FROM gs_undo_meta_dump_zone(-1,true);
     zone_id | persist_type | insert | discard | forcediscard |   lsn
    ---------+--------------+--------+---------+--------------+----------
           0 |            0 | 244577 | 244577  | 244577       | 43967224
           1 |            0 | 108    | 66      | 66           | 43967568
      349525 |            1 | 24     | 24      | 24           | 0
      349526 |            1 | 24     | 24      | 24           | 0
      699050 |            2 | 24     | 24      | 24           | 0
      699051 |            2 | 24     | 24      | 24           | 0
    (6 rows)
  • gs_undo_meta_dump_spaces(zone_id int, read_memory boolean)

    描述:解析Undo模块中Undo记录空间、Transaction Slot空间的元信息。

    返回值类型:record

    说明:

    该系统函数仅支持回滚段使用页式存储方式。

    表6 gs_undo_meta_dump_spaces参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    zone_id

    int

    UndoZone编号:
    • -1:查询所有UndoZone。
    • 0-1,048,575:查询对应zone_id编号的UndoZone元信息。

    输入参数

    read_memory

    boolean

    • true:从当前内存中读取。
    • false:从物理文件中读取。

    输出参数

    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

    修改Transaction Slot空间LSN。

  • gs_undo_meta_dump_slot(zone_id int, read_memory boolean)

    描述:解析Undo模块中Transaction Slot元信息。

    返回值类型:record

    说明:

    该系统函数仅支持回滚段使用页式存储方式。

    表7 gs_undo_meta_dump_slot参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    zone_id

    int

    Undo zone编号:
    • -1:查询所有UndoZone。
    • 0-1,048,575:查询对应zone_id编号的UndoZone元信息。

    输入参数

    read_memory

    boolean

    • true:从当前内存中读取。
    • false:从物理文件中读取。

    输出参数

    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

    说明:

    当回滚段使用页式文件存储方式时,使用以下格式。

    表8 gs_undo_translot_dump_slot页式参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    zone_id

    int

    UndoZone编号:
    • -1:查询所有UndoZone。
    • 0-1,048,575:查询对应zone_id编号的UndoZone元信息。

    输入参数

    read_memory

    boolean

    • true:从当前内存中读取。
    • false:从物理文件中读取。

    输出参数

    zone_id

    oid

    UndoZone编号。

    输出参数

    slot_xid

    text

    事务ID。

    输出参数

    start_undoptr

    text

    本 Transaction Slot 起始 Undo Record 在本 UndoZone内的位置。

    输出参数

    end_undoptr

    text

    本 Transaction Slot 结束 Undo Record 在本 UndoZone内的位置。

    输出参数

    slot_ptr

    text

    Transaction Slot对应的位置。

    输出参数

    slot_states

    oid

    事务状态:
    • 0:已提交。
    • 1:执行中。
    • 2:回滚中。
    • 3:回滚完成。
    示例:
    gaussdb=# SELECT * FROM gs_undo_translot_dump_slot(-1,true);
     zone_id |     slot_xid     |  start_undoptr   |   end_undoptr    |     slot_ptr     | slot_states
    ---------+------------------+------------------+------------------+------------------+-------------
           1 | 0000000000015758 | 0000000000000042 | 000000000000006C | 0000000000000038 |           0
    (1 row)
  • gs_undo_translot_dump_xid(slot_xid xid, read_memory boolean)

    描述:根据xid解析UndoZone中对应的Transaction Slot。

    返回值类型:record

    说明:

    当回滚段使用页式文件存储方式时,使用以下格式。

    表9 gs_undo_translot_dump_xid页式参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    slot_xid

    xid

    需要查询的事务ID。

    输入参数

    read_memory

    boolean

    • true:从当前内存中读取。
    • false:从物理文件中读取。

    输出参数

    zone_id

    oid

    UndoZone编号。

    输出参数

    slot_xid

    text

    事务ID。

    输出参数

    start_undoptr

    text

    本 Transaction Slot 起始 Undo Record在本UndoZone内的位置。

    输出参数

    end_undoptr

    text

    本 Transaction Slot 结束 Undo Record在本UndoZone内的位置。

    输出参数

    slot_ptr

    text

    Transaction Slot对应的位置。

    输出参数

    slot_states

    oid

    事务状态:
    • 0 已提交。
    • 1 执行中。
    • 2 回滚中。
    • 3 回滚完成。
    示例:
    gaussdb=# SELECT * FROM gs_undo_translot_dump_xid('15758',false);
     zone_id |     slot_xid     |  start_undoptr   |   end_undoptr    |     slot_ptr     | slot_states
    ---------+------------------+------------------+------------------+------------------+-------------
           1 | 0000000000015758 | 0000000000000042 | 000000000000006C | 0000000000000038 |           0
    (1 row)
  • gs_undo_dump_record(undoptr bigint)

    描述:解析给定 URP 的 Undo Record 信息。

    返回值类型:record

    说明:

    当回滚段使用页式文件存储方式时,使用以下格式。

    表10 gs_undo_dump_record页式参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    undoptr

    xid

    需要解析的Undo记录起始位置,十进制格式。

    输出参数

    undoptr

    xid

    需要解析的Undo记录在本UndoZone内的起始位置。

    输出参数

    xactid

    xid

    事务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记录数据头的长度。

    示例(在Undo记录没有被回收的前提下,入参undoptr可以通过gs_undo_translot_dump_slot函数的出参end_undoptr转换为10进制后进行查询):
    gaussdb=# SELECT * FROM gs_undo_dump_record('0000000000000042');
     undoptr |   xactid   | cid | reloid | relfilenode | utype |  blkprev   | blockno | uoffset | prevurp | payloadlen | oldxactid | partitionoid | tablespace | alreadyread_byt
    es | prev_undorec_len | td_id | reserved | flag | flag2 | t_hoff
    ---------+------------+-----+--------+-------------+-------+------------+---------+---------+---------+------------+-----------+--------------+------------+----------------
    ---+------------------+-------+----------+------+-------+--------
          42 | 1073807360 | 0   | 0      | 108986369   | 0     | 1024786474 | 0       | 0       | 0       | 0          | 0         | 0            | 0          | 36
       | 16390            | -1    | -1       | -1   | -1    | -1
    (1 row)
  • gs_undo_dump_xid(undo_xid xid)

    描述:根据xid解析Undo记录。

    返回值类型:record

    说明:

    当回滚段使用页式文件存储方式时,使用以下格式。

    表11 gs_undo_dump_xid页式参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    undo_xid

    xid

    事务Xid。

    输出参数

    undoptr

    xid

    需要解析的Undo记录在本UndoZone内的起始位置。

    输出参数

    xactid

    xid

    事务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记录数据头的长度。

    示例:
    gaussdb=# SELECT * FROM gs_undo_dump_xid('15779');
     undoptr | xactid | cid | reloid | relfilenode | utype | blkprev | blockno | uoffset | prevurp | payloadlen | oldxactid | partitionoid | tablespace | alreadyread_bytes | pr
    ev_undorec_len | td_id | reserved | flag | flag2 | t_hoff
    ---------+--------+-----+--------+-------------+-------+---------+---------+---------+---------+------------+-----------+--------------+------------+-------------------+---
    ---------------+-------+----------+------+-------+--------
         108 |  15779 | 0   | 16767  | 16767       | 64    | 0       | 0       | 3       | 0       | 0          | 0         | 0            | 1663       | 40                | 42
                   | -1    | -1       | -1   | -1    | -1
    (1 row)
  • gs_verify_undo_record(type, start_idx,end_idx, location)

    描述:校验Undo记录,目前只支持磁盘校验模式。仅支持在业务非运行时执行离线校验,校验之前需要手动执行一次checkpoint落盘操作。

    返回值类型:record

    说明:

    当回滚段使用页式文件存储方式时,使用以下格式。

    表12 gs_verify_undo_record页式参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    type

    text

    校验类型:

    • 'urp':校验给定urp区间的所有undo记录。
    • 'zone':校验给定zone区间的所有zone的所有undo记录。

    输入参数

    start_idx

    int8

    开始位置:

    • type为'urp'时,表示起始undo记录位置。
    • type为'zone'时,表示起始UndoZone编号。

    输入参数

    end_idx

    int8

    结束位置:

    • type为'urp'时,表示undo记录结束位置。
    • type为'zone'时,表示结束UndoZone编号。

    输入参数

    location

    bool

    • 0:内存校验。
    • 1:磁盘校验。

    目前该参数只支持输入为1。

    输出参数

    zone_id

    int8

    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

    说明:

    当回滚段使用页式文件存储方式时,使用以下格式。

    表13 gs_verify_undo_slot页式参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    type

    text

    校验类型:

    • 'zone':校验给定zone区间的所有zone的所有事务槽。

    输入参数

    start_idx

    int8

    起始UndoZone编号。

    输入参数

    end_idx

    int8

    结束UndoZone编号。

    输入参数

    location

    bool

    • 0:内存校验。
    • 1:磁盘校验。

    目前该参数只支持输入为1。

    输出参数

    zone_id

    int8

    UndoZone编号。

    输出参数

    detail

    text

    校验出错信息。

    示例,从磁盘中校验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

    说明:

    该系统函数仅支持回滚段使用页式存储方式。

    表14 gs_verify_undo_meta参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    type

    text

    校验类型,type只能设置为'all':

    • 'all':校验给定zone区间的所有zone的所有meta信息。

    输入参数

    start_idx

    int64

    起始UndoZone编号。

    输入参数

    end_idx

    int64

    结束UndoZone编号。

    输入参数

    location

    bool

    • 0:内存校验。
    • 1:磁盘校验。

    目前该参数只支持输入为1。

    输出参数

    zone_id

    int64

    UndoZone编号。

    输出参数

    detail

    text

    校验出错信息。

    示例从磁盘中校验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

    表15 gs_async_rollback_worker_status参数说明

    参数类型

    参数名

    类型

    描述

    输出参数

    datid

    oid

    数据库ID。

    输出参数

    pid

    int8

    线程ID。

    输出参数

    sessionid

    int8-

    会话ID。

    输出参数

    usesysid

    oid

    发起该线程的用户ID。

    输出参数

    state

    int=

    线程当前状态:

    0:未定义。

    1:空闲。

    2:运行中。

    输出参数

    rollback_start_time

    timestamptz

    线程启动时间戳。

    输出参数

    idx

    oid

    异步回滚线程在数组中的下标。

    输出参数

    xid

    xid

    正在回滚的事务xid。

    输出参数

    progress

    text

    该事务的回滚进度(当前已回滚的Undo记录条数/总Undo记录条数,以百分比形式显示)。

  • gs_async_rollback_xact_status()

    描述:异步回滚任务哈希表监控。

    返回值类型:record

    表16 gs_async_rollback_xact_status参数说明

    参数类型

    参数名

    类型

    描述

    输出参数

    xid

    xid

    需要进行异步回滚的事务xid。

    输出参数

    start_undoptr

    xid

    该事务起始Undo记录指针。

    输出参数

    end_undoptr

    xid

    该事务结束Undo记录指针。

    输出参数

    dbid

    uint32

    该事务所在数据库id。

    输出参数

    slot_ptr

    xid

    该事务对应事务槽的指针。

    输出参数

    launched

    bool

    是否有对应的活跃的异步回滚线程。

  • gs_undo_recycler_status()

    描述:异步回收线程状态监控。

    返回值类型:record

    表17 gs_undo_recycler_status参数说明

    参数类型

    参数名

    类型

    描述

    输出参数

    datid

    oid

    数据库ID。

    输出参数

    pid

    int8

    线程ID。

    输出参数

    sessionid

    int8

    会话ID。

    输出参数

    usesysid

    oid

    发起该线程的用户ID。

    输出参数

    state

    int

    线程当前状态:

    0:未定义。

    1:空闲。

    2:运行中。

    输出参数

    backend_start

    timestamptz

    线程启动时间戳。

    输出参数

    total_recycle_time

    xid

    总回收时间。

    输出参数

    max_recycle_time

    xid

    最大回收时间。

    输出参数

    total_recycle_size

    xid

    总回收空间。

    输出参数

    total_recycle_count

    xid

    总回收次数。

    输出参数

    recycle_sleep_count

    xid

    睡眠次数。

    输出参数

    recycle_sleep_time

    xid

    睡眠总时间。

    输出参数

    max_recycle_sleep_time

    xid

    最长睡眠时间。

    输出参数

    last_recycle_timestamp

    timestamptz

    上次成功回收时间戳。

    输出参数

    last_update_global_recycle_xid_timestamp

    timestamptz

    globalRecycleXid上次推进时间戳。

  • gs_undo_launcher_status()

    描述:异步回滚发起线程状态监控。

    返回值类型:record

    表18 gs_undo_launcher_status参数说明

    参数类型

    参数名

    类型

    描述

    输出参数

    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

    异步回滚任务最短耗时。

提示

您即将访问非华为云网站,请注意账号财产安全

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容