Re: HELP - need way to restore only blobs - Mailing list pgsql-admin

From Jeff Boes
Subject Re: HELP - need way to restore only blobs
Date
Msg-id c68c6dbaf66141ab10437a911f9f5a30@news.teranews.com
Whole thread Raw
In response to HELP - need way to restore only blobs  (Warren Little <wlittle@securitylending.com>)
Responses Re: HELP - need way to restore only blobs
List pgsql-admin
At some point in time, wlittle@securitylending.com (Warren Little) wrote:

>I migrated my database from 7.3 to 7.4 this weekend using the pg_dumpall
>tool which I now realize does not capture blobs.
>
>I now need to move only the blob data to the 7.4 database.
>The problem with redoing the dump with pg_dump -b is the database is now
>in production and writing over the top of changes to the database is not
>exceptable.  The blob data is very static so if there was some way to
>copy the physical files from disk and modify some records in the system
>tables to properly locate the  blob records that would be best.  Another
>option I was looking at was to restore the archived database with the
>blobs intact and then restore the production version over the top
>without destroying the blob data.

In a similar situation, we wrote a script that constructs "\lo_export" commands
to dump each large object to a file. The file name for each contains the
information needed to reconstruct the object at the other end. For instance, if
you have a table like this:

CREATE TABLE foobar (primary_id INTEGER PRIMARY KEY, large_obj OID, ...)

you'd want a series of commands that look like this:

\lo_export <large_obj> <primary_id>.dmp

Then, given a directory full of such files, you construct another series of
commands that look like this:

\lo_import <primary_id>.dmp

UPDATE foobar SET large_obj = <new_value> WHERE primary_id = <primary_id>;

The trick is capturing the output of the \lo_import command and parsing it to
get the large object OID after it is created.

I don't know if I have permission to post or email the script, but if you
contact me offline I should know by then.

jboes at n/e/x/c/e/r/p/t/d/o/t/c/o/m

--
~~~~~~~~~~~~~~~~| Genius may have its limitations, but stupidity is not
Jeff Boes       | thus handicapped.
jboes@qtm.net   |        --Elbert Hubbard (1856-1915), American author



pgsql-admin by date:

Previous
From: Tom Lane
Date:
Subject: Re: pg_user does not exist
Next
From: Bethany A.Benzur
Date:
Subject: Re: pg_user does not exist