postgresql数据库日志量异常原因排查

问题:

postgresql数据库 库不大 但每日产生日志量15GB左右
分析:

1 导入日志查看是否有异常高频日志

复制代码
select to_char(t.log_time,'YYYY-MM-DD HH24:MI') as minutes,
 sum ((t.error_severity='LOG')::int) as LOG,
 sum ((t.error_severity='ERROR')::int) as ERROR,
 sum ((t.error_severity='FATAL')::int) as FATAL,
 sum ((t.error_severity is null)::int) as OTHER,
 count(1)
from  bak.postgres_log t
group by to_char(t.log_time,'YYYY-MM-DD HH24:MI')
order by count(1) desc; 

查询后发现除了高峰期之外,数据库连接频率基本稳定 每分钟不到1000个

2 大致浏览日志,查看是否有异常大的字段

发现有异常sql存放的字段很大

在数据库中进一步确认

复制代码
SELECT
  id,
  pg_column_size(context) AS 字节大小,
  pg_column_size(context)/1024 AS KB大小,
   pg_column_size(context)/1024/1024 AS MB大小
FROM test
order by 字节大小 desc

在日志里进一步匹配该sql关键字

复制代码
cat 2026-03-31_000000.csv | grep -i -a test | grep -i "context" | wc -l

分析后发现,异常sql更新字段会把传参一个大约在数据库中存储近10MB的参数
处理方案:

把图片存到文件中 只给数据库存url地址

相关推荐
Mr.朱鹏6 小时前
Linux 服务器 LVM 根分区在线动态扩容
linux·服务器·数据库
摇滚侠6 小时前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 数据库初始化机制 阅读笔记 36
数据库·spring boot·笔记
qiuhaipeng16 小时前
Claude code 升级后上下文长度变短问题
java·前端·数据库
wxwx_bscxy3227 小时前
基于Python新冠疫情可视化分析系统的设计与实现
java·数据库·spring boot·python·微信小程序·sqlite
剑之所向8 小时前
.NET 官方`System.Threading.Channels`
前端·javascript·数据库
词却8 小时前
数据库基础:DQL 数据查询语言
数据库·oracle
昌原的儿子LEO10 小时前
Linux IO多路复用与SQLite数据库核心知识点总结
linux·数据库·oracle
山岚的运维笔记10 小时前
mysql 专业笔记 -- 第 8 章:使用变量
运维·数据库·笔记·后端·学习·mysql·dba
聚美智数11 小时前
网安查询-备案查询-网络安全查询API接口介绍
网络·数据库·web安全
坐吃山猪11 小时前
【多线程】Semaphore使用
java·数据库·oracle·多线程