Re: pg_restore - Mailing list pgsql-general

From Merlin Moncure
Subject Re: pg_restore
Date
Msg-id AANLkTi=OwimQSbfuc87998KUD-4jZpUtXSbs+r9rSJnN@mail.gmail.com
Whole thread Raw
In response to pg_restore  (Mike Orr <sluggoster@gmail.com>)
Responses Re: pg_restore
List pgsql-general
On Wed, Mar 30, 2011 at 3:56 PM, Mike Orr <sluggoster@gmail.com> wrote:
> I'm converting a MySQL webapp to PostgreSQL. I have a backup server
> which is refreshed twice daily with mysqldump/mysql and has a
> continuously-running copy of the webapp. I want to replicate this with
> pg_dump/pg_restore.  Ideally I'd like to restore just a few tables,
> without stopping the webapp and closing/reopening its connections. Is
> this possible with pg_restore?
>
> MySQL simply locks the tables, drops/recreates them, loads the data,
> and unlocks the tables. Other connections have to wait but they don't
> have to be closed/reopened. The PostgreSQL manual recommends restoring
> into an empty database using template0, which would require first
> closing the other connections and then dropping the database. It would
> also take unnecessary time to recreate the database and tables that
> aren't changing. So I'm wondering if there's a less obtrusive way to
> refresh the data.
>
> The tables to be updated do have 1:many relationships. How would I
> restore all of them at once? List them all as '-t' args to the same
> pg_restore command?

pg_dump and pg_restore can do it.  pg_dump -Fc is just like regular
dump but you can pull out specific tables by name.  or you can just
take are regular backup and just pg_dump out specific tables with the
proper options set in a small script.

because pg is transactional, you can do this any time of the day
without blocking  users (although there may be a small performance
hit).

hs/sr is also something to look at.

merlin

pgsql-general by date:

Previous
From: Merlin Moncure
Date:
Subject: Re: Merged Model for libpq
Next
From: John R Pierce
Date:
Subject: Re: Merged Model for libpq