受支持版本: 当前版本 (18) / 17 / 16
开发版本: devel

65.4. 两阶段事务 #

PostgreSQL支持两阶段提交(2PC) 协议,它允许多个分布式系统以事务方式协同工作。相关命令是PREPARE TRANSACTIONCOMMIT PREPAREDROLLBACK PREPARED。两阶段事务旨在供外部事务管理系统使用。 PostgreSQL遵循 X/Open XA 标准提出的特性和模型,但没有实现其中某些不太常用的部分。

当用户执行PREPARE TRANSACTION时,后续唯一可能执行的命令就是COMMIT PREPAREDROLLBACK PREPARED。一般来说,这种预备状态预期只会持续很短时间,但外部可用性问题可能意味着事务会在这种状态下停留较长一段时间。短期存在的预备事务只存储在共享内存和 WAL 中。跨越检查点的事务会记录在 pg_twophase目录中。当前处于预备状态的事务可通过 pg_prepared_xacts查看。

提交更正

如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。