postgresql 的三种日志

本文详细介绍了PostgreSQL中三种关键的日志文件:pg_log用于记录服务器状态及错误信息;pg_xlog与pg_clog分别记录数据库的事务日志信息与元数据。了解这些日志对于数据库维护至关重要。

pg_log

该文件夹中的日志一般用来记录服务器与DB的状态,如各种Error信息,定位慢查询SQL,数据库的启动关闭信息,发生checkpoint过于频繁等的告警信息等。linux自带的路径一般在/var/log/postgres下面。该日志有.csv格式和.log。这种日志是可以被清理删除不影响DB的正常运行。
当我们有遇到DB无法启动或者更改参数没有生效时,第一个想到的就是查看这个日志。

pg_xlog

该文件夹中的日志是记录的Postgresql的WAL信息,也就是一些事务日志信息(transaction log),默认单个大小是16M,源码安装的时候可以更改其大小。这些信息通常名字是类似’000000010000000000000013’这样的文件,这些日志会在 定时回滚恢复(PITR), 流复制(Replication Stream)以及归档时能被用到,这些日志是非常重要的,记录着数据库发生的各种事务信息,不得随意删除或者移动这类日志文件,不然你的数据库会有无法恢复的风险

当归档或者流复制发生异常的时候,事务日志会不断地生成,有可能会造成磁盘空间被塞满,最终导致DB挂掉或者起不来。遇到这种情况不用慌,可以先关闭归档或者流复制功能,备份pg_xlog日志到其他地方,但请不要删除。然后删除较早时间的的pg_xlog,有一定空间后再试着启动Postgres。

pg_clog

pg_clog这个文件也是事务日志文件,但与pg_xlog不同的是它记录的是事务的元数据(metadata),这个日志告诉我们哪些事务完成了,哪些没有完成。这个日志文件一般非常小,但是重要性也是相当高,不得随意删除或者对其更改信息。

总结:

pg_log记录各种Error信息,以及服务器与DB的状态信息,可由用户随意更新删除
pg_xlog与pg_clog记录数据库的事务信息,不得随意删除更新,做物理备份时要记得备份着两个日志。

转载自:http://blog.youkuaiyun.com/lanonola/article/details/51281213

### PostgreSQL 中的二进制日志功能 PostgreSQL 并不直接支持类似于 MySQL 的 Binary Log (Binlog)[^2] 功能,但在其架构中有类似的机制来记录数据库中的更改操作。这种机制被称为 **Write-Ahead Logging (WAL)**。 #### Write-Ahead Logging (WAL) WAL 是 PostgreSQL 实现数据持久性和高可用性的核心组件之一。它通过记录数据库中发生的每一次修改操作到一个连续的日志文件序列中,从而确保即使发生崩溃或其他意外情况,也可以恢复未完成的事务并保持数据一致性[^4]。 - WAL 文件通常存储在 `pg_wal` 或旧版本中的 `pg_xlog` 目录下。 - 这些日志不仅用于灾难恢复,还被广泛应用于流复制、逻辑解码等功能中。 #### 流复制与逻辑解码 虽然 PostgreSQL 不提供像 MySQL 那样的 Binlog 工具链,但它提供了其他替代方案: 1. **物理复制** 使用 WAL 日志进行基于块级变化的同步,这相当于 MySQL 的主从复制模式下的二进制日志回放。此方法适用于设置热备服务器或读副本环境[^5]。 2. **逻辑复制** 从 PostgreSQL 10 开始引入了逻辑复制特性,允许订阅者接收来自发布者的表级别更新事件而不是原始磁盘页的变化。这种方式更接近于应用层面对应的数据变动捕获需求[^6]。 3. **第三方工具** 社区开发了一些插件和外部程序帮助提取 WAL 记录或者转换成易于消费的形式,比如 pglogical 和 wal2json 等项目可以用来模拟某些方面上的 binlog 行为[^7]。 综上所述,尽管 PostgreSQL 缺少严格意义上的 “Binlog”,但借助强大的 WAL 架构及其扩展能力,能够满足大多数场景下对于增量备份、实时同步的需求。 ```sql -- 启用逻辑复制的一个简单例子 CREATE PUBLICATION mypub FOR TABLE users; ALTER SYSTEM SET wal_level = 'logical'; SELECT pg_reload_conf(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值