pg_filedump
pg_filedump 工具可以针对数据文件、索引文件、控制文件进行dump格式化输出,方便我们学习查看文件中格式及内容还有数据块上一些细节内容。如果你想更加了解PG内部存储格式这个工具是你很好的选择。
使用介绍
- 创建一张表插入几条记录
postgres=# create table dhytest (id int , name char(20));CREATE TABLEpostgres=# insert into dhytest values (10, '董红禹');INSERT 0 1postgres=# insert into dhytest values (20, 'PostgreSQL');INSERT 0 1postgres=# insert into dhytest values (30, 'MySQL');INSERT 0 1
- 查找表对应的存储位置
postgres=# select * from pg_relation_filepath('dhytest');pg_relation_filepath----------------------base/12558/189038(1 row)
- 将表中数据dump出来查看
./pg_filedump -D int,charN /pg_data/base/12558/189038******************************************************************** PostgreSQL File/Block Formatted Dump Utility - Version 10.1** File: /pg_data/base/12558/189038* Options used: -D int,charN** Dump created on: Fri Oct 26 13:35:45 2018*******************************************************************Block 0 ********************************************************<Header> -----Block Offset: 0x00000000 Offsets: Lower 36 (0x0024)Block: Size 8192 Version 4 Upper 8024 (0x1f58)LSN: logid 1 recoff 0xde3679f8 Special 8192 (0x2000)Items: 3 Free Space: 7988Checksum: 0x0000 Prune XID: 0x00000000 Flags: 0x0000 ()Length (including item array): 36<Data> ------Item 1 -- Length: 55 Offset: 8136 (0x1fc8) Flags: NORMALCOPY: 10 董红禹Item 2 -- Length: 49 Offset: 8080 (0x1f90) Flags: NORMALCOPY: 20 PostgreSQLItem 3 -- Length: 49 Offset: 8024 (0x1f58) Flags: NORMALCOPY: 30 MySQL
- 显示格式化的内容,可以看到每个字节对应的内容是什么
./pg_filedump -f /pg_data/base/12558/189038******************************************************************** PostgreSQL File/Block Formatted Dump Utility - Version 10.1** File: /pg_data/base/12558/189038* Options used: -f** Dump created on: Fri Oct 26 13:39:20 2018*******************************************************************Block 0 ********************************************************<Header> -----Block Offset: 0x00000000 Offsets: Lower 36 (0x0024)Block: Size 8192 Version 4 Upper 8024 (0x1f58)LSN: logid 1 recoff 0xde3679f8 Special 8192 (0x2000)Items: 3 Free Space: 7988Checksum: 0x0000 Prune XID: 0x00000000 Flags: 0x0000 ()Length (including item array): 360000: 01000000 f87936de 00000000 2400581f .....y6.....$.X.0010: 00200420 00000000 c89f6e00 909f6200 . . ......n...b.0020: 589f6200 X.b.<Data> ------Item 1 -- Length: 55 Offset: 8136 (0x1fc8) Flags: NORMAL1fc8: 66040000 00000000 00000000 00000000 f...............1fd8: 01000200 02081800 0a000000 37e891a3 ............7...1fe8: e7baa2e7 a6b92020 20202020 20202020 ......1ff8: 20202020 202020Item 2 -- Length: 49 Offset: 8080 (0x1f90) Flags: NORMAL1f90: 67040000 00000000 00000000 00000000 g...............1fa0: 02000200 02081800 14000000 2b506f73 ............+Pos1fb0: 74677265 53514c20 20202020 20202020 tgreSQL1fc0: 20Item 3 -- Length: 49 Offset: 8024 (0x1f58) Flags: NORMAL1f58: 68040000 00000000 00000000 00000000 h...............1f68: 03000200 02081800 1e000000 2b4d7953 ............+MyS1f78: 514c2020 20202020 20202020 20202020 QL1f88: 20
- 将数据块上一些细节内容打印出来
./pg_filedump -i /pg_data/base/12558/189038******************************************************************** PostgreSQL File/Block Formatted Dump Utility - Version 10.1** File: /pg_data/base/12558/189038* Options used: -i** Dump created on: Fri Oct 26 13:41:27 2018*******************************************************************Block 0 ********************************************************<Header> -----Block Offset: 0x00000000 Offsets: Lower 36 (0x0024)Block: Size 8192 Version 4 Upper 8024 (0x1f58)LSN: logid 1 recoff 0xde3679f8 Special 8192 (0x2000)Items: 3 Free Space: 7988Checksum: 0x0000 Prune XID: 0x00000000 Flags: 0x0000 ()Length (including item array): 36<Data> ------Item 1 -- Length: 55 Offset: 8136 (0x1fc8) Flags: NORMALXMIN: 1126 XMAX: 0 CID|XVAC: 0Block Id: 0 linp Index: 1 Attributes: 2 Size: 24infomask: 0x0802 (HASVARWIDTH|XMAX_INVALID)Item 2 -- Length: 49 Offset: 8080 (0x1f90) Flags: NORMALXMIN: 1127 XMAX: 0 CID|XVAC: 0Block Id: 0 linp Index: 2 Attributes: 2 Size: 24infomask: 0x0802 (HASVARWIDTH|XMAX_INVALID)Item 3 -- Length: 49 Offset: 8024 (0x1f58) Flags: NORMALXMIN: 1128 XMAX: 0 CID|XVAC: 0Block Id: 0 linp Index: 3 Attributes: 2 Size: 24infomask: 0x0802 (HASVARWIDTH|XMAX_INVALID)
0 评论
添加一条新评论