PostgreSQL 常用日志

PostgreSQL 常用日志详解

PostgreSQL 提供了多种日志类型,用于监控数据库活动、排查问题和优化性能。以下是 PostgreSQL 中最常用的日志类型及其配置和使用方法。

一、主要日志类型

日志类型文件位置主要内容用途
服务器日志postgresql-<日期>.log服务器运行状态、错误信息监控服务器状态、排查错误
WAL 日志pg_wal/ 目录预写式日志 (Write-Ahead Logging)崩溃恢复、时间点恢复
CSV 日志postgresql-<日期>.csv结构化日志数据日志分析、自动化处理
审计日志自定义位置用户活动记录安全审计、合规性检查

二、服务器日志配置

1. 基本配置 (postgresql.conf)

# 日志收集开关
logging_collector = on# 日志文件位置
log_directory = 'pg_log'# 日志文件名模式
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'# 日志文件大小限制
log_rotation_size = 100MB# 日志保留天数
log_rotation_age = 1d

2. 日志级别控制

# 最小日志级别 (DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, INFO, NOTICE, WARNING, ERROR, LOG, FATAL, PANIC)
log_min_messages = warning# 客户端语句日志级别
log_min_error_statement = error# 记录执行时间超过此值的语句 (毫秒)
log_min_duration_statement = 1000

三、常用日志分析场景

1. 查看慢查询

-- 查找执行时间最长的查询
SELECT query, total_time, calls, mean_time
FROM pg_stat_statements
ORDER BY total_time DESC
LIMIT 10;

2. 错误日志分析

# 查找错误日志中的关键错误
grep -i "error" /var/lib/postgresql/data/pg_log/postgresql-*.log# 查找特定时间段的日志
sed -n '/2023-10-01 14:00:00/,/2023-10-01 15:00:00/p' postgresql.log

3. 连接问题排查

# 查找连接失败记录
grep "could not connect" /var/lib/postgresql/data/pg_log/postgresql-*.log# 查找连接过多警告
grep "too many clients already" /var/lib/postgresql/data/pg_log/postgresql-*.log

四、WAL 日志管理

1. 检查 WAL 日志状态

-- 查看当前WAL日志位置
SELECT pg_current_wal_lsn();-- 查看WAL日志归档状态
SELECT * FROM pg_stat_archiver;

2. 清理 WAL 日志

-- 手动触发WAL日志清理
SELECT pg_switch_wal();-- 设置WAL保留策略 (v13+)
ALTER SYSTEM SET wal_keep_size = '1GB';

五、审计日志配置

1. 使用 pgaudit 扩展

-- 安装扩展
CREATE EXTENSION pgaudit;-- 配置审计规则
ALTER SYSTEM SET pgaudit.log = 'read, write, ddl';-- 审计特定表
ALTER SYSTEM SET pgaudit.log_relation = 'on';

2. 查看审计日志

# 查找DDL操作
grep "DDL" /var/lib/postgresql/data/pg_log/postgresql-*.log# 查找数据修改操作
grep "UPDATE\|INSERT\|DELETE" /var/lib/postgresql/data/pg_log/postgresql-*.log

六、日志维护最佳实践

  1. 定期轮转日志:配置合理的日志文件大小和保留时间
  2. 集中管理日志:考虑使用日志收集工具如 ELK Stack
  3. 监控关键指标:设置日志告警规则
  4. 安全存储:确保日志文件有适当权限
  5. 性能平衡:详细日志会影响性能,根据需求调整级别

七、常用日志相关命令

1. 实时查看日志

tail -f /var/lib/postgresql/data/pg_log/postgresql-*.log

2. 日志文件分析工具

# 使用pgBadger分析日志
pgbadger /var/lib/postgresql/data/pg_log/postgresql-*.log -o report.html# 使用awk统计错误类型
awk '/ERROR:/ {count[$0]++} END {for (msg in count) print count[msg], msg}' postgresql.log | sort -nr

