Re: HELP - need way to restore only blobs

From: Jeff Boes <jboes(at)nexcerpt(dot)com>
To: pgsql-admin(at)postgresql(dot)org
Subject: Re: HELP - need way to restore only blobs
Date: 2004-02-18 12:54:23
Message-ID: c68c6dbaf66141ab10437a911f9f5a30@news.teranews.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

At some point in time, wlittle(at)securitylending(dot)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(at)qtm(dot)net | --Elbert Hubbard (1856-1915), American author

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Bethany A.Benzur 2004-02-18 14:10:18 Re: pg_user does not exist
Previous Message Tom Lane 2004-02-18 04:06:00 Re: pg_user does not exist