10bet网址
MySQL 8.0参考手册
相关文件10bet官方网站 下载本手册 从本手册中摘录

13.3.8 XA交易

支持XA.交易适用于Innodb.存储引擎。MySQL XA实现基于X / OPEN CAE文档分布式事务处理:XA规范。本文档由开放组发布,可用http://www.opengroup.org/public/pubs/catalog/c193.htm.。描述了当前XA实现的限制第13.3.8.3节“对XA Transaction的限制”

在客户端,没有特殊要求。MySQL Server的XA界面由以开头的SQL语句组成XA.关键词。MySQL客户端程序必须能够发送SQL语句并理解XA语句接口的语义。它们不需要与最近的客户端库链接。旧客户端库也有效。

在MySQL连接器中,MySQL Connector / J 5.0.0和更高版本直接支持XA,借助于为您处理XA SQL语句界面的类接口。

XA支持分布式事务,即能够允许多个单独的事务资源参与全局交易。交易资源通常是RDBMSS,但可能是其他类型的资源。

全局交易涉及自行交易的几个操作,但所有这些行为都必须成功完成,或者全部将其作为一组滚回。从本质上讲,这延长了酸性一个级别因此,多酸事务可以协同执行,因为也具有酸性属性的全局操作的组件。(与非批判交易一样,可序列化如果您的应用程序对读现象敏感,可能是优选的。可重复阅读可能不足以用于分布式交易。)

分布式事务的一些示例:

  • 应用程序可以充当与RDBMS的消息传递服务相结合的集成工具。该应用程序确保交易消息发送,检索和处理的交易,也涉及交易数据库全局事务。你可以想到这一点交易电子邮件。

  • 应用程序执行涉及不同数据库服务器的操作,例如MySQL服务器和Oracle服务器(或多个MySQL服务器),其中涉及多个服务器的操作必须作为全局事务的一部分发生,而不是每台服务器本地的单独事务。

  • 银行通过自动柜员机(ATM)在RDBMS中保留账户信息并分销并收到资金。有必要确保在帐户中正确反映ATM动作,但这不能单独使用RDBMS完成。全球事务管理器集成了ATM和数据库资源,以确保金融交易的整体一致性。

使用全局事务的应用程序涉及一个或多个资源管理器和事务管理器:

  • 资源管理器(RM)提供对事务资源的访问。数据库服务器是一种资源管理器。必须可以提交或回滚由RM管理的交易。

  • 事务管理器(TM)协调是全局交易的一部分的交易。它与处理每个交易的RMS通信。全局交易中的个人交易是分支机构全球交易。全局交易及其分支机构由稍后描述的命名方案识别。

XA的MySQL实现使MySQL Server能够充当处理全局事务中XA事务的资源管理器。连接到MySQL Server的客户端程序充当事务管理器。

要执行全局交易,有必要知道涉及哪些组件,并将每个组件带到可以提交或回滚时的点。根据每个组件报告其成功的能力的报告,它们必须全部提交或回滚作为原子组。也就是说,所有组件都必须提交,或者所有组件都必须回滚。要管理全局事务,有必要考虑任何组件或连接网络可能会失败。

执行全局事务的过程使用两阶段提交(2PC)。在执行由全局交易的分支执行的操作之后发生这种情况。

  1. 在第一阶段,制备所有分支。也就是说,他们被TM告诉了准备好提交。通常,这意味着管理分支的每个RM记录稳定存储中分支的操作​​。分支表示它们是否能够这样做,并且这些结果用于第二阶段。

  2. 在第二阶段,TM告诉RMS是否提交或回滚。如果所有分支机构在编写他们能够提交时,他们都会被告知所有分支机构。如果任何分支指示它准备就无法提交,则告知所有分支机构都会回滚。

在某些情况下,全局交易可能会使用单相提交(1PC)。例如,当事务管理器发现全局事务仅包含一个交易资源(即单个分支)时,可以告诉该资源以同时准备和提交。