一、什么是WAL日志
1、WAL日志的概念
PG的WAL(Write Ahead Log)日志,意为 预写式日志,特点是先记后做。
例如:假设发生一个update事务,数据库的操作步骤:
(1)将update事务转化为特定格式,形成日志条目,记录至内存中的wal buffer;
(2)从磁盘的数据文件中读取需要update的数据至内存中的buffer cache,然后进行update,得到脏块;
(3)commit这个事务(或满足其他触发条件),wal writer进程将wal buffer中日志条目记录至磁盘的wal文件中;
(4)background writer(后台写进程)将脏块写入磁盘数据文件中。
2、WAL日志的作用
WAL日志主要用于数据库恢复,保证数据库故障时数据不丢失。
具体对比及说明如下: