为什么在时间点恢复(PITR)的postgresql文档中没有提到pg_clog?

时间:2018-01-29 07:18:43

标签: postgresql postgresql-9.4 postgresql-9.6 pitr

首先,请原谅我可怜的英语。

关键词," pg_clog"在"连续存档和时间点恢复(PITR)"中没有提到。 postgresql 9.x文件。但正如我从本书中了解到的那样,数据库系统实现,提交日志是数据库从故障或备份中恢复的必要条件,因为它们有助于恢复数据库的一致性。

是否因为提交记录也写在其他文件中?例如,WALs?

谢谢。

1 个答案:

答案 0 :(得分:1)

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

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

因此有必要使用提交日志来确定某个元组是否可见;没有它,数据库就无法使用。

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

对于恢复,没有必要在恢复的检查点之外提交提交日志信息:因为COMMITROLLBACK被记录在事务日志(“WAL”)中,所有信息存在并将在恢复期间写入提交日志。