WAL日志

预写式日志WAL(Write Ahead Log,也称为Xlog)是指如果要修改数据文件,必须是在这些修改操作已经记录到日志文件之后才能进行修改,即在描述这些变化的日志记录刷新到永久存储器之后。在系统崩溃时,可以使用WAL日志对openGauss进行恢复操作。

日志文件存储路径

以一个数据库节点为例,默认在“/gaussdb/data/data_dn/pg_xlog”目录下。

其中“/gaussdb/data/data_dn”代表openGauss节点的数据目录。

日志文件命名格式

日志文件以段文件的形式存储的,每个段为16MB,并分割成若干页,每页8KB。对WAL日志的命名说明如下:一个段文件的名称由24个十六进制组成,分为三个部分,每个部分由8个十六进制字符组成。第一部分表示时间线,第二部分表示日志文件标号,第三部分表示日志文件的段标号。时间线由1开始,日志文件标号和日志文件的段标号由0开始。

例如,系统中的第一个事务日志文件是000000010000000000000000。

WAL日志 - 图1 说明:
这些数字一般情况下是顺序增长使用的(要把所有可用数字都用光也需要非常长的时间),但也存在循环使用的情况。

日志内容说明

WAL日志的内容取决于记录事务的类型,在系统崩溃时可以利用WAL日志进行恢复。

默认配置下,openGauss每次启动时会先读取WAL日志进行恢复。

维护建议

WAL日志对数据库异常恢复有重要的作用,建议定期对WAL日志进行备份。