Search Postgresql Archives

Restoring only some data from a backup file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faq

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux