Thread: Consistent pg_dump's

Consistent pg_dump's

From
Alexey Rodriguez Yakushev
Date:
  Are pg_dump's consistent? Do i have to shutdown the system in order to make
a pg_dump? What other alternatives are for backing up a database without
shutting down the system in order to allow consistent backups?
  Another question: Can the rows that haven't been vaccumed yet retrieved?

  Thanks for your help. Bye!!

  Alexey

Re: Consistent pg_dump's

From
Doug McNaught
Date:
Alexey Rodriguez Yakushev <alexey@serinbol.com> writes:

> Are pg_dump's consistent? Do i have to shutdown the system in order
> to make a pg_dump? What other alternatives are for backing up a
> database without shutting down the system in order to allow
> consistent backups?  Another question: Can the rows that haven't
> been vaccumed yet retrieved?

Yes.  No.  None.  Theoretically, but no tools exist AFAIK.

HTH.  HAND.

-Doug

Re: Consistent pg_dump's

From
Alexey Rodriguez Yakushev
Date:
On Wednesday 28 March 2001 22:48, you wrote:
> Alexey Rodriguez Yakushev <alexey@serinbol.com> writes:
> > Are pg_dump's consistent? Do i have to shutdown the system in order
> > to make a pg_dump? What other alternatives are for backing up a
> > database without shutting down the system in order to allow
> > consistent backups?  Another question: Can the rows that haven't
> > been vaccumed yet retrieved?
>
> Yes.  No.  None.  Theoretically, but no tools exist AFAIK.
>
> HTH.  HAND.
>
> -Doug

Let me rephrase the question, i have a web-based application which uses
postgres as its backend. It must be operating 24 hours 7 days. If i want to
make a backup of the database using pg_dump, wouldn't it be possible that a
transaction occurs in the middle of the backup, leaving the backup
inconsistent?

Re: Consistent pg_dump's

From
Doug McNaught
Date:
Alexey Rodriguez Yakushev <alexey@serinbol.com> writes:

> Let me rephrase the question, i have a web-based application which uses
> postgres as its backend. It must be operating 24 hours 7 days. If i want to
> make a backup of the database using pg_dump, wouldn't it be possible that a
> transaction occurs in the middle of the backup, leaving the backup
> inconsistent?

I am pretty sure that pg_dump produces a consistent snapshot, using
the same transaction isolation mechanism (MVCC) as the database
itself.  If one of the gurus posts and says otherwise, believe him,
not me.  ;)

-Doug

Re: Consistent pg_dump's

From
Alfred Perlstein
Date:
* Doug McNaught <doug@wireboard.com> [010329 15:22] wrote:
> Alexey Rodriguez Yakushev <alexey@serinbol.com> writes:
>
> > Let me rephrase the question, i have a web-based application which uses
> > postgres as its backend. It must be operating 24 hours 7 days. If i want to
> > make a backup of the database using pg_dump, wouldn't it be possible that a
> > transaction occurs in the middle of the backup, leaving the backup
> > inconsistent?
>
> I am pretty sure that pg_dump produces a consistent snapshot, using
> the same transaction isolation mechanism (MVCC) as the database
> itself.  If one of the gurus posts and says otherwise, believe him,
> not me.  ;)

My impression from reading the source was that it was consitant per-table
but not per-database.  Meaning you'd get a consistant snapshot of a table,
but not of the entire system.

I could be wrong though.

--
-Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org]
Represent yourself, show up at BABUG http://www.babug.org/

Re: Consistent pg_dump's

From
Manuel Sugawara
Date:
Doug McNaught <doug@wireboard.com> writes:

> I am pretty sure that pg_dump produces a consistent snapshot, using
> the same transaction isolation mechanism (MVCC) as the database
> itself.  If one of the gurus posts and says otherwise, believe him,
> not me.  ;)

Yes, you are right, this is done in pg_dump with the command:

set transaction isolation level serializable

Regards,
Manuel.

Re: Consistent pg_dump's

From
"Gregory Wood"
Date:
> > I am pretty sure that pg_dump produces a consistent snapshot, using
> > the same transaction isolation mechanism (MVCC) as the database
> > itself.  If one of the gurus posts and says otherwise, believe him,
> > not me.  ;)
>
> My impression from reading the source was that it was consitant per-table
> but not per-database.  Meaning you'd get a consistant snapshot of a table,
> but not of the entire system.
>
> I could be wrong though.

I hope so... that could break some foreign key dependencies pretty badly...

Greg


Re: Consistent pg_dump's

From
Tom Lane
Date:
Alexey Rodriguez Yakushev <alexey@serinbol.com> writes:
> Let me rephrase the question, i have a web-based application which uses
> postgres as its backend. It must be operating 24 hours 7 days. If i want to
> make a backup of the database using pg_dump, wouldn't it be possible that a
> transaction occurs in the middle of the backup, leaving the backup
> inconsistent?

No.  pg_dump will produce a consistent snapshot that does not show the
effects of transactions that start (or complete) after the pg_dump
transaction starts.  See the "multi-version concurrency control" chapter
of the User's Guide.

Postgres has its share of problems for 24x7 operation (read about VACUUM
if you haven't yet) ... but producing self-consistent backups is not
one of 'em.

            regards, tom lane