PostgreSQL中的一些日志

Posted abclife

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostgreSQL中的一些日志相关的知识,希望对你有一定的参考价值。

1.Write Ahead Log(WAL日志)
预写日志(WAL)是保证数据完整性的标准方法。在有关交易处理的大多数(如果不是全部)书籍中都可以找到详细说明。 简而言之,WAL的核心概念是,只有在记录了对这些更改之后,即在描述更改的日志记录已刷新到永久存储之后,才写入对数据文件(表和索引所在的位置)的更改。如果我们遵循此过程,我们不需要在每次事务提交时将数据页刷新到磁盘,因为我们知道如果发生崩溃,我们将能够使用日志恢复数据库:任何尚未应用的更改,可以从日志记录中重做数据页面。(这是前滚恢复,也称为REDO)

WAL还可以支持在线备份和基于时间点恢复。 通过归档WAL数据,我们可以支持恢复到可用WAL数据覆盖的任何时刻:我们只需安装数据库的先前物理备份,并将WAL日志重播到所需的时间。 更重要的是,物理备份不必是数据库状态的瞬时快照 - 如果它是在一段时间内完成的,那么重播该期间的WAL日志将解决任何内部不一致问题。

位于目录pg_wal中。单个文件大小由wal-segsize控制。默认是16mb。

WAL日志,相当于Oracle的在线重做日志。

 

主要的相关参数:

wal_level
max_wal_size
min_wal_size

  

2.WAL的归档日志
主要的相关参数:

archive_mode
archive_command

  

3.事务状态日志
pg_xact
pg_xact这个目录下的文件也是事务日志文件,但与pg_wal不同的是它记录的是事务的元数据(metadata),这些日志提供了事务提交状态信息。这个日志文件一般非常小,不得随意删除或者对其更改信息。


4.pg_log
server log一般是记录服务器与DB的状态,比如各种Error信息,定位慢查询SQL,数据库的启动关闭信息,发生checkpoint过于频繁等的告警信息。当数据库出问题时,首先就要查看这个日志

主要的相关参数:

log_destination
logging_collector
log_directory
log_filename
log_rotation_age	
log_rotation_size

  

以上是关于PostgreSQL中的一些日志的主要内容,如果未能解决你的问题,请参考以下文章

Postgresq9.6主从部署

PostgreSQL中的一些日志

将 json 对象存储到 postgresql 中的数据类型是啥?

使用 idx 自动增量将数据帧插入到 postgresql sqlalchemy

索引postgresql数组列以进行大于/小于比较?

PostgreSQL。日志文件中的慢查询在 psql 中很快