为什么 Point-in-Time Recovery (PITR) 的 postgresql 文档中没有提到 pg_clog?

Why is pg_clog not mentioned in the postgresql document of Point-in-Time Recovery (PITR)?

首先,请原谅我糟糕的英语。

postgresql 9.x 文档的 "Continuous Archiving and Point-in-Time Recovery (PITR)" 章中没有提到关键字 "pg_clog"。但正如我从 数据库系统实现 一书中了解到的那样,提交日志是数据库从故障或备份中恢复的必要条件,因为它们有助于数据库恢复到一致性。

是不是commit记录也写入了其他文件?例如,WALs?

谢谢。

提交日志包含特定事务是提交还是回滚的信息。

当行写入 table 时,尚不清楚事务是否会成功。 PostgreSQL 不是在提交或恢复事务时将该信息存储在每个行版本(“元组”)中,而是仅在提交日志中标记事务的状态。

所以需要commit log来判断某个元组是否可见;没有它,数据库将无法使用。

恢复文档中没有特别提到提交日志,因为它是数据目录的一部分,并在检查点时写入磁盘。

对于恢复,没有必要拥有超出您恢复的检查点的提交日志信息:因为 COMMITROLLBACK 记录在事务日志(“WAL”)中,所有信息在那里,将在恢复期间写入提交日志。