PostgreSQL的pg_archivecleanup工具

PostgreSQL的pg_archivecleanup工具

pg_archivecleanup 是 PostgreSQL 中用于管理 WAL(Write-Ahead Logging)归档目录的工具。在使用基于归档的日志复制或持久化存储时,pg_archivecleanup 用来清理那些不再需要的归档日志文件,帮助节省存储空间,并维持归档目录的整洁。

WAL 是 PostgreSQL 事务日志的一部分,用于保证数据库的事务完整性和持久性。在配置了WAL归档的PostgreSQL数据库中,每个事务会先写入 WAL 文件,然后定期这些 WAL 文件会被归档到指定的目录。随着时间的推移,这些归档的 WAL 文件可以累积到非常大的体积,特别是在高负载的系统中。因此,合适地清理这些不再需要的 WAL 归档文件对于管理存储非常关键。

使用方式

pg_archivecleanup 通常在备份策略或复制配置中自动调用,尤其是与归档清理相关的操作中。它的基本用法如下:

pg_archivecleanup <archive_location> <oldest_required_wal_file>
  • <archive_location> 是 WAL 文件被归档到的目录路径。
  • <oldest_required_wal_file> 指定了在归档目录中需要保留的最旧的文件。pg_archivecleanup 会删除所有比这个文件更旧的 WAL 文件。

例如,pg_archivecleanup /var/lib/postgresql/wal_archives 00000001000000000000007B 命令会删除 /var/lib/postgresql/wal_archives 目录下所有早于文件 00000001000000000000007B 的归档 WAL 文件。

–通过help查看更多信息

[pg16@test bin]$ pg_archivecleanup --help
pg_archivecleanup removes older WAL files from PostgreSQL archives.Usage:pg_archivecleanup [OPTION]... ARCHIVELOCATION OLDESTKEPTWALFILEOptions:-d             generate debug output (verbose mode)-n             dry run, show the names of the files that would be removed-V, --version  output version information, then exit-x EXT         clean up files if they have this extension-?, --help     show this help, then exitFor use as archive_cleanup_command in postgresql.conf:archive_cleanup_command = 'pg_archivecleanup [OPTION]... ARCHIVELOCATION %r'
e.g.archive_cleanup_command = 'pg_archivecleanup /mnt/server/archiverdir %r'Or for use as a standalone archive cleaner:
e.g.pg_archivecleanup /mnt/server/archiverdir 000000010000000000000010.00000020.backupReport bugs to <pgsql-bugs@lists.postgresql.org>.
PostgreSQL home page: <https://www.postgresql.org/>

测试:删除 000000010000000000000005 之前的归档日志

