126 lines
4.4 KiB
Plaintext
126 lines
4.4 KiB
Plaintext
pg_filedump - Display formatted contents of a PostgreSQL heap, index,
|
|
or control file.
|
|
|
|
Copyright (c) 2002-2010 Red Hat, Inc.
|
|
Copyright (c) 2011-2017, PostgreSQL Global Development Group
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
Original Author: Patrick Macdonald <patrickm@redhat.com>
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
Overview:
|
|
|
|
pg_filedump is a utility to format PostgreSQL heap/index/control files
|
|
into a human-readable form. You can format/dump the files several ways,
|
|
as listed in the Invocation section, as well as dumping straight binary.
|
|
|
|
The type of file (heap/index) can usually be determined automatically
|
|
by the content of the blocks within the file. However, to format a
|
|
pg_control file you must use the -c option.
|
|
|
|
The default is to format the entire file using the block size listed in
|
|
block 0 and display block relative addresses. These defaults can be
|
|
modified using run-time options.
|
|
|
|
Some options may seem strange but they're there for a reason. For
|
|
example, block size. It's there because if the header of block 0 is
|
|
corrupt, you need a method of forcing a block size.
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
Compile/Installation:
|
|
|
|
To compile pg_filedump, you will need to have a properly configured
|
|
PostgreSQL source tree or complete install tree (with include files)
|
|
of the appropriate PostgreSQL major version.
|
|
|
|
There are two makefiles included in this package. Makefile is a standalone
|
|
makefile for pg_filedump. Alter its PGSQL_INCLUDE_DIR variable to point to
|
|
the PostgreSQL include files. Makefile.contrib can be used if this package
|
|
was untarred in the contrib directory of a PostgreSQL build tree.
|
|
|
|
make
|
|
make install (if using Makefile.contrib)
|
|
|
|
It is also possible to use Makefile.contrib without being in the contrib
|
|
directory:
|
|
|
|
make -f Makefile.contrib USE_PGXS=1
|
|
|
|
This method requires that the pg_config program be in your PATH, but should
|
|
not require any manual adjustments of the Makefile.
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
Invocation:
|
|
|
|
pg_filedump [-abcdfhikxy] [-R startblock [endblock]] [-D attrlist] [-S blocksize] [-s segsize] [-n segnumber] file
|
|
|
|
Defaults are: relative addressing, range of the entire file, block size
|
|
as listed on block 0 in the file
|
|
|
|
The following options are valid for heap and index files:
|
|
-a Display absolute addresses when formatting (Block header
|
|
information is always block relative)
|
|
-b Display binary block images within a range (Option will turn
|
|
off all formatting options)
|
|
-d Display formatted block content dump (Option will turn off
|
|
all other formatting options)
|
|
-D Try to decode tuples using given comma separated list of types.
|
|
List of supported types:
|
|
* bigint
|
|
* bigserial
|
|
* bool
|
|
* char
|
|
* charN -- char(n)
|
|
* date
|
|
* float
|
|
* float4
|
|
* float8
|
|
* int
|
|
* json
|
|
* macaddr
|
|
* name
|
|
* oid
|
|
* real
|
|
* serial
|
|
* smallint
|
|
* smallserial
|
|
* text
|
|
* time
|
|
* timestamp
|
|
* timetz
|
|
* uuid
|
|
* varchar
|
|
* varcharN -- varchar(n)
|
|
* xid
|
|
* xml
|
|
* ~ -- ignores are attributes left in a tuple
|
|
-f Display formatted block content dump along with interpretation
|
|
-h Display this information
|
|
-i Display interpreted item details
|
|
-k Verify block checksums
|
|
-R Display specific block ranges within the file (Blocks are
|
|
indexed from 0)
|
|
[startblock]: block to start at
|
|
[endblock]: block to end at
|
|
A startblock without an endblock will format the single block
|
|
-s Force segment size to [segsize]
|
|
-n Force segment number to [segnumber]
|
|
-S Force block size to [blocksize]
|
|
-x Force interpreted formatting of block items as index items
|
|
-y Force interpreted formatting of block items as heap items
|
|
|
|
The following options are valid for control files:
|
|
-c Interpret the file listed as a control file
|
|
-f Display formatted content dump along with interpretation
|
|
-S Force block size to [blocksize]
|
|
|
|
In most cases it's recommended to use the -i and -f options to get
|
|
the most useful dump output.
|