From: | "Andy Shellam" <andy(dot)shellam(at)mailnetwork(dot)co(dot)uk> |
---|---|
To: | <pgsql-admin(at)postgresql(dot)org> |
Subject: | WAL recovery question - 0000001.history |
Date: | 2006-04-28 15:23:01 |
Message-ID: | 20060428152301.007F011F602A@postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-admin |
I've developed and am now testing a new "rolling-WAL" script, and have
noticed something a little peculiar with Postgres 8.1.3.
Basically I've taken a dump of my live database directory (between
pg_start_backup and pg_stop_backup) calls - shipped this to my standby, set
up a recovery.conf file (which calls the rolling-WAL script). This script
is designed to wait until the log file arrives, or a flag file is set to
return code 1 to postgres.
However as soon as the recovery starts, the script is waiting for a file
called 00000001.history, which will never arrive because it was never
generated on the live box since the base backup was taken.
So, what I did, was to touch this file (i.e. so it existed, but was empty) -
at which point my script recovered it, then PG ignored it and asked for the
correct backup files, as shown in the log below.
Note I intend to make this script public once testing has been carried out -
if anyone is interested in testing, please let me know. The "DEBUG" lines
have been generated by my script, not Postgresql.
--- START LOG OUTPUT ---
2006-04-28 16:07:33 BST LOG: database system was interrupted at 2006-04-19
10:48:50 BST
2006-04-28 16:07:33 BST LOG: starting archive recovery
2006-04-28 16:07:33 BST LOG: restore_command =
"/mndata/scripts/wal_log_recovery.sh /mndata/archive/xlog_transfer/%f %p"
DEBUG: Recovering /mndata/archive/xlog_transfer/00000001.history to
pg_xlog/RECOVERYHISTORY
DEBUG: WAL log /mndata/archive/xlog_transfer/00000001.history does not exist
DEBUG: Checking for flag file at /tmp/recoverdb.flag
DEBUG: Flag file does not exist
DEBUG: 30s to wait before next check
--- > I touched the 00000001.history file here < ---
DEBUG: Source file /mndata/archive/xlog_transfer/00000001.history exists
DEBUG: copy command returned: 0
DEBUG: Returning code 0 to PostgreSQL
2006-04-28 16:10:03 BST LOG: restored log file "00000001.history" from
archive
DEBUG: Recovering
/mndata/archive/xlog_transfer/000000010000000900000009.009FF34C.backup to
pg_xlog/RECOVERYHISTORY
DEBUG: WAL log
/mndata/archive/xlog_transfer/000000010000000900000009.009FF34C.backup does
not exist
DEBUG: Checking for flag file at /tmp/recoverdb.flag
DEBUG: Flag file does not exist
DEBUG: 30s to wait before next check
--- END LOGOUTPUT ---
There was an error during recovering this file:
000000010000000900000009.009FF34C.backup (as for some reason copy returns 0
even when the file has failed to be moved - I'll have to build this check in
myself.) So PG carried on looking for 000000010000000900000009 instead.
Does Postgres not use the *.history and *.backup files during the recovery -
so it's not going to be harmful to the recovery if these files are empty?
Thanks
Andy
From | Date | Subject | |
---|---|---|---|
Next Message | Scott Marlowe | 2006-04-28 15:24:16 | Re: New system recommendations |
Previous Message | Hogan, James F. Jr. | 2006-04-28 15:05:21 | Re: Trouble installing pltcl language |