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

来源:这里教程网 时间:2026-03-03 20:07:47 作者:

数据库管理-第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语句。

    总结

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

  • 相关推荐