事务日志(Transaction log)是数据库的重要组成部分,因为所有的数据库管理系统都要求即使发生系统故障也不丢失任何数据。它是数据库系统中所有更改和操作的历史日志,以确保不会因故障(例如电源故障或其他导致服务器崩溃的服务器故障)而丢失数据。由于日志包含有关已执行的每个事务的足够信息,因此数据库服务器应该能够通过在服务器崩溃的情况下重放事务日志中的更改和操作来恢复数据库集群。
WAL(Write Ahead Log,预写式日志)用作事务日志的同义词,也用于指代与将操作写入事务日志(WAL)相关的已实现机制。WAL部分内容是PostgreSQL内核中非常重要的一部分,该专栏将通过一系列的文章来详细讲解PostgreSQL数据库中的WAL知识。从PostgreSQLV10开始,WAL数据存储在pg_wal目录下,而V10之前存储在pg_xlog目录中。
在创建WAL记录之前,必须在后端进程(backend process)中调用InitXLOGAccess()函数