暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OceanBase 学习笔记115:如何展示正在进行的事务参与者状态信息?

338

GV$OB_TRANSACTION_PARTICIPANTS


功能

GV$OB_TRANSACTION_PARTICIPANTS 视图用于展示正在进行的事务参与者状态信息。

字段说明

字段名称类型是否可以为 NULL描述
TENANT_IDbigint(20)NO租户 ID
SVR_IPvarchar(46)NOIP地址
SVR_PORTbigint(20)NO端口
SESSION_IDbigint(20)NO会话 ID
SCHEDULER_ADDRvarchar(64)NO事务 Session 所在机器 IP
TX_TYPEvarchar(11)NO事务类型
TX_IDbigint(20))NO事务 ID
LS_IDbigint(20)NO事务记录涉及的分区信息
PARTICIPANTSvarchar(1024)NO事务涉及的所有分区
CTX_CREATE_TIMEtimestamp(6)YESctx 创建时间
TX_EXPIRED_TIMEtimestamp(6)YES事务超时时间
STATEvarchar(13)NO状态
ACTIONvarchar(10)NO当前事务执行的动作:
  • action = 1 NULL
  • action = 2 START
  • action = 3 COMMIT
  • action = 4 ABORT
  • action = 5 DIED
  • action = 6 END
    PENDING_LOG_SIZEbigint(20)NO本事务该参与者尚未刷盘的日志大小
    FLUSHED_LOG_SIZEbigint(20)NO本事务该参与者已经刷盘的日志大小
    ROLEvarchar(8)NO该副本的角色,取值 0 和 1 分别表示 Leader 和 Follower。

    常用 SQL

    GV$OB_TRANSACTION_PARTICIPANTS 视图用于统计集群内部所有活跃事务的信息。事务涉及 N 个日志流的写操作,每个日志流产生一条记录,通过该视图可统计耗时长的事务。

    统计 GV$OB_TRANSACTION_PARTICIPANTS 虚拟表中耗时超过 100 s 的活跃事务参与者。SQL 语法如下:

    obclient> SELECT svr_ip, tx_id, ls_id from GV$OB_TRANSACTION_PARTICIPANTS where tenant_id = xxx and ctx_create_time < date_sub(now(), INTERVAL 100 SECOND);
    

    基于查询结果 tx_id 字段,可以去 GV$OB_SQL_AUDIT 中搜索本事务内的所有 SQL 及耗时等信息。

    「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
    关注作者
    【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论