1、说明
pgsql共三类日志文件
pgsql在版本10前后日志文件名有变化,如下:左边为10版本前的日志文件名,右边为10版本及以上版本文件名
pg_xlog ---- pg_wal (WAL 日志,即重做日志) 强制开启
pg_clog ---- pg_xact (事务提交日志,记录的是事务的元数据) 内容一般不具有可读性 强制开启
pg_log ---- log pg_log(数据库运行日志) 内容可读 默认关闭的,需要设置参数启动
1.1、pg_wal(write ahead log)
由文件名可以知道为重做日志,类似mysql和oralce中的undo log,二进制文件,一般WAL机制的引入,可以保证事物的持久性和数据的完整性。同时也解决了写入磁盘的耗时操作。
具体步骤:
数据更新或者插入:先写入WAL BUFFER中,再将更新或插入后的数据写入DATA BUFFER中
数据提交后:WAL BUFFER中的内容写入磁盘,DATA BUFFER写入磁盘推迟
CHECKPOINT发生时:将所有DATA BUFFER数据写到磁盘。
1.2、pg_xact
这个目录下的文件也是事务日志文件,但与pg_wal不同的是它记录的是事务的元数据(metadata),这个日志文件主要功能为记录事务的状态,这个日志文件一般非常小,但很重要,不得随意删除修改。
1.3、pg_log
pg_log记录各种运行、Error信息,以及