首先,请原谅我糟糕的英语。
在PostgreSQL9.x文档的“连续存档和实时恢复(PITR)”一章中,没有提到"pg_clog“这个关键词。但正如我从“数据库系统实现”( Database )一书中学到的,提交日志是数据库从故障或备份中恢复的必要条件,因为它们有助于数据库恢复到一致性。
是因为提交记录也写入了其他文件吗?比如WALs?
谢谢。
发布于 2018-01-29 08:53:48
提交日志包含是否已提交或回滚特定事务的信息。
当行被写入表时,还不清楚事务是否成功。相反,当事务提交或还原时,PostgreSQL只在提交日志中标记事务的状态,而是将该信息存储在每个行版本(“tuple”)中。
因此,有必要让提交日志来确定某个元组是否可见;没有它,数据库就无法使用。
在恢复文档中没有特别提到提交日志,因为它是数据目录的一部分,并且在检查点时被写入磁盘。
对于恢复,没有必要在恢复的检查点之外拥有提交日志信息:因为COMMIT和ROLLBACK记录在事务日志(“WAL”)中,所以所有信息都在那里,并将在恢复期间写入提交日志。
https://stackoverflow.com/questions/48496214
复制相似问题