[pg16@test archivelog]$ ll
total 458752
-rw------- 1 pg16 pg16 16777216 Apr 17 07:16 000000010000000000000002
-rw------- 1 pg16 pg16 16777216 Apr 17 07:16 000000010000000000000003
-rw------- 1 pg16 pg16 16777216 Apr 17 07:16 000000010000000000000004
-rw------- 1 pg16 pg16 16777216 Apr 17 07:16 000000010000000000000005
-rw------- 1 pg16 pg16 16777216 Apr 17 07:16 000000010000000000000006
-rw------- 1 pg16 pg16 16777216 Apr 17 07:16 000000010000000000000007
-rw------- 1 pg16 pg16 16777216 Apr 17 07:16 000000010000000000000008
-rw------- 1 pg16 pg16 16777216 Apr 17 07:16 000000010000000000000009
-rw------- 1 pg16 pg16 16777216 Apr 17 07:16 00000001000000000000000A
-rw------- 1 pg16 pg16 16777216 Apr 17 08:11 00000001000000000000000B
-rw------- 1 pg16 pg16 16777216 Apr 17 08:19 00000001000000000000000C
-rw------- 1 pg16 pg16 16777216 Apr 17 08:19 00000001000000000000000D
-rw------- 1 pg16 pg16 16777216 Apr 17 08:19 00000001000000000000000E
-rw------- 1 pg16 pg16 16777216 Apr 17 08:19 00000001000000000000000F
-rw------- 1 pg16 pg16 16777216 Apr 17 08:19 000000010000000000000010
-rw------- 1 pg16 pg16 16777216 Apr 17 08:19 000000010000000000000011
-rw------- 1 pg16 pg16 16777216 Apr 17 08:22 000000010000000000000012
-rw------- 1 pg16 pg16 16777216 Apr 17 08:27 000000010000000000000013
-rw------- 1 pg16 pg16 16777216 Apr 22 07:20 000000010000000000000014
-rw------- 1 pg16 pg16 16777216 Apr 22 07:56 000000010000000000000015
-rw------- 1 pg16 pg16 16777216 Apr 24 21:17 000000010000000000000016
-rw------- 1 pg16 pg16 16777216 Apr 24 21:22 000000010000000000000017
-rw------- 1 pg16 pg16 16777216 Apr 24 21:37 000000010000000000000018
-rw------- 1 pg16 pg16 16777216 Apr 24 21:38 000000010000000000000019
-rw------- 1 pg16 pg16 16777216 Apr 24 21:39 00000001000000000000001A
-rw------- 1 pg16 pg16 16777216 Apr 24 21:44 00000001000000000000001B
-rw------- 1 pg16 pg16 16777216 Apr 25 03:52 00000001000000000000001C
-rw------- 1 pg16 pg16 16777216 Apr 26 03:45 00000001000000000000001D
[pg16@test archivelog]$ which pg_archivecleanup
~/soft/bin/pg_archivecleanup
[pg16@test archivelog]$ pg_archivecleanup ~/archivelog/ 000000010000000000000005
[pg16@test archivelog]$ ll
total 409600
-rw------- 1 pg16 pg16 16777216 Apr 17 07:16 000000010000000000000005
-rw------- 1 pg16 pg16 16777216 Apr 17 07:16 000000010000000000000006
-rw------- 1 pg16 pg16 16777216 Apr 17 07:16 000000010000000000000007
-rw------- 1 pg16 pg16 16777216 Apr 17 07:16 000000010000000000000008
-rw------- 1 pg16 pg16 16777216 Apr 17 07:16 000000010000000000000009
-rw------- 1 pg16 pg16 16777216 Apr 17 07:16 00000001000000000000000A
-rw------- 1 pg16 pg16 16777216 Apr 17 08:11 00000001000000000000000B
-rw------- 1 pg16 pg16 16777216 Apr 17 08:19 00000001000000000000000C
-rw------- 1 pg16 pg16 16777216 Apr 17 08:19 00000001000000000000000D
-rw------- 1 pg16 pg16 16777216 Apr 17 08:19 00000001000000000000000E
-rw------- 1 pg16 pg16 16777216 Apr 17 08:19 00000001000000000000000F
-rw------- 1 pg16 pg16 16777216 Apr 17 08:19 000000010000000000000010
-rw------- 1 pg16 pg16 16777216 Apr 17 08:19 000000010000000000000011
-rw------- 1 pg16 pg16 16777216 Apr 17 08:22 000000010000000000000012
-rw------- 1 pg16 pg16 16777216 Apr 17 08:27 000000010000000000000013
-rw------- 1 pg16 pg16 16777216 Apr 22 07:20 000000010000000000000014
-rw------- 1 pg16 pg16 16777216 Apr 22 07:56 000000010000000000000015
-rw------- 1 pg16 pg16 16777216 Apr 24 21:17 000000010000000000000016
-rw------- 1 pg16 pg16 16777216 Apr 24 21:22 000000010000000000000017
-rw------- 1 pg16 pg16 16777216 Apr 24 21:37 000000010000000000000018
-rw------- 1 pg16 pg16 16777216 Apr 24 21:38 000000010000000000000019
-rw------- 1 pg16 pg16 16777216 Apr 24 21:39 00000001000000000000001A
-rw------- 1 pg16 pg16 16777216 Apr 24 21:44 00000001000000000000001B
-rw------- 1 pg16 pg16 16777216 Apr 25 03:52 00000001000000000000001C
-rw------- 1 pg16 pg16 16777216 Apr 26 03:45 00000001000000000000001D
[pg16@test archivelog]$ 

配置场景

pg_archivecleanup 的一个常见应用场景是在流复制的备用服务器上用作 restore_command 的一部分,以自动清理那些不再需要应用到备用服务器上的 WAL 归档文件。例如,在 recovery.conf 或针对 PostgreSQL 12 及以后版本的 postgresql.conf 文件中,可以这样配置:

restore_command = 'cp /mnt/server/archivedir/%f %p && pg_archivecleanup /mnt/server/archivedir %r'

这条命令在尝试恢复每个WAL文件后,使用 pg_archivecleanup 清理不再需要的文件,%f 代表要恢复的文件名,%p 代表要恢复到的路径,%r 代表此次恢复操作中需要的最旧的WAL文件。这样配置后,可以自动地维护归档目录的大小。

