Hello,

OK, what's then the difference doing a pg_start_backup() or just doing the backup?

Isn't that a problem that the datablock are very inconsistent, even so inconsistent that they are corrupt:

E.g. A part of a datablock is written when e.g. the file is tarred. => Datablock on backup is corrupt => An then even the WAL can't be applied.

Why does it work correctly? Or is there some design problem?

Thnx.

Ciao,
Gerhard

--
http://www.wiesinger.com/


On Thu, 25 Jun 2009, Richard Huxton wrote:

Gerhard Wiesinger wrote:
Hello,

I'd like to understand the PostgreSQL internals in "backup mode".

When I understood it correctly pg_start_backup() make a checkpoint and stops writing to the data/ directory except the WAL.

All new transaction go into WAL which is also logical. But how is data consistency done when the written/changed blocks don't fit into the buffer cache?

The data isn't kept consistent. Which is why you need the WAL. Restoring from a PITR backup is basically the same idea as recovering from a crash. Any blocks that might have been updated since you called pg_start_backup() will be rewritten from the WAL.

--
 Richard Huxton
 Archonet Ltd

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to