pgbackrest归档目录满,清理后写入仍报错,分析及处理

一、 背景

pgbackrest配置的归档目录/backup被写满

归档报错 No space left on device,wal日志堆积

解决方法直接查看第三部分

二、 问题分析及处理

1. 目录清理

首先想到的就是清理/backup目录,清理后剩余6T空间

但发现pgbackrest归档依旧在报错 No space left on device,没有识别到空间已经释放,一直在尝试归档结尾 0055那个wal日志文件。

归档目录写入依然停止在7:02

2. 尝试重启pgbackrest

重启命令:pgBackRest User Guide - Debian & Ubuntu

执行 pgbackrest stop,但发现并没有停下,进程依然在,等待一段时间后依然如此。

再次执行stop,发现会报错,执行start,进程没有变化,且后台归档依旧在报错

3. 尝试kill旧进程

再次执行 pgbackrest stop,kill pgbackrest主进程

执行pgbackrest start,发现有进程被重新拉起

查看错误日志,最后报错记录停留在11:15:53,即pgbackrest重新启动的时间

一段时间后,并发子进程也被拉起

查看归档目录,已有新归档日志写入

三、 解决方法

  • 清理报错提到的/backup目录,删除无用的备份或归档文件(注意保留日期及文件名,不要直接复制)
bash 复制代码
find /backup/pgbackrest/repos/archive/demo/10-1 -maxdepth 1 -mtime +1 -name "00000003*" -exec rm -rf {} \;
  • 停止pgbackrest
bash 复制代码
pgbackrest stop
  • kill 当前pgbackrest主进程
bash 复制代码
ps -ef|grep pgbackrest
kill 对应进程号
  • 启动pgbackrest,有pgbackrest进程被拉起即可
bash 复制代码
pgbackrest start
ps -ef|grep pgbackrest
  • 检查错误日志,应该已无报错输出
bash 复制代码
cd $PGDATA/log
tail xxxx.log
  • 检查归档目录,应该有新归档文件写入
bash 复制代码
cd /backup/pgbackrest/repos/archive/demo/10-1
ll -th|more

参考:

pgBackRest User Guide - Debian & Ubuntu

相关推荐
日取其半万世不竭4 小时前
PostgreSQL 云服务器安装配置指南:从零开始搭建生产数据库
服务器·数据库·postgresql
审判长烧鸡4 小时前
GO时区【4】PostgreSQL时区
postgresql·go
审判长烧鸡5 小时前
GO时区【3】字段与连接设置
postgresql·go
qq_283720056 小时前
Python3 模块精讲:psycopg2(第三方)- 连接 PostgreSQL
数据库·postgresql
Mr.朱鹏16 小时前
【Python 进阶 | 第四篇】Psycopg3 + Flask 实现 PostgreSQL CRUD 全流程:从连接池到RESTful接口
python·postgresql·flask·virtualenv·fastapi·pip·tornado
深念Y2 天前
哈希与向量:计算机理解现实的两座桥梁
人工智能·数学·机器学习·向量·hash·哈希·空间
瀚高PG实验室2 天前
pgroonga全文检索插件的BUG
数据库·postgresql·bug·瀚高数据库
hudson20222 天前
Postgres 实现自增的三种方式
postgresql
dblens 数据库管理和开发工具2 天前
DBLens for PostgreSQL 正式发布|把 PostgreSQL 开发与管理带进 AI + Agent 时代
数据库·人工智能·postgresql
l1t3 天前
DeepSeek总结的面向 PostgreSQL 分析和 HTAP 工作负载的两种高性能表访问方法
数据库·postgresql