注意事项

  • 使用 pg_archivecleanup 时需要谨慎,以免不小心删除了仍然需要的 WAL 文件。
  • 确认 WAL 归档策略和备份恢复策略,并与之相配合使用 pg_archivecleanup
  • 在执行任何清理操作之前,确保已经有了对应的WAL文件的备份,以防万一。

pg_archivecleanup 是 PostgreSQL 提供的一个非常实用的工具,对于管理 WAL 归档和维持长期运行的 PostgreSQL 系统的健康非常有助益。

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

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

相关文章

vue中的数据共享场景和数据共享方法总结

1、数据共享场景有哪些 页面之间共享数据&#xff1a; 不同页面之间需要共享数据时&#xff0c;可以通过 Vuex 状态管理库或路由参数等方式进行数据传递。例如&#xff0c;在路由参数中传递数据或将数据存储在 Vuex 中&#xff0c;在不同页面间进行数据交换。页面和组件之间共…

C++ 抽象机制

抽象机制 1. 虚函数 使用关键字virtual 声明的函数&#xff0c;意思是可能随后在其派生类中重新定义。 纯虚函数 在声明的末尾使用0 的函数&#xff0c;说明是纯虚函数。 抽象类 含有纯虚函数多的类称为抽象类(abstract class). 多态类型 如果一个类负责为其他一些类提供接…

unity入门——按钮点击了却无法调用函数

查阅了一番都没有解决问题&#xff0c;最后发现问题是由button的Onclick()事件绑定了代码脚本而不是游戏对象导致的。 如果Onclick()事件绑定的是代码脚本&#xff0c;则下拉框里没有函数&#xff0c;但是点击MonoScript后能手动填入函数名&#xff08;本以为这样就能实现调用…

State.initState() must be a void method without an `async` keyword错误解析

文章目录 报错问题报错的代码 错误原因解决方法解析 另外的方法 报错问题 State.initState() must be a void method without an async keyword如下图&#xff1a; 报错的代码 报错的代码如下&#xff1a; overridevoid initState() async{super.initState();await getConf…

openssl3.2 - exp - 使用默认的函数宏,在release版中也会引入__FILE__

文章目录 openssl3.2 - exp - 使用默认的函数宏&#xff0c;在release版中也会引入__FILE__概述笔记验证是否__FILE__在release版下也能用&#xff1f;将openssl编译成release版的&#xff0c;看看CRYPTO_free()是否只需要一个参数就行&#xff1f;将工程中的openssl相关的库换…

重定义大语言模型的记忆能力:对抗性压缩如何挑战现有测量法

DeepVisionary 每日深度学习前沿科技推送&顶会论文分享&#xff0c;与你一起了解前沿深度学习信息&#xff01; Rethinking LLM Memorization through the Lens of Adversarial Compression 引言&#xff1a;探索大型语言模型的记忆能力 在当今信息时代&#xff0c;大型…

Window(Qt/Vs)软件添加版本信息

Window&#xff08;Qt/Vs&#xff09;软件添加版本信息 文章目录 Window&#xff08;Qt/Vs&#xff09;软件添加版本信息VS添加版本信息添加资源文件添加版本定义头自动更新版本添加批处理脚本设置生成事件 Qt添加版本信息添加资源文件文件信息修改自动更新版本 CMake添加版本信…

React 中使用 TS

目录 1&#xff0c;搭建项目2&#xff0c;tsconfig.json 相关配置项1&#xff0c; lib2&#xff0c;module3&#xff0c;jsx 3&#xff0c;在 React 中使用 TS3.1&#xff0c;TS 可以解决的问题3,2&#xff0c;函数式组件3.3&#xff0c;类组件3.4&#xff0c;Props 的默认值方…

#ESP32S3R8N8建立工程(VSCODE)点亮LED

1.参考文档 【立创ESP32S3R8N8】IDF入门手册 - 飞书云文档 (feishu.cn)https://lceda001.feishu.cn/wiki/GOIlwwfbIi1SC3k8594cDeFVn8g 2.建立工程 3.运行效果 4.更改配置 5.插播 之前配置的环境是有问题的&#xff0c;就算有自动检测也要仔细检查&#xff0c;必须严格按照以…

VMware安装ubuntun虚拟机使用桥接模式无法上网问题解决

