选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0
历史版本PostgreSQL 9.3 已于 2018 年 11 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本

13.5. 注意事项 #

一些 DDL 命令(目前只有 TRUNCATE 和会重写表的 ALTER TABLE 形式)不是 MVCC 安全的。这意味着在截断或重写提交之后,如果并发事务使用的是在该 DDL 命令提交之前取得的快照,那么该表对它们来说会表现为空表。这只会对那些在 DDL 命令开始前没有访问过相关表的事务造成问题 — 任何在 DDL 命令开始前访问过该表的事务,都会持有至少一个 ACCESS SHARE 表锁,从而阻塞该 DDL 命令直到该事务完成。因此,这些命令不会在针对目标表的连续查询中造成明显的表内容不一致,但它们可能会导致目标表内容与数据库中其他表内容之间出现可见的不一致。

对可串行化事务隔离级别的支持尚未添加到热备复制目标(见 第 25.5 节)。 当前热备模式下支持的最严格隔离级别是可重复读。 虽然在主库上把所有永久数据库写操作都放在可串行化事务中执行,能够确保所有备库最终达到一致状态,但在备库上运行的可重复读事务,有时仍可能看到一种瞬态状态,而这种状态与主库上事务的任何串行执行都不一致。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。