通过合理配置和分析这些日志,可以有效监控 PostgreSQL 数据库的健康状态,快速定位问题并优化性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/78394.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL 存储过程:解锁数据库编程的高效密码

目录 一、什么是存储过程?二、创建存储过程示例 1:创建一个简单的存储过程示例 2:创建带输入参数的存储过程示例 3:创建带输出参数的存储过程三、调用存储过程调用无参数存储过程调用带输入参数的存储过程调用带输出参数的存储过程四、存储过程中的流控制语句示例 1:使用 …

基于STM32的物流搬运机器人

功能&#xff1a;智能循迹、定距夹取、颜色切换、自动跟随、自动避障、声音夹取、蓝牙遥控、手柄遥控、颜色识别夹取、循迹避障、循迹定距…… 包含内容&#xff1a;完整源码、使用手册、原理图、视频演示、PPT、论文参考、其余资料 资料只私聊

pg_jieba 中文分词

os: centos 7.9.2009 pg: 14.7 pg_jieba 依赖 cppjieba、limonp pg_jieba 下载 su - postgreswget https://github.com/jaiminpan/pg_jieba/archive/refs/tags/vmaster.tar.gzunzip ./pg_jieba-master cd ~/pg_jieba-mastercppjieba、limonp 下载 su - postgrescd ~/pg_jie…

基于Python+Flask的MCP SDK响应式文档展示系统设计与实现

以下是使用Python Flask HTML实现的MCP文档展示系统&#xff1a; # app.py from flask import Flask, render_templateapp Flask(__name__)app.route(/) def index():return render_template(index.html)app.route(/installation) def installation():return render_templa…

【“星睿O6”AI PC开发套件评测】GPU矩阵指令算力,GPU带宽和NPU算力测试

【“星睿O6”AI PC开发套件评测】GPU矩阵指令算力&#xff0c;GPU带宽和NPU算力测试 安谋科技、此芯科技与瑞莎计算机联合打造了面向AI PC、边缘、机器人等不同场景的“星睿O6”开发套件 该套件异构集成了Armv9 CPU核心、Arm Immortalis™ GPU以及安谋科技“周易”NPU 开箱和…

【Go语言】RPC 使用指南(初学者版)

RPC&#xff08;Remote Procedure Call&#xff0c;远程过程调用&#xff09;是一种计算机通信协议&#xff0c;允许程序调用另一台计算机上的子程序&#xff0c;就像调用本地程序一样。Go 语言内置了 RPC 支持&#xff0c;下面我会详细介绍如何使用。 一、基本概念 在 Go 中&…

11、Refs:直接操控元素——React 19 DOM操作秘籍

一、元素操控的魔法本质 "Refs是巫师与麻瓜世界的连接通道&#xff0c;让开发者能像操控魔杖般精准控制DOM元素&#xff01;"魔杖工坊的奥利凡德先生轻抚着魔杖&#xff0c;React/Vue的refs能量在杖尖跃动。 ——以神秘事务司的量子纠缠理论为基&#xff0c;揭示DOM…

MinIO 教程:从入门到Spring Boot集成

文章目录 一. MinIO 简介1. 什么是MinIO&#xff1f;2. 应用场景 二. 文件系统存储发展史1. 服务器磁盘&#xff08;本地存储&#xff09;2. 分布式文件系统(如 HDFS、Ceph、GlusterFS)3. 对象存储&#xff08;如 MinIO、AWS S3&#xff09;4.对比总结5.选型建议6.示例方案 三.…

电竞俱乐部护航点单小程序,和平地铁俱乐部点单系统,三角洲护航小程序,暗区突围俱乐部小程序

电竞俱乐部护航点单小程序开发&#xff0c;和平地铁俱乐部点单系统&#xff0c;三角洲护航小程序&#xff0c;暗区突围俱乐部小程序开发 端口包含&#xff1a; 超管后台&#xff0c; 老板端&#xff0c;打手端&#xff0c;商家端&#xff0c;客服端&#xff0c;管事端&#x…

基于 IPMI + Kickstart + Jenkins 的 OS 自动化安装

