Restoring only some data from a backup file

From: mljv(at)planwerk6(dot)de
To: pgsql-general(at)postgresql(dot)org
Subject: Restoring only some data from a backup file
Date: 2007-12-18 09:44:58
Message-ID: 200712181044.58306.mljv@planwerk6.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

hi,

i run a webapp where lots of accounts are managing something. I do a nightly
backup of my database. Sometime some users want to have their account restored
from a backup days, weeks or months ago.

At the moment i use (multi-column) natural keys. So each and every table has
at least a column "account_name" (sometimes part of a multi-column primary
key). If i want to restore i use pg_restore and grep to filter out the lines
i need. It is not very sophisticated but it works.

Our new Databse design removes natural keys in favor of surrogate keys.

Now i still want to easily restore an account from a given dump file.

I can't use pg_restore and grep anymore as the hierarchical structure of the
tables can't be easily greped as i dont have the account_name in every table
anymore.

I came across the following ideas:

1. Scripting pg_restore output
- use a perl script which greps for the base table (accounts)
- grep the member table for foreign keys to account_id
- remember all member_ids
- grep the "entries" table for alle memorized member_ids
- and so on for each hierarchical level.

2. PITR
I could use PITR using a backup database replying it to the timestamp where i
want to restore an account.
Then i can select all entries with regular sql and replay them in the original
database.
Nice side effect: more backups are made

3. Install all backup databases
I could install my dumps on a backup server and name the databases according
to their backup date.
advantage: i could connect my app directly to the backup database to get a
historical view.
disadvantage: This needs to much disk space.

Are their other solutions?
What are you doing if you want to restore only some specific and hierarchical
data from a backup?

kind regards,
Janning

PS: i recently used oracle for the first time in a project. Postgresql is so
much better! I do not want to start a discussion about this, just wanted to
cheer all those pg developers. Great job! I love it even more after using
oracle.

Browse pgsql-general by date

  From Date Subject
Next Message Martijn van Oosterhout 2007-12-18 10:09:25 Re: postgres8.3beta encodding problem?
Previous Message Richard Huxton 2007-12-18 09:21:26 Re: slony error --need help