PostgreSQL数据库清理归档日志

1 业务背景
安装器部署苍穹后,PostgreSQL数据库(以下简称PG数据库)默认打开归档日志。随着时间的积累,业务的增加,归档日志会占用大量磁盘空间,如果没有及时监控,则容易磁盘撑满,导致数据库服务不可用。
2 解决方案
如不需要归档,可以设置$PGDATA/postgresql.conf参数文件archive_mode = off ,关闭归档功能。
用pgbackrest工具进行物理备份,通过repo1-retention-full备份参数进行归档日志的清理。
结合归档参数和脚本清理归档日志。
使用定时任务清理归档日志。
方案2可以参考社区PG数据库物理备份文章:PostgreSQL高可用pgbackrest物理备份
PostgreSQL备份与恢复中pgbackrest物理备份部分
本文主要讲解方案3和4。
注:以下步骤均在数据节点执行。保留的天数(reserveDay)根据项目上实际需要进行调整。
3 结合归档参数和脚本清理归档日志
3.1 编辑归档脚本
su - postgres
#脚本放置在和postgresql.conf同一层目录下
cat > $PGDATA/pg_archive_clean.sh << EOF
source /home/postgres/.bashrc
#archivelog的上一层目录
PG_ARCH=/kingdee/cosmic/postgres
#保留天数7天(根据项目实际情况修改)
reserveDay=7
test ! -f \$PG_ARCH/archivelog/\$1 && /bin/cp --preserve=timestamps \$2 \$PG_ARCH/archivelog/\$1 && find \$PG_ARCH/archivelog/* -type f -mtime +\$reserveDay -exec rm -f {} \;
EOF3.2 配置归档相关参数
vim $PGDATA/postgresql.conf ... #开启归档 archive_mode = on #引用3.1的归档脚本 archive_command = 'sh pg_archive_clean.sh %f %p' archive_timeout = 3600 ...
3.3 配置参数生效
pg_ctl reload #查看修改后的
PostgreSQL数据库清理归档日志
1 业务背景安装器部署苍穹后,PostgreSQL数据库(以下简称PG数据库)默认打开归档日志。随着时间的积累,业务的增加,归档日志会占用大量...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



