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

news2024/11/25 7:44:37

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 a
                         directory 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 exit

Report 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://www.coloradmin.cn/o/1651410.html

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

相关文章

扩展van Emde Boas树以支持卫星数据:设计与实现

扩展van Emde Boas树以支持卫星数据&#xff1a;设计与实现 1. 引言2. vEB树的基本概念3. 支持卫星数据的vEB树设计3.1 数据结构的扩展3.2 操作的修改3.3 卫星数据的存储和检索 4. 详细设计和实现4.1 定义卫星数据结构体4.2 修改vEB树节点结构4.3 插入操作的伪代码4.4 C语言实现…

STM32学习笔记--疑问篇

STM32学习笔记–疑问篇 GPIO是什么的缩写通用寄存器的缩写和全程 3.、这是什么的缩写 不同输出模式之间的差异 PB是GPIOB的缩写&#xff1f; 怎样知道端口应该设置成输入模式还是设置成输出模式

Mybatis的简介和下载安装

什么是 MyBatis &#xff1f; MyBatis 是一款优秀的持久层框架&#xff0c;它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息&#xff0c;将接口和 Java 的…

mysql workbench如何导出insert语句?

进行导出设置 导出的sql文件 CREATE DATABASE IF NOT EXISTS jeesite /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */ /*!80016 DEFAULT ENCRYPTIONN */; USE jeesite; -- MySQL dump 10.13 Distrib 8.0.28, for Win64 (x86_64) -- -- Host: 127.0…

MCU通过UART/SPI等接口更新flash的方法

MCU可提供一种方便的方式来更新flash内容以进行错误修复bugfix或产品更新update。可以使用以下任何模式更新flash内容: •系统内编程(ISP,In-System Programming):用于使用内部bootloader程序和UART/SPI对片上闪存进行编程program或重新编程reprogram。 •应用程序内编程…

vector介绍与使用【C++】

C vector 前言一、vector的介绍c文档介绍简介 二、vector的定义和使用vector的定义vector代码演示 vector的使用vector iterator 的使用vector 空间增长问题vector 增删查改vector 迭代器失效问题引起底层空间改变eraseg与vs检测比较string迭代器失效 vector 在OJ中的使用只出现…

Cisco NX-OS System Software - ACI 16.0(5h)

Cisco NX-OS System Software - ACI 16.0(5h) 适用于 ACI 模式下的 Cisco Nexus 9000 系列交换机 请访问原文链接&#xff1a;Cisco NX-OS System Software - ACI 16.0(5h)&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org Cis…

AI预警未来:山体滑坡与塌方事故的潜在发现者

在科技日新月异的今天&#xff0c;人工智能&#xff08;AI&#xff09;的应用已经渗透到了我们生活的各个领域。而在防灾减灾的领域中&#xff0c;AI技术的引入无疑为我们打开了一扇新的大门。以梅大高速大埔往福建方向K11900m附近发生的路面塌方灾害为例&#xff0c;我们不禁思…

DockerUI安装使用

DockerUI安装使用 主机环境 [roottest01 ~]# uname -a Linux test01 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux [roottest01 ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core)安装 [roottest01 ~]# doc…

第12章 软件测试基础(第三部分)测试类型、测试工具

七、测试类型&#xff08;按工程阶段划分&#xff09; 单集系确收 &#xff08;一&#xff09;单元测试 1、单元测试/模块测试 单元就是软件中最小单位&#xff08;或模块&#xff09;。可以是一个函数、一个过程、一个类。主要依据是模块的详细设计文档。价值在于尽早发现…

MacOS快速安装FFmpeg,并使用FFmpeg转换视频

前言&#xff1a;目前正在接入flv视频流&#xff0c;但是没有一个合适的flv视频流地址。网上提供的flv也都不是H264AAC&#xff08;一种视频和音频编解码器组合&#xff09;&#xff0c;所以想通过fmpeg来将flv文件转换为H264AAC。 一、MacOS环境 博主的MacOS环境&#xff08;…

如何永久删除服务和相关文件夹

如何永久删除服务和文件夹&#xff1f; How can I remove the service and folder permanently? 以AlibabaProtect服务为例 takeown /f "C:\Program Files (x86)\AlibabaProtect sc delete AlibabaProtect我运行了上述操作&#xff0c;并通过任务管理器杀死了“阿里巴巴…

FFmpeg 音视频处理工具三剑客(ffmpeg、ffprobe、ffplay)

【导读】FFmpeg 是一个完整的跨平台音视频解决方案&#xff0c;它可以用于音频和视频的转码、转封装、转推流、录制、流化处理等应用场景。FFmpeg 在音视频领域享有盛誉&#xff0c;号称音视频界的瑞士军刀。同时&#xff0c;FFmpeg 有三大利器是我们应该清楚的&#xff0c;它们…

市场营销的酒店营销策略研究意义

在市场经济条件下&#xff0c;市场营销策略已成为企业经营管理中最重要的组成部分&#xff0c;其在企业管理中的地位日益显现出来。 然而&#xff0c;由于酒店营销环境的特殊性&#xff0c;酒店营销策略研究一直是咱们从业者研究的热点之一。 对于酒店营销策略的研究&#xf…

云计算技术发展趋势详解

云计算最全详解(图文全面总结) 云计算是技术趋势的未来&#xff0c;掌握它至关重要。从基础到高级&#xff0c;本文深入探讨云计算的方方面面&#xff0c;为您提供全面的理解。 云计算 云计算将计算转移到远程数据中心&#xff0c;让用户灵活、经济地访问资源。就像水电一样&…

【数据结构】闲谈A股实时交易的数据结构-队列

今天有点忙&#xff0c;特意早起&#xff0c;要不先写点什么。看到个股的红红绿绿&#xff0c; 突然兴起&#xff0c;要不写篇文章分析下A股交易的简易版数据结构。 在A股实时股票交易系统中&#xff0c;按照个人理解&#xff0c;大致会用队列来完成整个交易。队列&#xff08;…

PyQt 入门

Qt hello - 专注于Qt的技术分享平台 Python体系下GUI框架也多了去了&#xff0c;PyQt算是比较受欢迎的一个。如果对Qt框架熟悉&#xff0c;那掌握这套框架是很简单的。 一&#xff0c;安装 1.PyQt5 pip3 install PyQt5 2.Designer UI工具 pip3 install PyQt5-tools 3.UI…

上位机图像处理和嵌入式模块部署(树莓派4b安装dockerros)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们讨论过树莓派4b安装ros的问题&#xff0c;当时的解决方案就是利用docker来安装ros。我们都知道&#xff0c;每一个ros版本都是和特定的ubu…

基于参数化建模的3D产品组态实现

我们最近为荷兰设计师家具制造商 KILO 发布了基于网络的 3D 配置器的第一个生产版本。我们使用了 Salsita 3D 配置器&#xff0c;这是一个内部 SDK&#xff0c;使新的 3D 配置器的实施变得轻而易举。虽然它给我们带来了巨大帮助&#xff0c;但我们仍然面临一些有趣的挑战。 NSD…

LINUX 入门 6

LINUX 入门 6 day10 20240505 耗时&#xff1a;41min day10 20240506 耗时&#xff1a;155min 课程链接地址 第6章 DNS协议与请求 1 DNS协议分析与项目介绍 自己去看教程 快速扫了一下&#xff0c;还是结合实践去看概念有感觉 回答以下几个问题&#xff1a; dns作用dns分层…