Search Postgresql Archives

Re: PITR Base Backup on an idle 8.1 server

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Greg Smith wrote:
On Tue, 5 Jun 2007, Marco Colombo wrote:

AFAIK, files in pg_xlog are first renamed (and only if and after the archive_command returned true) and later overwritten to. Never deleted.

No, they get deleted sometimes, too. Not often, but it can happen under heavy load if more segments get temporarily created than are normally needed. At checkpoint time, only 2*checkpoint_segments+1 xlog files are kept; if there are more than that, they are removed. Probably never happen on your system from what you've described of it, but it is a possibility.

Ok, you're right. Anyway neither renames nor deletes can happen during my backups. My archive_command prevents it.

As Simon just pointed out, the danger with the approach you're taken comes from what happens if a checkpoint occurs in the middle of your backup. You've probably never seen that happen either. As long as that continues to be true, you might be OK for now, but you really need to get to where you're following the recommended procedure rather than trying to do something a little different. There are too many edge cases here that could^H^H^H^H^Hwill bite you one day.

Let's say you use the standard procedure. Let's say that your archive_commands starts failing at 1:00 AM (say, no space left on the archive directory). Let's say your backup starts at 2:00 AM.

Later, at 8:00 AM you solve the disk full problem, and PG resumes the archiving of WAL segments... as long as there's enough room in pg_xlog for the extra segments, PG is fine.

Is your backup broken if a checkpoint happens during the backup? In my understanding, no. There's no need for archiving to happen immediately.

My procedure just simulates an archiving failure during the backup, no more, no less. The only difference is that the "problem" is solved right after the backup. By that time, all WAL records created during the backup have already been saved.

If you're going to archive WAL segments anyway, my procedure buys you almost nothing. It just saves you from using a trick and artificially fill a segment with garbage data just to have it archived right after the backup. It does so by using another trick, so no big deal. But it allows anyone not willing to take the burden, or face the danger, of actually archiving logs, to take file level backups instead of pg_dumps and without relying on external snapshotting abilities.

.TM.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux