Postgresql 中文操作指南
74.4. Two-Phase Transactions #
PostgreSQL 支持两阶段提交 (2PC) 协议,该协议允许多个分布式系统以事务方式协同工作。该命令是 PREPARE TRANSACTION、COMMIT PREPARED 和 ROLLBACK PREPARED。两阶段事务旨在供外部事务管理系统使用。PostgreSQL 遵循 X/Open XA 标准提出的特性和模型,但不实现一些较少使用的方面。
当用户执行 PREPARE TRANSACTION 时,唯一可能的下一条命令是 COMMIT PREPARED 或 ROLLBACK PREPARED 。一般情况下,此准备状态旨在持续非常短的时间,但外部可用性问题可能意味着事务在此状态下停留较长时间。短暂的已准备事务仅存储在共享内存和 WAL 中。跨越检查点的交易会记录在 pg_twophase 目录中。可使用 pg_prepared_xacts 检查当前已准备的事务。