问题&#xff1a;最近准备使用VMware虚拟机搭建k8s集群服务&#xff0c;因为需要在同一个网段下&#xff0c;我使用桥接的方式&#xff0c;我发现主机在使用有线连接时虚拟机网络连接正常&#xff0c;但是使用无线网就显示连接不上网络。 解决方法 一、查看网络连接&#xff…

aardio封装库) 微软开源的js引擎(ChakraCore)

前言 做爬虫肯定少不了JavaScript引擎的使用&#xff0c;比如在Python中现在一般用pyexecjs2来执行JavaScript代码&#xff0c;另外还有一些其他执行JavaScript的库&#xff1a; https://github.com/eight04/node_vm2: rpc调用nodejs&#xff0c;需要安装nodehttps://github.…

Spring Data JPA数据批量插入、批量更新真的用对了吗

Spring Data JPA系列 1、SpringBoot集成JPA及基本使用 2、Spring Data JPA Criteria查询、部分字段查询 3、Spring Data JPA数据批量插入、批量更新真的用对了吗 前言 在前两篇文章已经介绍过&#xff0c;在使用Spring Data JPA时&#xff0c;DAO层的Respository通过继承J…

BigKey的危害

1.2.1、BigKey的危害 网络阻塞 对BigKey执行读请求时&#xff0c;少量的QPS就可能导致带宽使用率被占满&#xff0c;导致Redis实例&#xff0c;乃至所在物理机变慢 数据倾斜 BigKey所在的Redis实例内存使用率远超其他实例&#xff0c;无法使数据分片的内存资源达到均衡 Redis阻…

Python中动画显示与gif生成

1. 动画生成 主要使用的是 matplotlib.animation &#xff0c;具体示例如下&#xff1a; import matplotlib.pyplot as plt import matplotlib.animation as animation import numpy as np fig, ax plt.subplots() t np.linspace(0, 3, 40) g -9.81 v0 12 z g * t**2 / …

等保测评多选模拟题

21、以下哪些是黑客攻击手段&#xff1f;_____&#xff08;ABCDEFG&#xff09; A、暴力猜测 B、利用已知漏洞攻击 C、特洛伊木马 D、拒绝服务攻击 E、缓冲区溢出攻击 F、嗅探sniffer G、社会工程 22、计算机病毒的特点有_____。&#xff08; CD …

NFT是什么?有什么用途?

NFT&#xff0c;即非同质化代币&#xff08;Non-Fungible Token&#xff09;&#xff0c;是Web3技术的另一个重要应用。与比特币这样的同质化加密货币不同&#xff0c;NFT是独一无二的&#xff0c;每个代币都代表了一个独特的资产或物品。NFT通常基于区块链技术&#xff0c;如以…

新建stm32工程模板步骤

1.先使用keil新建一个project的基本代码 2.stm32启动文件添加 将stm32的启动文件&#xff0c;在原工程当中新建一个Start文件夹把相关的启动文件放到文件夹当中 然后还需要找到下面三个文件 stm32f10x.h是stm32的外设寄存器的声明和定义&#xff0c;后面那两个文件用于配置系…

深度学习 简记

深度学习个人学习简明笔记 待更新 文章目录 1 深度学习概论1.1 基本概念1.2 分类1.3 主要应用 2 神经网络基础2.1 神经网络组成2.2 前向传播与反向传播2.3 超参数2.4 激活函数2.5 优化方法2.5.1 基本梯度下降方法2.5.2 动量梯度下降2.5.3 Adam优化器 3 卷积神经网络(CNN)3.1 基…

【打工日常】Docker部署一款开源和自托管的平铺图像板系统

一、项目介绍1.项目简述Teedy是一个面向个人和企业的开源轻量级文档管理系统。2.项目功能保持组织:一个现代的界面,以保持您的重要文件在一个地方,您的业务操作清晰。上传&搜索:不要花费时间使用该工具,只需上传文档,然后在需要时轻松找到。安全:加密和数据中心将确…

【Docker】搭建一个媒体服务器插件后端API服务 - MetaTube

【Docker】搭建一个媒体服务器插件后端API服务 - MetaTube 前言 本教程基于群晖的NAS设备DS423的docker功能进行搭建&#xff0c;DSM版为 7.2.1-69057 Update 5。 简介 MetaTube 是一个媒体服务器插件&#xff0c;主要用于 Emby 和 Jellyfin 媒体服务器。它的主要功能是从互…