pg_filedump
是一个用于显示PostgreSQL堆、索引或控制文件的格式化内容的实用程序。
pg_filedump
可用于 PostgreSQL 9.0 及之后的所有PostgreSQL版本。请注意,虽然它由PostgreSQL项目提供,但它不是核心实用程序,需要单独编译或安装。
发布历史
示例
创建一个包含一些任意数据的表
CREATE TABLE foo (id INT, val TEXT); INSERT INTO foo VALUES(generate_series(1,5), md5(clock_timestamp()::TEXT)); CHECKPOINT; -- ensure contents are written from shared_buffers to disk
确定表的数据文件位置(有关详细信息,请参阅 filenode)
SELECT pg_relation_filepath('foo'::regclass);
使用-D选项以人类可读的格式转储内容(注意:您需要知道列类型和顺序)
postgres $ pg_filedump -D int,text ./base/16385/32784 ******************************************************************* * PostgreSQL File/Block Formatted Dump Utility - Version 11.0 * * File: ./base/16385/32784 * Options used: -D int,text * * Dump created on: Fri Dec 7 18:47:46 2018 ******************************************************************* Block 0 ******************************************************** <Header> ----- Block Offset: 0x00000000 Offsets: Lower 44 (0x002c) Block: Size 8192 Version 4 Upper 7872 (0x1ec0) LSN: logid 0 recoff 0x018dacb0 Special 8192 (0x2000) Items: 5 Free Space: 7828 Checksum: 0xd874 Prune XID: 0x00000000 Flags: 0x0000 () Length (including item array): 44 <Data> ------ Item 1 -- Length: 61 Offset: 8128 (0x1fc0) Flags: NORMAL COPY: 1 eb4f2363f1f90f13c31d18ec9ecb683e Item 2 -- Length: 61 Offset: 8064 (0x1f80) Flags: NORMAL COPY: 2 1cdce4984a6002b1ae1bafffc1eb31db Item 3 -- Length: 61 Offset: 8000 (0x1f40) Flags: NORMAL COPY: 3 8764bdccfbd32aaf0ae3ffb077f48d56 Item 4 -- Length: 61 Offset: 7936 (0x1f00) Flags: NORMAL COPY: 4 fb37467829dc3f7a4124d6ea1f0fb77b Item 5 -- Length: 61 Offset: 7872 (0x1ec0) Flags: NORMAL COPY: 5 7398f49dc8c7027f73d75a6081b415bc *** End of File Encountered. Last Block Read: 0 ***
参考资料
- git 存储库
- README
- pg_filedump 在PostgreSQL Wiki
有用链接
- 首次接触pg_filedump - 2021年7月 Neil Chen / HighGo 的博客文章
- 使用pg_filedump显示PostgreSQL数据文件的内容 - Daniel Westermann 的博客文章
- 使用pg_filedump进行物理恢复 - Alexey Chernyshov 的博客文章
分类
另请参阅
pageinspect, pg_hexdump