物理文件解析工具 - gs_filedump

功能介绍

gs_filedump 是一个用于解析 openGauss 数据库的物理文件, 控制文件和映射文件内容的工具,能够将这些文件格式化为人类可读的形式。它提供了多种选项来指定块大小、范围、段、TOAST以及项目的解释方式。这个工具通常不需要开启数据库,可以直接从数据文件中将数据dump出来。

前提条件

保证数据库目录存在且路径正确。

语法

gs_filedump [-abcdfhikuxy] [-r relfilenode] [-T reltoastrelid] [-R startblock [endblock]] [-D attrlist] [-S blocksize] [-s segsize] [-n segnumber] FILENAME

参数说明

参数说明
-a显示绝对地址(块头信息始终是相对的)
-b显示指定范围内的二进制块镜像(会关闭所有格式化选项)
-d显示格式化的块内容转储(会关闭所有其他格式化选项)
-D解析的表的列类型,以逗号分割,
支持的类型:bigint, bigserial, bool, char, charN, date, float, float4, float8, int,
json, macaddr, name, numeric, oid, real, serial, smallint, smallserial, text,
time, timestamp, timestamptz, timetz, uuid, varchar, varcharN, xid, xml
~ 忽略元组中剩余的所有属性
-f显示格式化的块内容转储及解释
-h显示帮助信息
-i显示解析条目的详细信息
-k验证块校验和
-o不转储旧值
-R指定要解析的block范围(块从0开始索引)
[startblock]:起始块
[endblock]:结束块
仅有起始块时将格式化单个块
-s强制段大小为[segsize]
-u解码存储类型为ustore的块
-t转储TOAST文件(支持 astoreustore 存储引擎)
-v输出关于TOAST关系的额外信息
-n强制段号为[segnumber]
-S强制块大小为[blocksize]
-x强制将块项目解释为索引项目格式
-y强制将块项目解释为堆项目格式

段页式表相关选项

当指定分段存储表时,文件路径必须指定为 '{filedir}/1'

参数说明
-r指定表的relfilenode [relfilenode]
-T指定表的pg_toast的relfilenode [reltoastrelid]
参数 -t 将不被支持

控制文件相关选项

参数说明
-c将列出的文件解释为控制文件
-f显示格式化的内容转储及解释
-S强制块大小为[blocksize]

附加功能

参数说明
-m将文件解释为 pg_filenode.map 文件并打印内容(所有其他选项将被忽略)

使用举例

  • 解析 ustore引擎表。
gs_filedump -u -ot -D int,timestamp,time,timetz,~  $PGDATA/base/15938/16384
  • 解析 段页式表。
 gs_filedump -o -r 4161 -T 4162 -D int,smallint,bigint,~  $PGDATA/base/15938/1
  • 解析 控制文件。
gs_filedump -c $PGDATA/global/pg_control
  • 解析 map映射文件。
gs_filedump -m $PGDATA/global/pg_filenode.map

其他

可通过辅助工具 gs_desc 获取表结构信息及建议查询命令。

意见反馈
编组 3备份
    openGauss 2025-09-20 07:42:17
    取消