数据库管理-第202期 23ai:优先级事务-02(20240613)

数据库管理-第202期 优先级事务-02(20240613)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database(Oracle与MySQL)
PostgreSQL ACE Partner
10年数据库行业经验,现主要从事数据库服务工作
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP、认证技术专家、年度墨力之星,ITPUB认证专家、专家百人团成员,OCM讲师,PolarDB开源社区技术顾问,HaloDB外聘技术顾问、OceanBase观察团成员,青学会(青年数据库学习互助会)外部顾问
圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著名社恐(社交恐怖分子)
公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭

上一期主要讲解了优先级事务的基本概念,本期继续深入。

1 监控

数据库提供了对应的视图来帮助监控事务优先级和等待目标等信息。
V$TRANSACTION中有两列可用于帮助监视事务。TXN_PRIORITY显示事务优先级,PRIORITY_TXNS_WAIT_TARGET显示以秒为单位指定的事务的等待目标。
告警日志中也在事务被终止时记录告警信息,例如:

Transaction (sid: 203, serial: 39661, xid: 7.23.1161, txn_priority: "LOW") terminated by transaction (sid: 204, serial: 9266, xid: 13.15.3, txn_priority: "HIGH") because of the parameter "priority_txns_high_wait_target = 10"

无法在调度作业中设置TXN_PRIORITY。如果在调度作业中设置,则会引发错误ORA-63303并记录在告警日志中。

2 ROLLBACK模式下增加的统计信息

当优先级事务处于ROLLBACK模式时,优先级事务的特定的统计信息会增加。
以下统计信息仅在ROLLBACK模式下增加。由于优先级较高的阻塞事务,每次回滚事务时,这些统计信息都会增加。

SQL> select name
     from   V$SYSSTAT
     where  name like '%txns rollback%';

NAME
---------------------------------------------------------------
txns rollback priority_txns_high_wait_target
txns rollback priority_txns_medium_wait_target

例如,如果由于高优先级事务而回滚了中优先级或低优先级事务,则txns rollback priority_txns_high_wait_target将增加。

3 TRACK模式下增加的统计信息

当优先级事务处于TRACK模式时,优先级事务的特定的统计信息会增加。
以下统计信息仅在TRACK模式下增加。每当事务由于优先级更高的阻塞事务而回滚时,这些统计信息都会增加。

SQL> select name
     from   V$SYSSTAT
     where  name like '%txns track mode%';

NAME
----------------------------------------------------------------
txns track mode priority_txns_high_wait_target
txns track mode priority_txns_medium_wait_target

例如,如果中或低优先级事务由于高优先级事务而回滚,则txns track mode priority_txns_high_wait_target将增加。

4 优先级事务行为

4.1 分布式事务的优先级事务行为

Participant Priority(参与者优先级)

对于分布式事务,协调器分支的优先级由所有参与者(远程分支)继承。也就是说,如果分布式事务txn1在db1上启动,并且在db2上有一个参与者txn2,那么txn2将继承txn1的TXN_PRIORITY参数值。

确认行为

分布式事务与本地事务相同的方式进行确认自动回滚。但是,分布式事务确认自动回滚行为与本地事务在以下方面有所不同:

  • 当分布式事务的远程分支自动回滚时,协调器会话将正常继续,直到从协调器向自动回滚的远程分支发出SQL语句为止。此时,协调器将抛出ORA-63300和ORA-63302,直到接收到回滚确认。
  • 当分布式事务的协调器或本地分支自动回滚时,协调器会话中的任何新SQL语句都将立即抛出ORA-63300和ORA-63302。此行为与本地事务相同。

4.2 XA事务的优先级事务行为

一旦XA事务被自动回滚,那么XA客户端将收到任何后续XA语句的XAER_RMFAIL错误,直到收到回滚确认为止。客户端需要处理XAER_RMFAIL,然后执行XA_END和XA_ROLLBACK语句。
如果由于设置了TMSUSPEND标志的XA_END,XA事务已经处于挂起状态,则确认只需要执行XA_ROLLBACK语句。

总结

本期深入讲解了优先级事务的监控、统计信息以及不同事务模式下的行为方式。下一期收个尾,实战演示。
老规矩,知道写了些啥。

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖头鱼的鱼缸(尹海文)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值