oracle 中存在重做日志文件(redo log),其作用是保证数据的一致性和事务的完整性,防止在系统崩溃时最近的事务无法恢复。在postgresql中引入了WAL(write ahead log),作用相同。有不同之处的是postgresql数据库可以通过调整WAL参数控制日志写入磁盘的先后顺序。先将日志写入磁盘能够完全保证数据的 完整性,在崩溃时可以恢复最近的事务;后写入磁盘,很难保证在崩溃时事务能够得到恢复,数据的结果也很难保证是真实正确的。了解postgresql 的WAL参数是非常必要的,直接关乎到了数据库的可用性。
WAL相关参数:
postgresql数据库的配置文件
postgresql.conf
wal_level
控制wal存储的级别。
wal_level决定有多少信息被写入到WAL中。 默认值是 最小的( minimal),其中写入唯一从崩溃或立即关机中恢复的所需信息。 archive补充WAL归档需要的日志记录,以及 hot_standby进一步增加在备用服务器上运行只读查询所需的信息 。这个参数只能在服务器启动时设置。
wal_level
控制wal存储的级别。
wal_level决定有多少信息被写入到WAL中。 默认值是 最小的( minimal),其中写入唯一从崩溃或立即关机中恢复的所需信息。 archive补充WAL归档需要的日志记录,以及 hot_standby进一步增加在备用服务器上运行只读查询所需的信息 。这个参数只能在服务器启动时设置。