|
Восстановление базы 1с Postgress | ☑ | ||
---|---|---|---|---|
0
Sergio-ps
17.09.12
✎
19:09
|
Добрый вечер. на Win Server 2003 установлен сервер 1с, PostgreSQL.
Делаются резервные копии каждый день. Но столкнулся с проблемой. необходимо восстановить базу на определенное число, а он при восстановлении выдает кучу ошибок на то что таблица существует, метод существует и тд , невозможно перезаписать. и в итоге Процесс вернул код выхода 1. Соответсвенно в пустую базу он ничего не восстанавливает, она остается пустой. пробовал как создавать новую базу из управления серверами 1с, так и средствами postgres. |
|||
1
Sergio-ps
17.09.12
✎
19:12
|
бэкап делается по команде
"C:\Program Files (x86)\PostgreSQL\8.4.3-3.1C\bin\pg_dump.exe" -i -h localhost -p 5432 -U postgres -Fc -b -f "F:\postgres_backup\%datetemp%.backup" Base Восстанавливать пробовал из PgAdmin и командой "C:\Program Files (x86)\PostgreSQL\8.4.3-3.1C\bin\pg_restore.exe" -i -h localhost -U postgres -c -d BuhTemp "F:\postgres_backup\BUH\BUH_120803.backup" |
|||
2
глазковыколупыватель
17.09.12
✎
19:37
|
Base сначала очистить надо. Или удалить, а потом - опять создать.
|
|||
3
Ben_art
17.09.12
✎
19:39
|
схему дропни или только таблицы
|
|||
4
Sergio-ps
17.09.12
✎
20:32
|
Я пустую базу создаю и в нее пытаюсь восстанавливать, наверно не имеет значения что у нее имя другое?
|
|||
5
ansh15
17.09.12
✎
21:51
|
(4) Не имеет.
Попробуйте без флага -с в созданную пустую базу. Сейчас проверял, с флагом -с (-c --clean Clean (drop) database objects before recreating them) выдает ошибки, без него нормально восстанавливает. |
|||
6
Sergio-ps
17.09.12
✎
22:09
|
хорошо попробую.
Вот создал новую базу и в нее восстановил с помощью pgAdmin/ он по умолчанию сделал такой командой: C:\Program Files (x86)\PostgreSQL\8.4.3-3.1C\bin\pg_restore.exe -i -h localhost -p 5432 -U postgres -d "BuhTemp" -v "F:\postgres_backup\BUH_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
ansh15
17.09.12
✎
22:54
|
А базу чем создаете? Из консоли администрирования 1С? Или в PgAdmin?
|
|||
8
Sergio-ps
17.09.12
✎
23:26
|
уже и тем и другим способом пробовал. Все равно не восстанавливает. причем пробовал уже и другой архив брать, тоже самое. может не правильная команда создания копии?
|
|||
9
ansh15
18.09.12
✎
10:17
|
Посомтри содержимое архива, вдруг он текстовый, блокнотом каким-нибудь.
Архив, созданный с флагом "-F c" начинается со слова PGDUMP, текстовый начинается со строк -- -- PostgreSQL database dump -- и дальше команды SQL. Можно попробовать явно задать custom формат в pg_restore "-F c". Кстати, у тебя в командной строке "-Fc", без пробела, может в Windows как-то влияет, в Linux без разницы. |
|||
10
Sergio-ps
18.09.12
✎
11:54
|
Хорошо, попытаюсь посмотреть, уже 5 минут WordPad открывает.
Кстати, не могли бы выложить рабочую комбинацию команд архивации и восстановления. на будущее хотя бы поменять. потому как походу ни один архив не восстанавливается. |
|||
11
Sergio-ps
18.09.12
✎
12:29
|
архив начинается с
PGDMP потмо название базы, кодировка и наверное команды. правда все так висит, что даже скопировать оттуда не удается. Кстакти вот например строка 2200 - public - SCHEMA T CREATE SCHEMA public; ?I DROP SCHEMA public; o postgres | false странно как то, получается он сначала создает а потом удаляет? |
|||
12
Sergio-ps
18.09.12
✎
12:36
|
и интересно что значит строчка
postgres | false? там много таких, или User1c | false. что то с пользователями связано |
|||
13
ansh15
18.09.12
✎
12:36
|
Базу рукам попробуй создать, в командной строке на сервере. creаtedb.exe -U postgres testbuh1, например.
Потом pg_restore.exe -U postgres -d testbuh1 имя_архива. |
|||
14
Sergio-ps
18.09.12
✎
13:55
|
создал пустую базу, почему то опять ругается на существующие элементы. и в самом конце вот что выдал:
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
Sergio-ps
18.09.12
✎
14:06
|
если только попробовать загрузить сначала в базу дтшник старый, а потом попробовать через постгрес восстановить только данные?
|
|||
16
BigHarry
18.09.12
✎
15:20
|
"COPY failed: ERROR: out of memory" - проходили, вылечили только загрузкой дампа в постгри, установленный на линуксе, на виндовый постгря дамп упорно не хотел заливаться, вылезала "out of memory", никакие манипуляции с конфигом не помогали.
|
|||
17
BigHarry
18.09.12
✎
15:22
|
А корень зла - бинарники, хранимые в БД, большие фотографии или pdf-ки...
|
|||
18
Sergio-ps
18.09.12
✎
15:56
|
Бухгалтерия предприятия. вроде нет файлов. если только документы.
|
|||
19
Sergio-ps
18.09.12
✎
15:58
|
а на виртуалке если поднять постгри, думаете поможет?
|
|||
20
Sergio-ps
18.09.12
✎
16:21
|
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
Sergio-ps
18.09.12
✎
16:21
|
и соответственно новых данных не появляется
|
|||
22
BigHarry
18.09.12
✎
16:30
|
(19) Я на виртуалке не стал развертывать, ибо винда и железо было только 32 разрядное, просто на какой-то ближайшей рабочей станции установил линукс и слона.
Не знаю, может вам имеет смысл попробовать установить 64-битный постгри и там развернуть архив, если, канечно, есть где-то такая сборка с патчами 1С под винду... |
|||
23
alxbzm
18.09.12
✎
16:46
|
Я бы посоветовал взять 9-й постгри и попробовать на нем (в том числе и утилиты pg_dump / pg_restore соответствующих версий)... Я тут неоднократно писал про чудеса 8.4.x. У меня сейчас крутится 9.1.2 от 1С - вроде полет нормальный - и с бэкапом, и с восстановлением.
|
|||
24
Sergio-ps
18.09.12
✎
17:41
|
поставил 9,1,2 постгри, пытаюсь туда восстановить. посмотрим
|
|||
25
Sergio-ps
18.09.12
✎
18:41
|
не помогло 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
BigHarry
18.09.12
✎
19:33
|
Сильно большой у вас дамп?
|
|||
27
глазковыколупыватель
18.09.12
✎
20:15
|
+ (26) Давай дамп, выкладывай куда-нить.
|
|||
28
alxbzm
18.09.12
✎
22:27
|
Не хочу показаться занудой, но вместо анализа дампа я бы сделал следующее:
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
ansh15
18.09.12
✎
23:05
|
(22) >>Не знаю, может вам имеет смысл попробовать установить 64-битный постгри и там развернуть архив, если, канечно, есть где-то такая сборка с патчами 1С под винду...
Есть. На пользовательском сайте 1С. |
|||
30
Sergio-ps
19.09.12
✎
01:16
|
Выгрузить базу в dt я конечно могу, но бухгалтерам вот приспичило восстановить от 1го августа. че то они там удалили потом нечаянно. поэтому и мучаюсь с этим дампом, т.к. нету других копий за те числа.
64 юитный постгри.. попробую. Кстати заметил, когда восстанавливаю в базу созданную через пгАдмин или Средствами 1с, то вылазиют ошибки про существующие таблицы и тд., а когда создаю базу сreаtedb.exe -U postgres названиебазы, и восстанавливаю pg_restore.exe -U postgres -d названиебазы имя_архива, то потом вываливается out of memory |
|||
31
Sergio-ps
19.09.12
✎
01:18
|
дамп размером 600 метров, размер азы в папке постгри 7 гигов.
|
|||
32
zzhiraf
19.09.12
✎
09:55
|
(29) А можно ссылочку? И еще вопрос как перенести данные с MS SQL?
|
|||
33
ansh15
19.09.12
✎
10:38
|
(32) Пожалуйста. http://users.v8.1c.ru/version.jsp?id=AddCompPostgre&ver=9.1.2-1.1C
Если есть доступ, конечно. Перенос тоже просто, через dt файл. |
|||
34
ansh15
19.09.12
✎
10:49
|
(30) Когда база создается через консоль администрирования, в ней создаются таблицы, типы данных и т.д.
Поэтому при восстановлении и появляются ошибки о существующих таблицах. Попробуй PostgreSQL x64, может поможет с out of memory. |
|||
35
ansh15
19.09.12
✎
10:51
|
http://archives.postgresql.org/pgsql-ru-general/2010-05/msg00000.php
Ну да, может помочь. |
|||
36
ansh15
19.09.12
✎
11:03
|
(30) http://www.sql.ru/forum/actualthread.aspx?tid=594580
Пишут, что можно поварьировать maintenance_work_mem. |
|||
37
zzhiraf
19.09.12
✎
11:55
|
(33) Спасибо. Нет доступа(
|
|||
38
Sergio-ps
19.09.12
✎
12:47
|
maintenance_work_mem стоит по умолчанию. Текущее значение 16384. наверно в мегабайтах. хотя оперативки всего 8 гигов. попробую поменять на меньшее значение)
докачаю - выложу куда нибудь сборку постгреса |
|||
39
Sergio-ps
19.09.12
✎
13:03
|
<a href="#37" style="text-decoration:none;" class="interlink" rel="#37">37</a>
Постгрес 9.1.2: 64битный для винды: [url=http://narod.ru/disk/61234027001.8c27246a091394ced4c3d3f3c92cd81c/postgresql-9_1_2-1_1Cx64.zip.html]postgresql-9_1_2-1_1Cx64.zip.html[/url] x86&x64 для linux: [url=http://narod.ru/disk/61234366001.eb2d126973154659c37e6c704cc326ab/postgresql_9_1_2_rpm_x86_64_tar.gz.html]postgresql_9_1_2_rpm_x86_64_tar.gz[/url] |
|||
40
Sergio-ps
19.09.12
✎
13:06
|
||||
41
zzhiraf
19.09.12
✎
13:14
|
(40) Спасибо!
|
|||
42
ansh15
19.09.12
✎
13:45
|
(38) Параметры autovacuum в PostgreSQL - проясните, пожалуйста, ситуацию
Куда ж столько, если в мегабайтах. |
|||
43
zzhiraf
19.09.12
✎
14:09
|
(42) а постгрес еще надо настраивать? есть ли готовые файлы с оптимальными настройками?)
|
|||
44
ansh15
19.09.12
✎
14:29
|
(43) В зависимости от ваших конфигураций, размера баз и объема памяти сервера.
Поищите по форуму, были темы по настройке postgresql.conf. В Интернете тоже много найдется. На сайте Гилева, например. |
|||
45
zzhiraf
19.09.12
✎
14:37
|
(44) Нашел сайт Гилева, почитаю, спасибо.
|
|||
46
ansh15
19.09.12
✎
14:51
|
(45) Вот еще гляньте v8: Производительность сервера 1с
|
|||
47
zzhiraf
19.09.12
✎
15:43
|
(46) ага, спасибо!
|
|||
48
Sergio-ps
19.09.12
✎
16:25
|
в продолжение темы про восстановление, на том же сервере есть еще одна база гига на 2 поменьше, бэкапится теми же командами, при восстановлении так же куча ошибок про существующие объекты, возвращает код 1, но в итоге после восстановления она работает.
Пока убедил бухгалтеров что нету копии за август, но найду свободный комп и попробую поднять постгрес на линуксе |
|||
49
DGorgoN
19.09.12
✎
16:33
|
(48) Виртуалку поставь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |