Dumping individual pages
Advanced users who really want to inspect their broken systems in detail can focus their attention on pageinspect
. It allows them to inspect a single data or index page on the disk. This requires a fair amount of knowledge about the inner working of PostgreSQL, but it can give valuable insights into what might have gone wrong in a system.
To make use of the module, first it has to be installed. It works like this:
test=# CREATE EXTENSION pageinspect; CREATE EXTENSION
Once the module is in place, a table can be inspected. To do so, a couple of functions are available. The most important function is get_raw_page
. It will be needed for subsequent inspections:
get_raw_page(relname text, fork text, blkno int) returns bytea
The get_raw_page
function returns a bytea
field containing the content of the page. The first parameter tells us the relation name we want to inspect. The second parameter needs the so-called relation fork. In PostgreSQL, a table does not only consist...