PG故障处理:PG归档空间耗尽案例分析

news/2025/11/6 15:09:15/文章来源:https://www.cnblogs.com/www-htz-pw/p/19196644

PG故障处理:PG归档空间耗尽案例分析

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。

这个案例是PG环境中归档空间耗尽,导致PG数据库异常关闭的的一个案例,这个案例重点在于分享一下,怎么快速的去找到是什么SQL语句导致空间耗尽的。

1 故障现象

这里看到归档失败,No space left on device没有多余的空间。

2025-07-28 05:42:47.499 CST,,,1789,,6886966a.6fd,1,,2025-07-28 05:13:14 CST,,0,LOG,00000,"archive command failed with exit code 1","The failed archive command was: test ! -f /postgresql/archive/1721/000000080000002600000006 && cp pg_wal/000000080000002600000006 /postgresql/archive/1721/000000080000002600000006",,,,,,,"pgarch_archiveXlog, pgarch.c:589","","archiver",,0
2025-07-28 05:42:47.519 CST,,,4291,,68869ced.10c3,1,,2025-07-28 05:41:01 CST,5/1481,0,PANIC,53100,"could not write to file ""pg_wal/xlogtemp.4291"": No space left on device",,,,,"writing block 279403 of relation base/13025/65649
while scanning block 279435 of relation ""public.big_table""",,,"XLogFileInit, xlog.c:3426","","autovacuum worker",,0
2025-07-28 05:42:47.696 CST,,,1782,,68869669.6f6,6,,2025-07-28 05:13:13 CST,,0,LOG,00000,"server process (PID 4291) was terminated by signal 6: Aborted","Failed process was running: autovacuum: VACUUM ANALYZE public.big_table",,,,,,,"LogChildExit, postmaster.c:3770","","postmaster",,0

2 分析过程

2.1 确认空间消耗

[postgres@pgc ~]$ du -m /|sort -n
4166    /postgresql/pgdata/14/15/1721/base/41025
34399   /postgresql/pgdata/14/15/1721/base/13025
38600   /postgresql/pgdata/14/15/1721/base
44545   /postgresql/pgdata/14/15/1721/pg_wal
83346   /postgresql/pgdata
83346   /postgresql/pgdata/14
83346   /postgresql/pgdata/14/15
83346   /postgresql/pgdata/14/15/1721
112771  /postgresql/archive
112771  /postgresql/archive/1721
196194  /postgresql
199240  /

这里看到归档目录耗了100G左右。

2.2 按小时分析归档文件个数

注意PG中归档日志的大小跟Oracle有一些区别,归档文件在操作系统中的大小并不代码着实际消耗的大小。比如连续的switch wal,生成的归档日志文件大小都是跟wal一样的大的。

[postgres@pgc pgsql]$ sh ./archive_number_count.sh  /postgresql/archive/1721 
Date         Hour  Count    Size(MB)  
2025-07-27   05    1        512.00    
2025-07-28   05    83       42496.00  
2025-07-28   21    51       26112.00  
2025-07-28   23    2        1024.00  

2.3 分析wal的内容

这里随便选择一个归档日志来分析:

[postgres@pgc pgsql]$ sh ./archive_count_sql.sh /postgresql/archive/1721/000000080000002600000001Operation       RelFileNode               Count      Total_Bytes
LOG             1663/13025/65648          76056      7529544
INSERT          1663/13025/65649          2509865    358910695
FPI_FOR_HINT    1663/13025/65649          9          441
INSERT_LEAF     1663/13025/65655          2503007    160192448
SPLIT_R         1663/13025/65655          6882       5206752
INSERT_UPPER    1663/13025/65655          6858       493776

这里看到在1663/13025/65649上存在大量的insert操作,生成的日志大概是358910695。

3.4 查询对象及定位SQL语句

SELECTc.relfilenode,c.relname,n.nspname AS schema_name,CASE c.relkindWHEN 'r' THEN 'table'WHEN 'i' THEN 'index'WHEN 't' THEN 'TOAST'ELSE c.relkindEND AS reltype
FROMpg_class c
JOINpg_namespace n ON c.relnamespace = n.oid
WHEREc.relfilenode IN (65649, 65655);relfilenode |    relname     | schema_name | reltype
-------------+----------------+-------------+---------65649 | big_table      | public      | t65655 | big_table_pkey | public      | i

可以定位到对象信息。

[postgres@pgc log]$ grep -Ei 'big_table'  postgresql-2025-07-28_051314.csv
Query Text: INSERT INTO big_table (data1, data2, data3, data4)
Insert on public.big_table  (cost=0.00..12500000.00 rows=0 width=0) (actual time=1345310.410..1345310.412 rows=0 loops=1)Output: nextval('big_table_id_seq'::regclass), ""*SELECT*"".md5, ""*SELECT*"".md5_1, ""*SELECT*"".int4, ""*SELECT*"".""?column?""

定位到SQL语句

3 总结

上面只是简单的记录了如果快速的分析PG环境中归档日志耗尽,帮助我们快速的得到对应的对象和SQL语句,提升我们故障分析的效率。

------------------作者介绍-----------------------
姓名:黄廷忠
个人博客: (http://www.htz.pw)
CSDN地址: (https://blog.csdn.net/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)

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

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

相关文章

Applied Machine learning and AI for egnineers与NPL with transform等书推荐

Applied Machine learning and AI for egnineers与NPL with transform等书推荐Learn Artificial Intelligence (AI), Machine Learning (ML), and Natural Language Processing (NLP) the trio shaping the future. 两…

TCNopen编译

TCNopen编译 说明 在这里下载源码:https://sourceforge.net/projects/tcnopen/编译 把config里面的配置,make一下,然后编译。 交叉编译 其中的 CFLAGS里面那个sysroot,改为自己交叉编译环境的sysroot。 arm64的con…

2025 年最新自闭阀源头厂家推荐排行榜:探寻核心竞争力,助力供暖供水工程选品燃气安全自闭阀/燃气管道自闭阀公司推荐

引言 当前供暖供水工程建设持续推进,自闭阀作为保障管道系统安全运行的关键部件,市场需求不断攀升。但行业内源头厂家质量参差不齐,部分厂家研发能力薄弱、生产经验不足,难以满足工程需求,给采购单位带来困扰。 近…

2025年PCBA电路板加工厂哪家售后好?

2025年电子制造行业竞争加剧,通信、医疗、汽车等领域对PCBA电路板的精度、稳定性及交付效率要求持续攀升,PCBA电路板加工厂的售后保障、交货期准确性与服务质量,已成为企业选择供应商的核心决策因素。然而当前市场中…

树莓派软路由wifi烧录pi3

https://archive.openwrt.org/releases/17.01.0/targets/brcm2708/bcm2710/Index of (root) / releases / 17.01.0 / targets / brcm2708 / bcm2710 /Image Files These are the image files for the brcm2708/bcm2710…

室内潮玩运动馆:特色项目/美味小吃/团建适配性权威指南

2025年国内室内娱乐消费市场持续升温,室内潮玩运动馆凭借强互动、多场景、年轻化的属性,成为都市青年、家庭亲子及企业团建的核心选择。然而当前市场中,潮玩馆数量激增但品质参差不齐:部分场馆项目同质化严重,缺乏…

12c RAC添加节点

1.系统参数配置 1.配置主机名 2.配置IP地址 3.同步系统时间 4.添加网卡 5.关闭防火墙 6.关闭selinux 7.配置/etc/hosts 8.配置资源限制limits.conf 9.配置/dev/shm 10.配置内核参数 11.添加账户 12.创建目录 13.配置环…

十五五规划释放AI产业新信号,边缘智能或成下一个风口

钡铼技术解读:十五五国家规划对于人工智能行业的影响十年前,“人工智能”还只是产业创新的热词;如今,它已成为推动国家战略转型的核心引擎。 随着《“十五五”国家规划纲要》的讨论逐步展开,“AI强国”“智能制造…

2025 年锻钢阀源头厂家最新推荐排行榜:聚焦精工智造与节能减排,碳钢锻钢阀/手动锻钢阀/锻造钢阀/丝扣锻钢阀公司推荐

引言 锻钢阀作为管道系统核心控制部件,其品质直接关系到供暖、供水等工程的安全稳定运行。为助力行业筛选优质源头厂家,本次榜单由行业协会联合专业测评机构共同打造,采用多维度测评方法:从技术维度,考核企业研发…

2025年11月洗选煤成套设备厂家推荐排行榜前十强:山东鑫佳重工科技领衔

摘要 随着煤炭行业向绿色、高效转型,2025年洗选煤成套设备市场迎来技术革新浪潮,设备分选精度和能效成为关键指标。本文基于行业数据和技术评测,梳理前十强厂家排名,为选煤厂决策提供参考。表单数据来源于权威行业…

揭秘MySQL优化器:为何索引在手却选择全表扫描?

前言:一个令人困惑的选择 你是否曾遇到这样的情况:明明表上有合适的索引,但explain的结果却显示 MySQL 选择了全表扫描?这背后其实是一个看不见的指挥家——MySQL 优化器——基于一系列「成本常数」做出的决策。 今…

2025年山东霍尼韦尔继电器品牌权威推荐:山东霍尼韦尔固体继电器/山东霍尼韦尔继电器选型/山东霍尼韦尔低压控制元件源头供应商精选

霍尼韦尔继电器作为工业自动化与控制系统的关键组件,凭借其稳定的电气性能、可靠的安全保障和广泛的应用适应性,在机械制造、电力系统、汽车零部件、起重设备等领域发挥着不可或缺的作用。本文将基于工业控制元器件行…

manim边做边学--文字创建销毁的打字机效果

对于Manim的用户来说,创建富有表现力的文本动画是其核心功能之一。 最近,Manim的官方文档中悄然增加了两个新的动画类:TypeWithCursor 和 UntypeWithCursor。 它们为我们带来了带有光标的打字和删除效果,极大地丰富…

2025年铝瓦楞板厂家推荐:5家正规铝瓦楞板厂商实力解析

在工业建筑、仓储空间与公共设施的建设中,铝瓦楞板凭借轻质耐用、抗风抗震的特性成为核心建材之一。面对市场上鱼龙混杂的供应商,如何找到专业的铝瓦楞板厂家?以下是2025年值得关注的5家正规厂商排名,帮你避开选择…

2025年河北泵用挤压软管体验权威推荐:河北抽负压真空胶管清洁/河北抽真空胶管安装/河北真空侵胶管维护源头厂家精选

泵用挤压软管作为工业输送系统的关键部件,凭借其卓越的耐压性能、优异的耐磨特性和广泛的介质适应性,在液压传动、流体输送、化工泵送、工程机械等领域发挥着不可或缺的作用。本文将基于行业标准与技术规范,为您深入…

2025年移动照明车灯塔工厂权威推荐:液压升降移动照明车/拖车式移动照明车/太阳能移动照明车源头厂家精选

移动照明车灯塔作为现代工程施工与应急照明的重要装备,凭借其卓越的机动性能、强大的照明效果和可靠的环境适应性,在建筑施工、抢险救援、夜间作业、大型活动保障等领域发挥着不可替代的作用。本文将基于2025年行业数…

学习Hyperledger Fabric2.5

一、环境准备 1.安装环境包 sudo apt install curl(远程传输) git(代码拉取) vim(编辑器) docker-compose jq openssh-server(远程连接) -y 2.启动docker systemctl start docker 3.开机自启动 systemctl…

DHTMLX Gantt 9.1 的核心目标——在保持稳定性能的基础上,带来更智能的时间刻度优化、更灵活的任务渲染、更高效的实时协作能力及更完善的资源管理功能。

DHTMLX Gantt 9.1 的核心目标——在保持稳定性能的基础上,带来更智能的时间刻度优化、更灵活的任务渲染、更高效的实时协作能力及更完善的资源管理功能。在与众多开发者及企业客户的交流中,全球知名的前端UI控件服务…

量化选股与量化交易第857篇:通达信主升操盘 - Leone

通达信主升操盘主图多:EMA(C,3),COLORYELLOW; 空:EMA(C,5),COLOR00FF00; 均衡:EMA(空,5),COLORWHITE,; 章鱼1:=COUNT(CROSS(多,均衡),2)=1; 章鱼2:=COUNT(CROSS(空,均衡),2)=1; ZAI:=FILTER(章鱼1 AND 章鱼2,2); DRAWT…

【中大厂前端】Java常见面试题 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …