PostgreSQL自带的命令行工具13- pg_waldump

PostgreSQL自带的命令行工具13- pg_waldump

基础信息
OS版本:Red Hat Enterprise Linux Server release 7.9 (Maipo)
DB版本:16.2
pg软件目录:/home/pg16/soft
pg数据目录:/home/pg16/data
端口:5777

pg_waldump 是 PostgreSQL 的一个实用工具,用于查看和分析 Write-Ahead Logging (WAL) 文件的内容。WAL 是 PostgreSQL 用于保证事务日志的完整性和恢复能力的一种技术。每次数据库事务提交时,变更都会先被写入 WAL 文件。在发生故障时,WAL 文件用于恢复数据库到最后一次一致的状态。pg_waldump 提供了一种方式,来直观地查看这些 WAL 文件中的记录,帮助开发者和数据库管理员理解数据库变动和进行故障诊断。

通过help查看帮助文档。

[pg16@test ~]$ pg_waldump --help
pg_waldump decodes and displays PostgreSQL write-ahead logs for debugging.Usage:pg_waldump [OPTION]... [STARTSEG [ENDSEG]]Options:-b, --bkp-details      output detailed information about backup blocks-B, --block=N          with --relation, only show records that modify block N-e, --end=RECPTR       stop reading at WAL location RECPTR-f, --follow           keep retrying after reaching end of WAL-F, --fork=FORK        only show records that modify blocks in fork FORK;valid names are main, fsm, vm, init-n, --limit=N          number of records to display-p, --path=PATH        directory in which to find WAL segment files or adirectory with a ./pg_wal that contains such files(default: current directory, ./pg_wal, $PGDATA/pg_wal)-q, --quiet            do not print any output, except for errors-r, --rmgr=RMGR        only show records generated by resource manager RMGR;use --rmgr=list to list valid resource manager names-R, --relation=T/D/R   only show records that modify blocks in relation T/D/R-s, --start=RECPTR     start reading at WAL location RECPTR-t, --timeline=TLI     timeline from which to read WAL records(default: 1 or the value used in STARTSEG)-V, --version          output version information, then exit-w, --fullpage         only show records with a full page write-x, --xid=XID          only show records with transaction ID XID-z, --stats[=record]   show statistics instead of records(optionally, show per-record statistics)--save-fullpage=DIR    save full page images to DIR-?, --help             show this help, then exitReport bugs to <pgsql-bugs@lists.postgresql.org>.
PostgreSQL home page: <https://www.postgresql.org/>

基本用法

pg_waldump [选项]... <WAL 文件名或目录>

常用选项

  • -f, --follow:连续输出 WAL 记录,类似于 tail -f 命令。
  • -n, --limit:限制输出的记录数量。
  • -p, --path:指定 WAL 文件的搜索目录。
  • -r, --rmgr:只显示指定资源管理器(rmgr)的记录。
  • -s, --start:从指定的 LSN (Log Sequence Number) 开始输出。
  • -t, --timeline:指定要阅读的时间线。
  • -V, --version:输出版本信息。
  • -x, --xid:只显示指定事务 ID 的记录。
  • -z, --stats:在输出的末尾显示统计信息。
  • --end:结束于指定的 LSN (Log Sequence Number)。

示例1

查看指定 WAL 文件的内容。如查看 000000010000000000000034的内容

[pg16@test archivelog]$ pg_waldump /home/pg16/archivelog/000000010000000000000034

在这里插入图片描述

示例2

查看 000000010000000000000034的内容前10行。

