Thread: Interpreting content of wal

Interpreting content of wal

From
Charles-Antoine Guillat-Guignard
Date:
Hi list,

I need to recover the content of WAL files, in order to see what
happened to a database, so I am trying to translate it from binary to
human-readable log. My goal is to be able to read the modifications that
were made to my database (the same way mysqlbinlog does for MySQL).

I tried using xlogdump (from
http://xlogviewer.projects.postgresql.org/index.html ), but i get the
following error for every WAL file :

__________
# /usr/local/postgres/bin/xlogdump 0000000100000018000000FE

0000000100000018000000FE:

Unexpected page info flags 0003 at offset 0
Skipping unexpected continuation record at offset 0
invalid record length at 18/FE000020
____________

I tried compiling xlogdump against PgSQL 8.1 and 8.2 (the WAL files are
from a 8.1 version), which lead to the same error, with all the WAL
files I have. I suspect an unattended file structure (version
mismatch?), though the versions seem to match (except the architecture,
i386 for my compiling and amd64 for the DB server).

Can anyone point me to a tool or a method allowing to read or decode to
text the content of WAL files?

Ty in advance

Charles-Antoine


Re: Interpreting content of wal

From
Craig Ringer
Date:
Charles-Antoine Guillat-Guignard wrote:
> Hi list,
>
> I need to recover the content of WAL files, in order to see what
> happened to a database, so I am trying to translate it from binary to
> human-readable log. My goal is to be able to read the modifications that
> were made to my database (the same way mysqlbinlog does for MySQL).

The WAL doesn't contain a record, in a binary form or otherwise, of
anything as high-level as SQL statements. You should be able to get
information on tuple changes, but I wouldn't expect much more.

> I tried compiling xlogdump against PgSQL 8.1 and 8.2 (the WAL files are
> from a 8.1 version), which lead to the same error, with all the WAL
> files I have. I suspect an unattended file structure (version
> mismatch?), though the versions seem to match (except the architecture,
> i386 for my compiling and amd64 for the DB server).

The pgxlogviewer page suggests that 8.1 support isn't present. The code
looks mostly abandoned (last updated in 2006) so you might have some
work ahead of you :S

--
Craig Ringer