返回顶部
首页 > 资讯 > 数据库 >怎么使用PostgreSQL中pg_waldump工具
  • 610
分享到

怎么使用PostgreSQL中pg_waldump工具

2024-04-02 19:04:59 610人浏览 泡泡鱼
摘要

这篇文章主要介绍“怎么使用postgresql中pg_waldump工具”,在日常操作中,相信很多人在怎么使用Postgresql中pg_waldump工具问题上存在疑惑,小编查阅了各式资料,整理出简单好用

这篇文章主要介绍“怎么使用postgresql中pg_waldump工具”,在日常操作中,相信很多人在怎么使用Postgresql中pg_waldump工具问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用PostgreSQL中pg_waldump工具”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

按照先前几节对WAL文件结构的介绍,我们可以自行写一个解析事务日志小程序用于查看日志文件中的内容,不过PG已经帮我们考虑到了,PG提供了dump事务日志的工具:pg_waldump.
注:pg_waldump for PG 10.x+,如果是PG 9.x或以下版本,则使用pg_xlogdump.

一、pg_waldump简介

linux下执行,使用--help查看帮助.

[xdb@localhost pg_wal]$ 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
  -e, --end=RECPTR       stop reading at WAL location RECPTR
  -f, --follow           keep retrying after reaching end of WAL
  -n, --limit=N          number of records to display
  -p, --path=PATH        directory in which to find log segment files or a
                         directory with a ./pg_wal that contains such files
                         (default: current directory, ./pg_wal, $PGDATA/pg_wal)
  -r, --rmgr=RMGR        only show records generated by resource manager RMGR;
                         use --rmgr=list to list valid resource manager names
  -s, --start=RECPTR     start reading at WAL location RECPTR
  -t, --timeline=TLI     timeline from which to read log records
                         (default: 1 or the value used in STARTSEG)
  -V, --version          output version information, then exit
  -x, --xid=XID          only show records with transaction ID XID
  -z, --stats[=record]   show statistics instead of records
                         (optionally, show per-record statistics)
  -?, --help             show this help, then exit
[xdb@localhost pg_wal]$

-b, --bkp-details      output detailed information about backup blocks

输出backup blocks即full-write-page的详细信息.

-e, --end=RECPTR       stop reading at WAL location RECPTR

搜索在此LSN偏移处结束

-f, --follow           keep retrying after reaching end of WAL

在到达WAL末尾时仍继续尝试

-n, --limit=N          number of records to display

XLOG Record的输出个数

-p, --path=PATH        directory in which to find log segment files or a
directory with a ./pg_wal that contains such files
(default: current directory, ./pg_wal, $PGDATA/pg_wal)

在哪个目录下寻找WAL segment files

-r, --rmgr=RMGR        only show records generated by resource manager RMGR;
use --rmgr=list to list valid resource manager names

只显示指定的RMGR的XLOG Record

-s, --start=RECPTR     start reading at WAL location RECPTR

在此LSN偏移处开始搜索

-t, --timeline=TLI     timeline from which to read log records
(default: 1 or the value used in STARTSEG)

指定的时间线timeline

-V, --version          output version information, then exit

输出版本信息,然后退出

-x, --xid=XID          only show records with transaction ID XID

只输出指定的事务ID的XLOG Record

-z, --stats[=record]   show statistics instead of records
(optionally, show per-record statistics)

输出统计信息

-?, --help             show this help, then exit

输出帮助信息

二、pg_waldump使用

下面是测试机上pg_wal目录中的文件

[xdb@localhost pg_wal]$ ll
total 98332
-rw-------. 1 xdb xdb 16777216 Dec 20 12:02 000000010000000100000048
-rw-------. 1 xdb xdb 16777216 Dec 19 16:47 000000010000000100000049
-rw-------. 1 xdb xdb 16777216 Dec 19 16:47 00000001000000010000004A
-rw-------. 1 xdb xdb 16777216 Dec 19 16:47 00000001000000010000004B
-rw-------. 1 xdb xdb 16777216 Dec 19 16:47 00000001000000010000004C
-rw-------. 1 xdb xdb 16777216 Dec 19 16:47 00000001000000010000004D
drwx------. 2 xdb xdb        6 Nov 16 15:48 arcHive_status

