Thread: pg_upgrade fails to restore function

pg_upgrade fails to restore function

From
"Roger Sunny"
Date:

Hi All

During the pg_upgrade from PostgreSQL 9.4 to PostgreSQL 10.0, the error”[archiver (db)] Error while PROCESSING TOC:” happened, The upgrade failed. OS is RHEL 6.5 , The error is as below:

<pg_upgrade log>
pg_restore: connecting to database for restore
pg_restore: creating pg_largeobject "pg_largeobject"
pg_restore: creating pg_largeobject_metadata "pg_largeobject_metadata"
pg_restore: creating SCHEMA "bo_user0300"
pg_restore: creating SCHEMA "d0007359_bex2018"
pg_restore: creating SCHEMA "d0007359_dan2014" 
 
---- omit ------
---- omit ------
---- omit ------

pg_restore: creating PROCEDURE "zchuo_ult18.kp_delkakeihyo(character)"

pg_restore: creating FOREIGN DATA WRAPPER "dblink_fdw"

pg_restore: [archiver (db)] Error while PROCESSING TOC:

pg_restore: [archiver (db)] Error from TOC entry 470023; 2328 777028 FOREIGN DATA WRAPPER dblink_fdw postgres
pg_restore: [archiver (db)] could not execute query: ERROR:  function dblink_fdw_validator(text[], oid) does not exist

   Command was: CREATE FOREIGN DATA WRAPPER "dblink_fdw" VALIDATOR "dblink_fdw_validator";

-- For binary upgrade, handle extension membership the hard way

ALTER EXTENSION "dblink" ADD FOREIGN DATA WRAPPER "dblink_fdw";

Please help to let me know how to address this error? 
I appreciate your quick response. Thank you!

Regards,
Roger

Re: pg_upgrade fails to restore function

From
Tom Lane
Date:
"=?gb18030?B?Um9nZXIgU3Vubnk=?=" <947035276@qq.com> writes:
> During the pg_upgrade from PostgreSQL 9.4 to PostgreSQL 10.0, the error¡±[archiver (db)] Error while PROCESSING
TOC:¡±happened, The upgrade failed. OS is RHEL 6.5 , The error is as below: 
> <pg_upgrade log>pg_restore: connecting to database for restorepg_restore: creating pg_largeobject
"pg_largeobject"pg_restore:creating pg_largeobject_metadata "pg_largeobject_metadata"pg_restore: creating SCHEMA
"bo_user0300"pg_restore:creating SCHEMA "d0007359_bex2018"pg_restore: creating SCHEMA "d0007359_dan2014"  ---- omit
----------omit ---------- omit ------  
> pg_restore: creating PROCEDURE "zchuo_ult18.kp_delkakeihyo(character)"

> pg_restore: creating FOREIGN DATA WRAPPER "dblink_fdw"

> pg_restore: [archiver (db)] Error while PROCESSING TOC:
>  pg_restore: [archiver (db)] Error from TOC entry 470023; 2328 777028 FOREIGN DATA WRAPPER dblink_fdw
postgrespg_restore:[archiver (db)] could not execute query: ERROR:  function dblink_fdw_validator(text[], oid) does not
exist 
>    Command was: CREATE FOREIGN DATA WRAPPER "dblink_fdw" VALIDATOR "dblink_fdw_validator";


Is that really the first error, or did you "omit" some?  What it
looks like is that dblink_fdw_validator had previously failed to
be created, probably because you don't have dblink.so installed
in the destination database.  Or maybe it's not the right version
of dblink.so.

            regards, tom lane


回复: pg_upgrade fails to restore function

From
"Roger Sunny"
Date:
HI Tom

Thank you very much for your help. This issue has been solved.

Regards,
Henry


------------------ 原始邮件 ------------------
发件人: "Tom Lane"<tgl@sss.pgh.pa.us>;
发送时间: 2018年3月3日(星期六) 晚上11:30
收件人: "Roger Sunny"<947035276@qq.com>;
抄送: "pgsql-general"<pgsql-general@lists.postgresql.org>;
主题: Re: pg_upgrade fails to restore function

"Roger Sunny" <947035276@qq.com> writes:
> During the pg_upgrade from PostgreSQL 9.4 to PostgreSQL 10.0, the error¡±[archiver (db)] Error while PROCESSING TOC:¡± happened, The upgrade failed. OS is RHEL 6.5 , The error is as below:
> <pg_upgrade log>pg_restore: connecting to database for restorepg_restore: creating pg_largeobject "pg_largeobject"pg_restore: creating pg_largeobject_metadata "pg_largeobject_metadata"pg_restore: creating SCHEMA "bo_user0300"pg_restore: creating SCHEMA "d0007359_bex2018"pg_restore: creating SCHEMA "d0007359_dan2014"  ---- omit ---------- omit ---------- omit ------
> pg_restore: creating PROCEDURE "zchuo_ult18.kp_delkakeihyo(character)"
 
> pg_restore: creating FOREIGN DATA WRAPPER "dblink_fdw"
 
> pg_restore: [archiver (db)] Error while PROCESSING TOC:
>  pg_restore: [archiver (db)] Error from TOC entry 470023; 2328 777028 FOREIGN DATA WRAPPER dblink_fdw postgrespg_restore: [archiver (db)] could not execute query: ERROR:  function dblink_fdw_validator(text[], oid) does not exist
>    Command was: CREATE FOREIGN DATA WRAPPER "dblink_fdw" VALIDATOR "dblink_fdw_validator";


Is that really the first error, or did you "omit" some?  What it
looks like is that dblink_fdw_validator had previously failed to
be created, probably because you don't have dblink.so installed
in the destination database.  Or maybe it's not the right version
of dblink.so.

regards, tom lane