2025年9月25日: PostgreSQL 18 发布!
支持的版本: 当前 (18) / 17 / 16
开发版本: devel

67.4. 两阶段事务 #

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

当用户执行 PREPARE TRANSACTION 时,唯一可能的后续命令是 COMMIT PREPAREDROLLBACK PREPARED。通常,准备好的状态应持续非常短的时间,但外部可用性问题可能导致事务在此状态下停留较长时间。短暂的两阶段事务仅存储在共享内存和 WAL 中。跨越检查点的事务会被记录在 pg_twophase 目录中。当前准备好的事务可以使用 pg_prepared_xacts 进行检查。

提交更正

如果您在文档中发现任何不正确、与您对特定功能的体验不符或需要进一步澄清的内容,请使用 此表单 报告文档问题。