↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

已结束支持的版本: 7.4
历史版本。 PostgreSQL 7.4 已结束支持。 请参阅 当前版本手册.

25.2. 未来的收益 #

UNDO 操作尚未实现。这意味着由中止的事务所做的更改仍会占用磁盘空间,而且仍需要一个保存事务状态的永久 pg_clog 文件,因为事务标识符不能重用。一旦实现了 UNDO,pg_clog 就不再需要是永久的;可以在关机时删除 pg_clog。(不过,自从对 pg_clog 采用分段存储方法以来,这个问题的紧迫性已大大降低:不再需要永远保留旧的 pg_clog 条目。)

有了 UNDO,还可以实现保存点,允许部分回滚无效的事务操作(命令输错导致的解析错误、插入重复的主键/唯一键等),同时能够继续或提交事务在出错之前所做的有效操作。目前,任何错误都会使整个事务无效并要求中止事务。

WAL 为数据库在线备份和恢复(BAR)的新方法提供了机会。要使用这种方法,需要定期把数据文件保存到另一块磁盘、磁带或另一台主机,并归档 WAL 日志文件。数据库文件副本和归档的日志文件可以像崩溃后恢复那样用于恢复。每次制作新的数据库文件副本后,旧的日志文件就可以删除。实现这一功能需要记录数据文件和索引的创建与删除;还需要开发一种复制数据文件的方法(操作系统的复制命令并不合适)。

实现这些收益的一个障碍是它们需要在相当长的时间内保存 WAL 条目(例如,如果想要事务 UNDO,则需要保存最长可能事务那么久)。目前的 WAL 格式极其庞大,因为它包含许多磁盘页快照。目前这不算严重问题,因为条目只需保存一两个检查点间隔;但要获得这些未来的收益,将需要某种压缩的 WAL 格式。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.