[pg16@test archivelog]$ pg_waldump -n 10 /home/pg16/archivelog/000000010000000000000034  
rmgr: Heap        len (rec/tot):    171/   171, tx:      15301, lsn: 0/340006F0, prev 0/33FFE700, desc: UPDATE old_xmax: 15301, old_off: 33, old_infobits: [], flags: 0x01, new_xmax: 0, new_off: 3, blkref #0: rel 1663/16505/16579 blk 16556, blkref #1: rel 1663/16505/16579 blk 5900
rmgr: Btree       len (rec/tot):     64/    64, tx:      15301, lsn: 0/340007A0, prev 0/340006F0, desc: INSERT_LEAF off: 158, blkref #0: rel 1663/16505/16587 blk 989
rmgr: Heap        len (rec/tot):     79/    79, tx:      15297, lsn: 0/340007E0, prev 0/340007A0, desc: INSERT off: 153, flags: 0x00, blkref #0: rel 1663/16505/16589 blk 89
rmgr: Transaction len (rec/tot):     34/    34, tx:      15296, lsn: 0/34000830, prev 0/340007E0, desc: COMMIT 2024-05-05 21:27:33.826619 PDT
rmgr: Transaction len (rec/tot):     34/    34, tx:      15297, lsn: 0/34000858, prev 0/34000830, desc: COMMIT 2024-05-05 21:27:33.826634 PDT
rmgr: Heap        len (rec/tot):     72/    72, tx:      15294, lsn: 0/34000880, prev 0/34000858, desc: HOT_UPDATE old_xmax: 15294, old_off: 92, old_infobits: [], flags: 0x20, new_xmax: 0, new_off: 94, blkref #0: rel 1663/16505/16580 blk 0
rmgr: Transaction len (rec/tot):     34/    34, tx:      15293, lsn: 0/340008C8, prev 0/34000880, desc: COMMIT 2024-05-05 21:27:33.826720 PDT
rmgr: Heap2       len (rec/tot):     57/    57, tx:          0, lsn: 0/340008F0, prev 0/340008C8, desc: PRUNE snapshotConflictHorizon: 5174, nredirected: 0, ndead: 1, nunused: 0, redirected: [], dead: [20], unused: [], blkref #0: rel 1663/16505/16579 blk 13566
rmgr: Heap        len (rec/tot):     74/    74, tx:      15302, lsn: 0/34000930, prev 0/340008F0, desc: HOT_UPDATE old_xmax: 15302, old_off: 7, old_infobits: [], flags: 0x60, new_xmax: 0, new_off: 62, blkref #0: rel 1663/16505/16579 blk 13566
rmgr: Heap        len (rec/tot):     79/    79, tx:      15294, lsn: 0/34000980, prev 0/34000930, desc: INSERT off: 17, flags: 0x00, blkref #0: rel 1663/16505/16589 blk 93

这会输出 000000010000000000000034 WAL 文件中的所有记录。输出中包括每条记录的类型、大小、事务 ID 以及实际的日志数据。

注意事项

  • pg_waldump 是一个底层工具,主要用于调试和分析,正常的数据库操作和维护不需要它。
  • 在使用 pg_waldump 时,需要对 WAL 记录的格式和内容有一定的了解。
  • WAL 文件通常位于 PostgreSQL 的数据目录下的 pg_wal 目录中(在旧版 PostgreSQL 中是 pg_xlog)。

pg_waldump 为深入理解 PostgreSQL 的工作原理和事务日志提供了窗口,但它更多地是面向有经验的数据库管理员和开发者。

谨记:心存敬畏,行有所止。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

目标检测CNN 目标检测发展历程 应用场景 智慧交通 自动驾驶 工业生产 智慧医疗

目标检测 目标检测是计算机视觉领域中的一个重要任务,其主要目的是让计算机能够自动识别图像或视频帧中所有目标的类别,并在目标周围绘制边界框以标示出每个目标的位置。 目标检测的过程通常包括两个主要步骤:目标定位和目标分类。目标定位是确定图像中是否存在感兴趣的目…

51单片机keil编程中遇到的问题(持续更新)

字符无法打印报错 查看特殊功能寄存器名字的时候也会报错&#xff0c;因为无法编译通过&#xff0c;导致头文件的定义内容无法查找 keil编译中 error C127: ‘xx’: invalid storage class 这种一般是在编写头文件或源文件时&#xff0c;在声明函数的结尾没有添加分号&…

SOCKET编程(1):基本概念

基本概念 socket分类 socket提供了**流(stream)和数据报(datagram)**两种通信机制&#xff0c;即流socket和数据报socket 流socket基于TCP协议&#xff0c;是一个有序、可靠、双向字节流的通道&#xff0c;传输数据不会丢失、不会重复、顺序也不会错乱 数据报socket基于UDP…

今天遇到一个GPT解决不了的问题

问题描述 你好&#xff0c;postman的一个post请求&#xff0c;编辑器里面放了一个很长的json数据&#xff0c;报Tokenization is skipped for long lines for performance reasons. This can be configured via editor.maxTokenizationLineLength.&#xff0c;但是同样的数据&a…

Star15.3k,开源数据可视化分析工具项目

好东西来了&#xff0c;这是一个人人可用的开源数据可视化分析工具项目&#xff0c;V 哥迫不及待的要给大家推荐这个项目&#xff0c;帆软、Tableau 等商业 BI 工具的开源替代&#xff0c;已在 Github 上被 Star了15.3k了&#xff0c;大家一起来了解一下。自己搭建起来可用&…

QSplitter分裂器的使用方法

1.QSplitter介绍 QSplitter是Qt框架提供的一个基础窗口控件类&#xff0c;主要用于分割窗口&#xff0c;使用户能够通过拖动分隔条来调节子窗口的大小。 2.QSplitter的添加方法 &#xff08;1&#xff09;通过Qt Creator的界面设计工具添加&#xff1b; &#xff08;2&#xf…

DrissionPage

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;不提供完整代码&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;本文章未经许…

RUST 编程语言使构建更安全的软件变得更加容易。RUST ALL THE THINGS 需要什么?

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

机器学习:基于K-近邻(KNN)、高斯贝叶斯(GaussianNB)、SVC、随机森林(RF)、梯度提升树(GBDT)预测葡萄酒质量

