Восстановление базы 1с Postgress #629923


#0 by Sergio-ps
Добрый вечер. на Win Server 2003 установлен сервер 1с, PostgreSQL. Делаются резервные копии каждый день. Но столкнулся с проблемой. необходимо восстановить базу  на определенное число, а он при восстановлении выдает кучу ошибок на то что таблица существует, метод существует и тд , невозможно перезаписать. и в итоге Процесс вернул код выхода 1. Соответсвенно в пустую базу он ничего не восстанавливает, она остается пустой. пробовал как создавать новую базу из управления серверами 1с, так и средствами postgres.
#1 by Sergio-ps
бэкап делается по команде "C:Program Files (x86)PostgreSQL8.4.3-3.1Cinpg_dump.exe" -i -h localhost -p 5432 -U postgres -Fc -b -f "F:postgres_backup%datetemp%.backup" Base Восстанавливать пробовал из PgAdmin  и командой "C:Program Files (x86)PostgreSQL8.4.3-3.1Cinpg_restore.exe" -i -h localhost -U postgres -c -d BuhTemp "F:postgres_backupBUHBUH_120803.backup"
#2 by глазковыколупыватель
Base сначала очистить надо. Или удалить, а потом - опять создать.
#3 by Ben_art
схему дропни или только таблицы
#4 by Sergio-ps
Я пустую базу создаю и в нее пытаюсь восстанавливать, наверно не имеет значения что у нее имя другое?
#5 by ansh15
Не имеет. Попробуйте без флага -с в созданную пустую базу. Сейчас проверял, с флагом -с (-c --clean Clean (drop) database objects before recreating them) выдает ошибки, без него нормально восстанавливает.
#6 by Sergio-ps
хорошо попробую. Вот создал новую базу и в нее восстановил с помощью pgAdmin/ он по умолчанию сделал такой командой: C:Program Files (x86)PostgreSQL8.4.3-3.1Cinpg_restore.exe -i -h localhost -p 5432 -U postgres -d "BuhTemp" -v "F:postgres_backupBUH_120725.backup" В итоге куча ошибок. и база не восстановлена, даже конфигуратор не открывается. ..... pg_restore: connecting to database for restore 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 5256; 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 chkpass pg_restore: [archiver (db)] Error from TOC entry 1230; 0 0 SHELL TYPE chkpass postgres pg_restore: [archiver (db)] could not execute query: ERROR:  type "chkpass" already exists ........ pg_restore: creating FUNCTION isnge(ean13, upc) pg_restore: [archiver (db)] Error from TOC entry 391; 1255 17237 FUNCTION isnge(ean13, upc) postgres pg_restore: [archiver (db)] could not execute query: ERROR:  function "isnge" already exists with same argument types    Command was: CREATE FUNCTION isnge(ean13, upc) RETURNS boolean    LANGUAGE internal IMMUTABLE STRICT    AS $$int8ge$$; ...... pg_restore: setting owner and privileges for INDEX byosname pg_restore: setting owner and privileges for INDEX byrolesid pg_restore: setting owner and privileges for INDEX byshow WARNING: errors ignored on restore: 6866 Процесс вернул код выхода 1.
#7 by ansh15
А базу чем создаете? Из консоли администрирования 1С? Или в PgAdmin?
#8 by Sergio-ps
уже и тем и другим способом пробовал. Все равно не восстанавливает. причем пробовал уже и другой архив брать, тоже самое. может не правильная команда создания копии?
#9 by ansh15
Посомтри содержимое архива, вдруг он текстовый, блокнотом каким-нибудь. Архив, созданный с флагом "-F c" начинается со слова PGDUMP, текстовый начинается со строк -- -- PostgreSQL database dump -- и дальше команды SQL. Можно попробовать явно задать custom формат в pg_restore "-F c". Кстати, у тебя в командной строке "-Fc", без пробела, может в Windows как-то влияет, в Linux без разницы.
#10 by Sergio-ps
Хорошо, попытаюсь посмотреть, уже 5 минут WordPad открывает. Кстати, не могли бы выложить рабочую комбинацию команд архивации и восстановления. на будущее хотя бы поменять. потому как походу ни один архив не восстанавливается.
#11 by Sergio-ps
архив начинается с PGDMP потмо название базы, кодировка и наверное команды. правда все так висит, что даже скопировать оттуда не удается. Кстакти вот например строка 2200 - public - SCHEMA  T CREATE SCHEMA public; ?I DROP SCHEMA public; o postgres | false странно как то, получается он сначала создает а потом удаляет?
#12 by Sergio-ps
и интересно что значит строчка postgres | false? там много таких, или User1c | false. что то с пользователями связано
#13 by ansh15
Базу рукам попробуй создать, в командной строке на сервере. creаtedb.exe -U postgres testbuh1, например. Потом pg_restore.exe -U postgres -d testbuh1 имя_архива.
#14 by Sergio-ps
создал пустую базу, почему то опять ругается на существующие элементы. и в самом конце вот что выдал: pg_restore: [archiver (db)] COPY failed: ERROR:  out of memory DETAIL:  Failed on request of size 536870912. CONTEXT:  COPY config, line 9419: "e0666db2-45d6-49b4-a200-061c6ba7 -8696-411f-95a1-ef011fdf8da9    2012-03-28 16:49:37     2012-0..." WARNING: errors ignored on restore: 1130 В итоге база не запускается. конфигуратор открывается но видит пустую конфигурацию
#15 by Sergio-ps
если только попробовать загрузить сначала в базу дтшник старый, а потом попробовать через постгрес восстановить только данные?
#16 by BigHarry
"COPY failed: ERROR:  out of memory" - проходили, вылечили только загрузкой дампа в постгри, установленный на линуксе, на виндовый постгря дамп упорно не хотел заливаться, вылезала "out of memory",  никакие манипуляции с конфигом не помогали.
#17 by BigHarry
А корень зла - бинарники, хранимые в БД, большие фотографии или pdf-ки...
#18 by Sergio-ps
Бухгалтерия предприятия. вроде нет файлов. если только документы.
#19 by Sergio-ps
а на виртуалке если поднять постгри, думаете поможет?
#20 by Sergio-ps
pg_restore: [archiver (db)] Error from TOC entry 13847; 0 361139 TABLE DATA config user1c pg_restore: [archiver (db)] COPY failed: ERROR:  duplicate key value violates unique constraint "config_pkey" CONTEXT:  COPY config, line 1: "d4a1f489-2fba-41f6-ab57-3986f22c7403    2012-03-28 16:50:37    2012-03-28 16:50:37    0    89    {\277{\177\265..." pg_restore: restoring data for table "configsave" pg_restore: restoring data for table "dbschema" pg_restore: restoring data for table "files" pg_restore: [archiver (db)] Error from TOC entry 13850; 0 377251 TABLE DATA files user1c pg_restore: [archiver (db)] COPY failed: ERROR:  duplicate key value violates unique constraint "files_pkey" CONTEXT:  COPY files, line 1: "c01b78f6-1525-41b1-9cc1-69e3da58d2ac.pfl    2010-12-30 10:15:16    2012-05-16 12:42:04    0    416    \215\207\0..." pg_restore: restoring data for table "params" pg_restore: [archiver (db)] Error from TOC entry 13849; 0 377204 TABLE DATA params user1c pg_restore: [archiver (db)] COPY failed: ERROR:  duplicate key value violates unique constraint "params_pkey" CONTEXT:  COPY params, line 1: "locale.inf    2010-12-30 10:15:15    2010-12-30 10:15:15    0    36    \357\273\277{"ru_RU",0,0,"",-1,"","","","..." pg_restore: restoring data for table "v8users" WARNING: errors ignored on restore: 600 Процесс вернул код выхода 1. Это выдает при попытке "восстановить только данные " из pgAdmin в работоспособную бухгалтерию за июль
#21 by Sergio-ps
и соответственно новых данных не появляется
#22 by BigHarry
Я на виртуалке не стал развертывать, ибо винда и железо было только 32 разрядное, просто на какой-то ближайшей рабочей станции установил линукс и слона. Не знаю, может вам имеет смысл попробовать установить 64-битный постгри и там развернуть архив, если, канечно, есть где-то такая сборка с патчами 1С под винду...
#23 by alxbzm
Я бы посоветовал взять 9-й постгри и попробовать на нем (в том числе и утилиты pg_dump / pg_restore соответствующих версий)... Я тут неоднократно писал про чудеса 8.4.x. У меня сейчас крутится 9.1.2 от 1С - вроде полет нормальный - и с бэкапом, и с восстановлением.
#24 by Sergio-ps
поставил 9,1,2 постгри, пытаюсь туда восстановить. посмотрим
#25 by Sergio-ps
не помогло 9 постгри. Опять куча ошибок и база не открывается. pg_restore: dropping SHELL TYPE ean13 pg_restore: dropping TYPE dblink_pkey_results pg_restore: dropping COMMENT TYPE cube pg_restore: dropping TYPE cube pg_restore: dropping FUNCTION cube_out(cube) pg_restore: [archiver (db)] Error from TOC entry 164; 1255 16855 FUNCTION cube_out(cube) postgres pg_restore: [archiver (db)] could not execute query: ERROR:  type "cube" does not exist    Command was: DROP FUNCTION public.cube_out(cube); ... pg_restore: setting owner and privileges for INDEX byshow WARNING: errors ignored on restore: 5395 Процесс вернул код выхода 1.
#26 by BigHarry
Сильно большой у вас дамп?
#27 by глазковыколупыватель
+ Давай дамп, выкладывай куда-нить.
#28 by alxbzm
Не хочу показаться занудой, но вместо анализа дампа я бы сделал следующее: 1) Выгрузил базу в dt через конфигуратор 2) Залил базу на Postgre 9.1.2 из dt через конфигуратор 3) Сделал бы дамп в postgre 9.1.2 4) Попробовал бы залить на тот же 9.1.2 полученный дамп. P.S. У меня для 9.1.2 дампа в командной строке есть приписочка: -b -Z 9 -E UTF-8 - здесь указываю компрессию и кодировку х.з. насколько это принципиально. Да - и восстанавливать я пробовал через pgAdmin 1.14.1 - хотя это тоже не принципиально - можно потом командную строку срисовать из графического интерфейса.
#29 by ansh15
>>Не знаю, может вам имеет смысл попробовать установить 64-битный постгри и там развернуть архив, если, канечно, есть где-то такая сборка с патчами 1С под винду... Есть. На пользовательском сайте 1С.
#30 by Sergio-ps
Выгрузить базу в dt я конечно могу, но бухгалтерам вот приспичило восстановить от 1го августа. че то они там удалили потом нечаянно. поэтому и мучаюсь с этим дампом, т.к. нету других копий за те числа. 64 юитный постгри.. попробую. Кстати заметил, когда восстанавливаю в базу созданную через пгАдмин или Средствами 1с, то вылазиют ошибки про существующие таблицы и тд., а когда создаю базу сreаtedb.exe -U postgres названиебазы, и восстанавливаю  pg_restore.exe -U postgres -d названиебазы имя_архива, то потом вываливается out of memory
#31 by Sergio-ps
дамп размером 600 метров, размер азы в папке постгри 7 гигов.
#32 by zzhiraf
А можно ссылочку? И еще вопрос как перенести данные с MS SQL?
#33 by ansh15
Пожалуйста. Если есть доступ, конечно. Перенос тоже просто, через dt файл.
#34 by ansh15
Когда база создается через консоль администрирования, в ней создаются таблицы, типы данных и т.д. Поэтому при восстановлении и появляются ошибки о существующих таблицах. Попробуй PostgreSQL x64, может поможет с out of memory.
#35 by ansh15
Ну да, может помочь.
#36 by ansh15
Пишут, что можно поварьировать maintenance_work_mem.
#37 by zzhiraf
Спасибо. Нет доступа(
#38 by Sergio-ps
maintenance_work_mem стоит по умолчанию. Текущее значение 16384. наверно в мегабайтах. хотя оперативки всего 8 гигов. попробую поменять на меньшее значение) докачаю - выложу куда нибудь сборку постгреса
#39 by Sergio-ps
<a href="#37" style="text-decoration:none;" class="interlink" rel="#37">37</a> Постгрес 9.1.2: 64битный для винды: [url= x86&x64 для linux: [url=
#40 by Sergio-ps
блин перемудрил со ссылками: linux: windows:
#41 by zzhiraf
Спасибо!
#42 by ansh15
Куда ж столько, если в мегабайтах.
#43 by zzhiraf
а постгрес еще надо настраивать? есть ли готовые файлы с оптимальными настройками?)
#44 by ansh15
В зависимости от ваших конфигураций, размера баз и объема памяти сервера. Поищите по форуму, были темы по настройке postgresql.conf. В Интернете тоже много найдется. На сайте Гилева, например.
#45 by zzhiraf
Нашел сайт Гилева, почитаю, спасибо.
#46 by ansh15
Вот еще гляньте
#47 by zzhiraf
ага, спасибо!
#48 by Sergio-ps
в продолжение темы про восстановление, на том же сервере есть еще одна база гига на 2 поменьше, бэкапится теми же командами, при восстановлении так же куча ошибок про существующие объекты, возвращает код 1, но в итоге после восстановления она работает. Пока убедил бухгалтеров что нету копии за август, но найду свободный комп и попробую поднять постгрес на линуксе
#49 by DGorgoN
Виртуалку поставь
Тэги: Админ
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С