Author&#xff1a;Arsen Date&#xff1a;2025/04/26 目录 环境要求实现步骤自定义 ISO安装 ipmitool安装 NFS定义 ks.cfg安装 HTTP编写 Pipeline 功能验证 环境要求 目标服务器支持 IPMI / Redfish 远程管理&#xff08;如 DELL iDRAC、HPE iLO、华为 iBMC&#xff09;&…

如何在SpringBoot中通过@Value注入Map和List并使用YAML配置?

在SpringBoot开发中&#xff0c;我们经常需要从配置文件中读取各种参数。对于简单的字符串或数值&#xff0c;直接使用Value注解就可以了。但当我们需要注入更复杂的数据结构&#xff0c;比如Map或者List时&#xff0c;该怎么操作呢&#xff1f;特别是使用YAML这种更人性化的配…

短信验证码安全实战:三网API+多语言适配开发指南

在短信服务中&#xff0c;创建自定义签名是发送通知、验证信息和其他类型消息的重要步骤。万维易源提供的“三网短信验证码”API为开发者和企业提供了高效、便捷的自定义签名创建服务&#xff0c;可以通过简单的接口调用提交签名给运营商审核。本文将详细介绍如何使用该API&…

RabbitMQ和Seata冲突吗?Seata与Spring中的事务管理冲突吗

1. GlobalTransactional 和 Transactional 是否冲突&#xff1f; 答&#xff1a;不冲突&#xff0c;它们可以协同工作&#xff0c;但作用域不同。 Transactional: 这是 Spring 提供的注解&#xff0c;用于管理单个数据源内的本地事务。在你当前的 register 方法中&#xff0c…

一台服务器已经有个python3.11版本了,如何手动安装 Python 3.10,两个版本共存

环境&#xff1a; debian12.8 python3.11 python3.10 问题描述&#xff1a; 一台服务器已经有个python3.11版本了&#xff0c;如何手动安装 Python 3.10&#xff0c;两个版本共存 解决方案&#xff1a; 1.下载 Python 3.10 源码&#xff1a; wget https://www.python.or…

c++中的enum变量 和 constexpr说明符

author: hjjdebug date: 2025年 04月 23日 星期三 13:40:21 CST description: c中的enum变量 和 constexpr说明符 文章目录 1.Q:enum 类型变量可以有,--操作吗&#xff1f;1.1补充: c/c中enum的另一个细微差别. 2.Q: constexpr 修饰的函数,要求传入的参数必需是常量吗&#xff…

postman工具

postman工具 进入postman官网 www.postman.com/downloads/ https://www.postman.com/downloads/ https://www.postman.com/postman/published-postman-templates/documentation/ae2ja6x/postman-echo?ctxdocumentation Postman Echo is a service you can use to test your …

Spring和Spring Boot集成MyBatis的完整对比示例,包含从项目创建到测试的全流程代码

以下是Spring和Spring Boot集成MyBatis的完整对比示例&#xff0c;包含从项目创建到测试的全流程代码&#xff1a; 一、Spring集成MyBatis示例 1. 项目结构 spring-mybatis-demo/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com.example/…

【数据可视化-24】巧克力销售数据的多维度可视化分析

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个…

c语言-分支结构

以下是我初学C语言的笔记记录&#xff0c;欢迎留言补充 一&#xff0c;分支结构分为几个 两个&#xff0c;一个是if语句&#xff0c;一个是Switch语句 二&#xff0c;if语句 &#xff08;1&#xff09;结构体 int main() {if()//判断条件{//表达式}else if()//判断条件{//表达式…

数据库MySQL学习——day4(更多查询操作与更新数据)

文章目录 1、聚合函数&#xff08;Aggregate Functions&#xff09;2、分组查询&#xff08;GROUP BY&#xff09;3、更新数据&#xff08;UPDATE&#xff09;4、删除数据&#xff08;DELETE&#xff09;5、进阶练习示例6、 今日小结 1、聚合函数&#xff08;Aggregate Functio…