Нахожусь в процессе настройки резервного копирования. Все ПО скачено с сайта 1с.
бекап делаю так:
"D:\PostgreSQL\9.4.2-1.1C\bin\pg_dump.exe" --host localhost --port 5432 --username "postgres" --role "postgres" --no-password --format custom --compress 9 --encoding UTF8 --verbose --file "D:\PosgresArxiv\Test2_%date%"-"%TIME:~0,2%.%TIME:~3,2%.custom" "Test2"
На этом же сервере с целью проверки корректности сохраненного бекапа делаю восстановление, через админку pgAdmin.
D:\PostgreSQL\9.4.2-1.1C\bin\pg_restore.exe --host localhost --port 5432 --username "postgres" --dbname "Test2_restor" --role "postgres" --no-password --exit-on-error --verbose "D:\PosgresArxiv\Test2_30.06.2016-11.52.custom"
pg_restore: connecting to database for restore
pg_restore: creating SCHEMA public
pg_restore: creating COMMENT SCHEMA public
pg_restore: creating EXTENSION plpgsql
pg_restore: creating COMMENT EXTENSION plpgsql
pg_restore: creating EXTENSION adminpack
pg_restore: creating COMMENT EXTENSION adminpack
pg_restore: creating EXTENSION pg_buffercache
pg_restore: creating COMMENT EXTENSION pg_buffercache
pg_restore: creating SHELL TYPE mchar
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 2944; 0 0 SHELL TYPE mchar postgres
pg_restore: [archiver (db)] could not execute query: ERROR: type "mchar" already exists
Command was: CREATE TYPE mchar;
Процесс вернул код выхода 1.
Что такое: mchar? и как с этим бороться?
mchar - это тип данных
mchar - это тип данных специфический для версии PostgreSQL, собранной для работы с 1C. В оригинальном PostgreSQL такого типа данных нет.
Уже стопятьсот миллионов раз говорилось, что бакап надо делать не в custom формате а в обычном текстовом виде.
И текстового дампа можно спокойно вырезать те команды, которые мешают жить.
Также можно подумать о двухпроходном бакапе. На первой стадии выгружать только схему, на второй только данные.
в текстовом формате
в текстовом формате выскакивает ошибка кодировки UTF8. Нашел сегодня решение данного вопроса, восстановление в базу созданную без шаблона тип данных mchar заносится без проблем и ошибок. при любом виде выгрузки.
а по поводу "стопятьсот миллионов раз говорилось, что бакап надо делать в обычном текстовом виде" слышу впервой. ссылку можно хоть на одну рекомендацию в которой говорится, что именно plain то что надо для бакап? Все разговоры на эту тему что мне попадались просто скопированы друг у друга.
И я думаю что чем проще процесс создания бекапа тем лучше, 1 файл - 1 бекап. бухгалтерия средней фирмы переживет потерю данных за полдня или день. Админ иногда бывает в отпуске и его замена не всегда знает столько же.
Если бы вы воспользовались
Если бы вы воспользовались поиском на этом форуме, то вам не понадобились бы ссылки.
И я уже много раз объяснял почему лучше делать именно в текстовом виде.