WAL recovery question - 0000001.history - Mailing list pgsql-admin
From | Andy Shellam |
---|---|
Subject | WAL recovery question - 0000001.history |
Date | |
Msg-id | 20060428152301.007F011F602A@postgresql.org Whole thread Raw |
Responses |
Re: WAL recovery question - 0000001.history
Re: WAL recovery question - 0000001.history |
List | 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
pgsql-admin by date: