Skip to content

74.4. 两阶段事务#

PostgreSQL支持两阶段提交 (2PC) 协议,允许多个分布式系统以事务方式协同工作。命令为PREPARE TRANSACTIONCOMMIT PREPAREDROLLBACK PREPARED。两阶段事务旨在供外部事务管理系统使用。PostgreSQL遵循 X/Open XA 标准提出的功能和模型,但未实现一些不常用的方面。

当用户执行PREPARE TRANSACTION时,唯一可能的后续命令是COMMIT PREPAREDROLLBACK PREPARED。通常,此准备状态的持续时间很短,但外部可用性问题可能意味着事务在此状态下停留较长时间。短暂的已准备事务仅存储在共享内存和 WAL 中。跨越检查点的交易记录在pg_twophase目录中。可以使用pg_prepared_xacts检查当前已准备的事务。