2013-07-23 3 views
0

Мне нужна помощь с резервной копией Postgres. Я пытаюсь восстановить резервную копию базы данных из pgAdmin III 1.16.1 из Windows 7 x32. Исходная база данных находится на одном сервере (также w7), а другая - на сервере Ububtu. Я пробовал каждую комбинацию доступных опций, я даже пытался сделать резервную копию и восстановить из командной строки сервера и из окон вместо использования графической интерфазы.проблемы с pg_restore в PgAdminIII

thees - это выполненные команды и ошибки. В результате база данных восстанавливается, но только часть.

, пожалуйста, помогите мне!

я скопировал только часть журнала, потому что подмигнули слишком долго .... но никаких швов ошибок не быть «один»

C:\Program Files\pgAdmin III\1.10\pg_dump.exe --host 00.00.0.000 
--port 0000 --username "username" --role "role" --no-password 
--format tar --blobs --encoding UTF8 --verbose --file 
"C:\Users\xxxxx\Documents\BackUpPostgres\backU.backup" "DATABASE" 

C:\Program Files\pgAdmin III\1.10\pg_restore.exe --host 111.111.11.111 
--port 0000 --username "username" --dbname "database" 
--role "role" --no-password --verbose 
"C:\Users\xxxxx\Documents\BackUpPostgres\backU.backup" 

pg_restore: connecting to database for restore 
pg_restore: creating COMMENT database 
pg_restore: creating SCHEMA public 
pg_restore: creating COMMENT SCHEMA public 
pg_restore: creating PROCEDURAL LANGUAGE plpgsql 
pg_restore: [archiver (db)] Error while PROCESSING TOC: 
pg_restore: [archiver (db)] Error from TOC entry 1774; 2612 16386 PROCEDURAL LANGUAGE plpgsql postgres 
pg_restore: [archiver (db)] could not execute query: ERROR: language "plpgsql" already exists 
    Command was: CREATE PROCEDURAL LANGUAGE plpgsql; 
pg_restore: creating SHELL TYPE box2d 
pg_restore: [archiver (db)] Error from TOC entry 1673; 0 0 SHELL TYPE box2d postgres 
pg_restore: [archiver (db)] could not execute query: ERROR: type "box2d" already exists 
    Command was: CREATE TYPE box2d; 
pg_restore: creating FUNCTION st_box2d_in(cstring) 
pg_restore: [archiver (db)] Error from TOC entry 936; 1255 18058 FUNCTION st_box2d_in(cstring) postgres 
pg_restore: [archiver (db)] could not execute query: ERROR: could not access file "$libdir/postgis-1.4": No such file or directory 
    Command was: CREATE FUNCTION st_box2d_in(cstring) RETURNS box2d 
    LANGUAGE c IMMUTABLE STRICT 
    AS '$libdir/postgis-1.4', 'BOX2DFLOAT... 
pg_restore: [archiver (db)] could not execute query: ERROR: function public.st_box2d_in(cstring) does not exist 
    Command was: ALTER FUNCTION public.st_box2d_in(cstring) OWNER TO postgres; 

ответ

1

Вы должны сбросить данные без public схемы, это можно сделать с помощью переключателя --exclude-schema (или ярлыка -N).

pg_dump -U my_user -d my_database -N public -F c backup.dump 
+0

Хороший ответ, за исключением того, что он работает только с нижним регистром -n. – thatdankent

+0

'-n' имеет противоположный эффект, включает указанную схему, но должен опускать экспортные расширения. Итак, вы правы, это еще одна возможность решить эту проблему (также зависит от того, какую схему вы используете для хранения данных). – Tombart

Смежные вопросы