Re: Enforcing that all WAL has been replayed after restoring from backup
Fujii Masao <masao.fujii@gmail.com>
From: Fujii Masao <masao.fujii@gmail.com>
To: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Cc: Simon Riggs <simon@2ndquadrant.com>, Robert Haas <robertmhaas@gmail.com>, Magnus Hagander <magnus@hagander.net>, Tom Lane <tgl@sss.pgh.pa.us>, Alvaro Herrera <alvherre@commandprompt.com>, Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2011-08-16T01:10:22Z
Lists: pgsql-hackers
Attachments
- require-backup-end-record-2.patch (text/x-patch)
On Thu, Aug 11, 2011 at 1:34 AM, Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> wrote: > Hmm, that's not possible for the 'tar' output, but would work for 'dir' > output. Another similar idea would be to withhold the control file in memory > until the end of backup, and append it to the output as last. The backup > can't be restored until the control file is written out. > > That won't protect from more complicated scenarios, like if you take the > backup without the -x flag, and copy some but not all of the required WAL > files manually to the pg_xlog directory. But it'd be much better than > nothing for 9.1. We need to skip checking whether we've reached the end backup location only when the server crashes while base backup using pg_start_backup. Right? We can do this by *not* initializing ControlFile->backupStartPoint if the server is doing crash recovery and backupEndRequired is false. What about the attached patch? Regards, -- Fujii Masao NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center