输出文件000000010000000100000048最开始的4个XLOG Record
命令:pg_waldump -p ./ -s 1/48000000 -n 4

[xdb@localhost pg_wal]$ pg_waldump -p ./ -s 1/48000000 -n 4
rmgr: Heap        len (rec/tot):     77/    77, tx:       1964, lsn: 1/48000070, prev 1/47FFFFF8, desc: INSERT off 117, blkref #0: rel 1663/16402/17028 blk 1110
rmgr: Heap        len (rec/tot):     77/    77, tx:       1964, lsn: 1/480000C0, prev 1/48000070, desc: INSERT off 7, blkref #0: rel 1663/16402/17031 blk 1111
rmgr: Heap        len (rec/tot):     77/    77, tx:       1964, lsn: 1/48000110, prev 1/480000C0, desc: INSERT off 8, blkref #0: rel 1663/16402/17031 blk 1111
rmgr: Heap        len (rec/tot):     77/    77, tx:       1964, lsn: 1/48000160, prev 1/48000110, desc: INSERT off 9, blkref #0: rel 1663/16402/17031 blk 1111

注意第一条记录,上一个LSN为1/47FFFFF8(prev 1/47FFFFF8),提示上一page最后一个XLOG Record存储在本页的XLogLongPageHeaderData中,存储的空间大小可以从该XLOG Record的LSN(1/48000070)和XLogLongPageHeaderData的大小(40B)推算获得,有兴趣的同学可以自行计算.

注:LSN的计算请参照PostgreSQL DBA(15) - WAL文件结构

查看Redo point后的XLOG Record
首先使用pg_controldata命令查看Redo point -->  1/484336A0

[xdb@localhost pg_wal]$ pg_controldata
pg_control version number:            1100
Catalog version number:               201809051
Database system identifier:           6624362124887945794
Database cluster state:               in production
pg_control last modified:             Thu 20 Dec 2018 12:17:39 PM CST
Latest checkpoint location:           1/484336D8
Latest checkpoint's REDO location:    1/484336A0
Latest checkpoint's REDO WAL file:    000000010000000100000048
Latest checkpoint's TimeLineID:       1
...

然后使用pg_waldump查看
命令:pg_waldump -p ./ -s 1/484336A0

[xdb@localhost pg_wal]$ pg_waldump -p ./ -s 1/484336A0
rmgr: Standby     len (rec/tot):     50/    50, tx:          0, lsn: 1/484336A0, prev 1/48433668, desc: RUNNING_XACTS nextXid 1971 latestCompletedXid 1970 oldestRunningXid 1971
rmgr: XLOG        len (rec/tot):    106/   106, tx:          0, lsn: 1/484336D8, prev 1/484336A0, desc: CHECKPOINT_ONLINE redo 1/484336A0; tli 1; prev tli 1; fpw true; xid 0:1971; oid 17046; multi 1; offset 0; oldest xid 561 in DB 16402; oldest multi 1 in DB 16402; oldest/newest commit timestamp xid: 0/0; oldest running xid 1971; online
rmgr: Standby     len (rec/tot):     50/    50, tx:          0, lsn: 1/48433748, prev 1/484336D8, desc: RUNNING_XACTS nextXid 1971 latestCompletedXid 1970 oldestRunningXid 1971
pg_waldump: FATAL:  error in WAL record at 1/48433748: invalid record length at 1/48433780: wanted 24, Got 0
[xdb@localhost pg_wal]$

到此,关于“怎么使用PostgreSQL中pg_waldump工具”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: 怎么使用PostgreSQL中pg_waldump工具