前言 系列专栏&#xff1a;机器学习&#xff1a;高级应用与实践【项目实战100】【2024】✨︎ 在本专栏中不仅包含一些适合初学者的最新机器学习项目&#xff0c;每个项目都处理一组不同的问题&#xff0c;包括监督和无监督学习、分类、回归和聚类&#xff0c;而且涉及创建深度学…

车辆充电桩|基于Springboot+vue的车辆充电桩管理系统的设计与实现(源码+数据库+文档)

车辆充电桩管理系统 目录 基于Springboot&#xff0b;vue的车辆充电桩管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1 前台功能模块 4.1.1 首页功能 4.1.2 用户后台管理 2 后台功能模块 4.2.1 管理员功能 4.2.2 维修员功能 四、数据库设计 五、核…

公众号流量主的收益怎么样?

公众号之前是一个私域平台&#xff0c;没有粉丝基本是没有推荐的&#xff0c;所以之前入门的门槛还是很高的&#xff0c;但是今年公众号和视频号改变了推流的机制&#xff0c;现在发的文章会进入到流量池中&#xff0c;进入到公域流量&#xff0c;所以发布的优质文章会大爆的&a…

演唱会新风:允许部分歌手闭麦,让观众先唱

演唱会市场的热度从2023年延续至今&#xff0c;出现了一些“倒反天罡”的现象。 例如&#xff1a;让歌迷在台下给歌手唱歌。 5月6日抖音娱乐榜第一的消息是“第一次见辟谣观众没假唱的”。原因是凤凰传奇在常州和北京鸟巢先后举办两场演唱会&#xff0c;其中鸟巢演唱会被认为…

工程技术SCI期刊,中科院三区,一投就中,国人友刊!

一、期刊名称 Industrial Management & Data Systems 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;工程技术 影响因子&#xff1a;5.5 中科院分区&#xff1a;3区 出版方式&#xff1a;订阅模式/开放出版 版面费&#xff1a;$4120 三、期刊征稿范…

500的项目研发成本2000?

上个月接了一个小程序的二开项目&#xff0c;功能不多就2个诉求&#xff1a;调整首页数据排序规则&#xff0c;帖子详情增加一个海报&#xff0c;报了一个我认为还比较合适的价格500。 当我拿到代码的那一刻有点小害怕&#xff0c;因为这个客户的之前合作过一次&#xff0c;项…

Chromium编译指南2024 Windows11篇-获取 Chromium 的源代码(五)

前言 在《Chromium编译指南2024&#xff08;四&#xff09;》中&#xff0c;我们完成了Git 的初始化配置。 现在&#xff0c;我们将进一步讨论如何获取 Chromium 的源代码&#xff0c;并准备构建所需的文件。 1. 获取Chromium的源代码 在合适的位置准备一个文件夹&#xff…

Python中使用嵌套for循环读取csv文件出现问题

如果我们在使用嵌套循环来读取 CSV 文件时遇到了问题&#xff0c;可以提供一些代码示例和出现的具体错误&#xff0c;这样我可以更好地帮助大家解决问题。不过&#xff0c;现在我可以给大家一个基本的示例&#xff0c;演示如何使用嵌套循环来读取 CSV 文件。 问题背景 我需要读…

spring bean生命周期全部过程

Spring Bean的生命周期包括以下全部过程&#xff1a; 实例化&#xff1a;在Spring容器启动时&#xff0c;根据配置文件或注解等信息创建Bean的实例。属性赋值&#xff1a;如果Bean有属性需要进行初始化&#xff0c;Spring容器会自动为这些属性进行赋值。自定义初始化方法&…

Tomcat端口占用解决方案

Windows操作系统 出现这种情况&#xff1a; Error was Port already in use :40001&#xff1b;nested exception is :java.net.BindException: Address already in use : JVM_Bind; 步骤1&#xff1a;按下winR键&#xff0c;输入cmd 步骤2&#xff1a;输入以下命令 netstat …

PS五官与服装PSD文件大全,男女证件照制作必备素材

一、素材描述 男女证件照服装和五官等PSD文件大全&#xff0c;制作证件照的必备素材合集&#xff0c;轻松制作高端大气的证件照。什么是DR5&#xff1f;DR5是Delicious Retouch 5的简称&#xff0c;这是一款非常优秀的PS人像磨皮美容插件&#xff0c;DR5的主要功能就是针对人像…

【七十九】【算法分析与设计】并查集模板!!!并查集的实现_牛客题霸_牛客网,【模板】并查集 - 洛谷,并查集代码!!!

并查集的实现_牛客题霸_牛客网 描述 给定一个没有重复值的整形数组arr&#xff0c;初始时认为arr中每一个数各自都是一个单独的集合。请设计一种叫UnionFind的结构&#xff0c;并提供以下两个操作。 boolean isSameSet(int a, int b): 查询a和b这两个数是否属于一个集合 void u…