Re: Backup of live database

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Steve Holdoway <steve(dot)holdoway(at)firetrust(dot)com>
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: Backup of live database
Date: 2008-01-16 15:19:12
Message-ID: 23635.1200496752@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Steve Holdoway <steve(dot)holdoway(at)firetrust(dot)com> writes:
> You can be absolutely certain that the tar backup of a file that's changed is a complete waste of time. Because it changed while you were copying it.

That is, no doubt, the reasoning that prompted the gnu tar people to
make it do what it does, but it has zero to do with reality for
Postgres' usage in PITR base backups. What we care about is consistency
on the page level: as long as each page of the backed-up file correctly
represents *some* state of that page while the backup was in progress,
everything is okay, because replay of the WAL log will correct any pages
that are out-of-date, missing, or shouldn't be there at all. And
Postgres always writes whole pages. So as long as write() and read()
are atomic --- which is the case on all Unixen I know of --- everything
works.

(Thinks for a bit...) Actually I guess there's one extra assumption in
there, which is that tar must issue its reads in multiples of our page
size. But that doesn't seem like much of a stretch.

regards, tom lane

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Peter Eisentraut 2008-01-16 15:39:11 Re: Backup of live database
Previous Message Joshua D. Drake 2008-01-16 14:59:41 Re: Backup of live database