本文链接: https://lsjlt.com/news/64697.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么使用PostgreSQL中pg_waldump工具
    这篇文章主要介绍“怎么使用PostgreSQL中pg_waldump工具”,在日常操作中,相信很多人在怎么使用PostgreSQL中pg_waldump工具问题上存在疑惑,小编查阅了各式资料,整理出简单好用...
    99+
    2024-04-02
  • PostgreSQL中怎么安装和使用postgresqltuner工具
    本篇内容介绍了“PostgreSQL中怎么安装和使用postgresqltuner工具”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大...
    99+
    2024-04-02
  • PostgreSQL工具pgAdmin的介绍及使用
    目录1. pgAdmin的介绍2. pgAdmin的使用1. pgAdmin的介绍 pgAdmin 4是一款专门针对PostgreSQL数据库的客户端管理软件,该版本在pgAdmin 3的基础上做了较大的架构变化,由之前...
    99+
    2022-07-14
    pgAdmin使用
  • postgresql高可用工具pha4pgsql
    postgresql有很多高可用工具,其中pha4pgsql为很不错的一款软件,值得使用,下面为官方链接地址,里面详细的信息供参考:https://github.com/ChenHuajun/pha4pgs...
    99+
    2024-04-02
  • PostgreSQL物理备份工具pg_rman目怎么用
    这篇文章给大家分享的是有关PostgreSQL物理备份工具pg_rman目怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。OS: Ubuntu 16.04.4 LTSdata...
    99+
    2024-04-02
  • PostgreSQL 登陆工具pgAdmin以及psql使用
    postgresql-9.4版本: pgAdmin III postgresql-11.5版本: pgAdmin4双击 pgsql\pgAdmin 4\bin\pgAdmin4.exe 可以启动 pgAd...
    99+
    2024-04-02
  • Laravel中debugbar工具怎么使用
    要使用Laravel中的debugbar工具,需要按照以下步骤进行设置:1. 安装debugbar工具包:在命令行中运行`compo...
    99+
    2023-09-21
    Laravel debugbar
  • Java中的工具Jstack怎么使用
    本篇内容介绍了“Java中的工具Jstack怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!jstack - Prints Java ...
    99+
    2023-06-30
  • Android中MediaPlayer工具类怎么使用
    在Android中,MediaPlayer是一个用于播放音频和视频的工具类。下面是一些使用MediaPlayer的基本步骤: 创...
    99+
    2023-10-21
    Android MediaPlayer
  • 怎么使用oradim工具
    这篇文章主要介绍“怎么使用oradim工具”,在日常操作中,相信很多人在怎么使用oradim工具问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用oradim工具”的疑惑...
    99+
    2024-04-02
  • 怎么使用ADO.NET工具
    这篇文章主要讲解了“怎么使用ADO.NET工具”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用ADO.NET工具”吧!ADO.NET 工具是Visual Studio .NET中一个重...
    99+
    2023-06-17
  • ADO.NET工具怎么使用
    这篇文章主要介绍“ADO.NET工具怎么使用”,在日常操作中,相信很多人在ADO.NET工具怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ADO.NET工具怎么使用”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-17
  • Swagger工具怎么使用
    Swagger工具是一种用于构建、文档化和测试RESTful API的工具。下面是Swagger工具的使用步骤:1. 安装Swagg...
    99+
    2023-09-22
    Swagger
  • coffeeScript工具怎么使用
    CoffeeScript是一种将CoffeeScript代码转换为JavaScript代码的工具。您可以通过以下步骤使用Coffee...
    99+
    2023-09-22
    coffeeScript
  • BCompare工具怎么使用
    BCpmpare是一款非常实用的文件比较工具,可以帮助用户比较和合并文件。以下是BCpmpare的使用方法: 打开BCpmpare...
    99+
    2023-10-22
    Bcompare
  • node.red工具怎么使用
    这篇“node.red工具怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“node.red工具怎么使用”文章吧。nod...
    99+
    2023-07-04
  • smokeping工具怎么使用
    Smokeping是一个网络延迟监测工具,它可以用来监测网络的时延和丢包情况。下面是Smokeping的使用步骤:1. 安装Smok...
    99+
    2023-08-26
    smokeping
  • Chrome中Cookie获取工具怎么使用
    这篇“Chrome中Cookie获取工具怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这...
    99+
    2024-04-02
  • MySQL中pt-query-digest工具怎么使用
    这篇文章主要介绍“实例分析MySQL中pt-query-digest工具的使用记录”,在日常操作中,相信很多人在实例分析MySQL中pt-query-digest工具的使用记录问题上存在疑惑,小编查阅了各式...
    99+
    2022-12-07
    mysql pt-query-digest
  • WinForms中使用怎么ToolTip提供工具
    ToolTip是WinForms中一个用来在控件上显示提示信息的控件。你可以通过以下步骤在WinForms中使用ToolTip来提供...
    99+
    2024-03-12
    WinForms ToolTip
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作