Обсуждение: Problem restoring large objects with pg_restore

Поиск
Список
Период
Сортировка

Problem restoring large objects with pg_restore

От
"Chris White (cjwhite)"
Дата:
I am running version 7.2.1 of postgres and I am trying to restore all the large objects and associated tables from a backup I took 3 days ago. I created a restore list using
 
pg_restore -l restore.file > restore.list
 
command. I then edited the restore list to only include those tables I needed. Then I restored the tables and large objects using the
 
pg_restore -c -d database -U user -L restore list restore.file
 
Everything got restored, all the requested tables and all the large objects. However, all the large objects were restored with a different oids (some using oids of previous large objects), which made all the references to these oids in the tables incorrect.
 
What did I do wrong?
 
Chris White

Re: Problem restoring large objects with pg_restore

От
Tom Lane
Дата:
"Chris White (cjwhite)" <cjwhite@cisco.com> writes:
> Everything got restored, all the requested tables and all the large
> objects. However, all the large objects were restored with a different
> oids (some using oids of previous large objects),

That's what's expected to happen.  There is no way for pg_restore to
force them to have the same OIDs as before.

> which made all the
> references to these oids in the tables incorrect.

pg_restore is supposed to take care of updating references to restored
large objects.  Perhaps you were storing the references as the wrong
datatype (not OID or LO)?  Or perhaps you tried to do the restore in
multiple pg_restore runs?  I'm not certain, but I think pg_restore
may only look at tables restored in the current run for references to
update.  For sure it can't fix tables you haven't restored yet.

            regards, tom lane