Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Проблемы с дампом. / 14 сообщений из 14, страница 1 из 1
11.09.2008, 16:04
    #35534567
ignitor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с дампом.
Уважаемые!
Может кто сталкивался с проблемой?

Операционка Win Server 2003 Std SP2

"lc_collate";"Russian_Russia.20866"
"lc_ctype";"Russian_Russia.20866"
"lc_messages";"Russian_Russia.20866"
"lc_monetary";"Russian_Russia.20866"
"lc_numeric";"Russian_Russia.20866"
"lc_time";"Russian_Russia.20866"
"server_encoding";"UTF8"
"server_version";"8.2.4"
"server_version_num";"80204"


Заливаю в таблицу кучу строк

Код: plaintext
1.
2.
set client_encoding='WIN1251';
COPY docaddinfo from 'c:/docaddin.txt' WITH DELIMITER '|';

получаю

Код: plaintext
1.
Query returned successfully: 3752051 rows affected, 346058 ms execution time.

Потом делаю дамп таблицы

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
D:\PostgreSQL\bin\pg_dump.exe -i -h localhost -p 5432 -U postgres -F c -v -f "C:\daddi.backup" -t "\"public\".\"docaddinfo\"" data
pg_dump: reading schemas
pg_dump: reading user-defined functions
pg_dump: reading user-defined types
pg_dump: reading procedural languages
pg_dump: reading user-defined aggregate functions
pg_dump: reading user-defined operators
pg_dump: reading user-defined operator classes
pg_dump: reading user-defined conversions
pg_dump: reading user-defined tables
pg_dump: reading table inheritance information
pg_dump: reading rewrite rules
pg_dump: reading type casts
pg_dump: finding inheritance relationships
pg_dump: reading column info for interesting tables
pg_dump: finding the columns and types of table "docaddinfo"
pg_dump: flagging inherited columns in subtables
pg_dump: reading indexes
pg_dump: reading indexes for table "docaddinfo"
pg_dump: reading constraints
pg_dump: reading triggers
pg_dump: reading dependency data
pg_dump: saving encoding = UTF8
pg_dump: saving standard_conforming_strings = off
pg_dump: dumping contents of table docaddinfo

Process returned exit code 0.

затем тут же делаю восстановление таблицы и получаю:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
D:\PostgreSQL\bin\pg_restore.exe -i -h localhost -p 5432 -U postgres -d data -a -t docaddinfo -v "C:\daddi.backup"
pg_restore: connecting to database for restore
pg_restore: restoring data for table "docaddinfo"
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 2955; 0 9489281 TABLE DATA docaddinfo postgres
pg_restore: [archiver (db)] COPY failed: ERROR:  invalid byte sequence for encoding "UTF8": 0x80
HINT:  This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".
CONTEXT:  COPY docaddinfo, line 4627
WARNING: errors ignored on restore: 1

Process returned exit code 1.

Вопрос в следующем - хочу дампом перетащить базу с 8.2.4 на 8.3.3. Попробовал - на три таблицы выругалась примерно так же. Можно обойти конечно через загрузку отдельных таблиц через текстовик, но как то очень не хочется. Хочется разобраться в причине такого поведения дампа. Буду признателен за любые советы.
...
Рейтинг: 0 / 0
11.09.2008, 17:07
    #35534809
ignitor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с дампом.
Это действительно важно, дамп у меня делается по ночам ежедневно. И раньше я думал что соломка постелена - если что расшибусь не сильно. Теперь не уверен.
...
Рейтинг: 0 / 0
12.09.2008, 09:14
    #35535574
ignitor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с дампом.
Попробовал pg_dumpall - результат тот же. На те же три таблицы ругается при восстановлении через psql. Что делать? Посоветуйте что-нибудь! Могу текстовик выслать со структурой таблицы, если кому интересно.
...
Рейтинг: 0 / 0
12.09.2008, 11:38
    #35535985
неадмин
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с дампом.
мб добавить ключ -E win1251 к пг_дампу?
...
Рейтинг: 0 / 0
12.09.2008, 12:13
    #35536109
ignitor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с дампом.
В общем - разобрался. Ситуация такая - когда я заливаю текстовик (кстати в WIN1251) в нем встречается не экранированная \ и следом какието символы. Т.о. в таблицу оно заливается без звука (на сервере кодировка UTF8), а вот уже выгрузить в кодировку WIN1251 не получается. Аналогичная проблема и при загрузке. Так что надо было тщательнее следить за тем что попадает в таблицы.
Ситуация стала очевидной после

pg_dump.exe -E WIN1251 -t docaddinfo -Fp -U postgres namebase
...
Рейтинг: 0 / 0
12.09.2008, 12:14
    #35536111
ignitor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с дампом.
Додумался сам - неадмину спасибо.
...
Рейтинг: 0 / 0
12.09.2008, 16:12
    #35536836
ignitor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с дампом.
В продолжение темы.

Рано я радовался. С одной таблицей все нормально. Следующая ругается на другой символ:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
        0       10007403341     1048    2007-10-08      1.0000000000    1       1121    \N      \N
\.


pg_dump: SQL command failed
pg_dump: Error message from server: ERROR:  character 0xd789 of encoding "UTF8" has no equivalent in "WIN1251"
pg_dump: The command was: COPY retail.operpart (id, ptype, idaccanl, operdate, qty, qtync, idfund, idbatch, idopertype,
iddeal, iddealtrans, idinstrument, dateval, course, codoper, numdoc, note, note2) TO stdout;

В текстовике нашел те строчки, но криминала в них не вижу:

Код: plaintext
1.
2.
3.
10007459383|1|10006715973|2007-10-08|900000.0000000000|.0000000000|2|5000025|15000028|0|10007403341|1048|2007-10-08|1.0|1|1121|ххххххххххх хххххххххххх хххххххххххх ВЫДАЧА КРЕДИТА ПО КД N 7-436-51/1 ОТ 01/ 10/2007. ДЛЯ ЗАЧИСЛЕНИЯ НА Л/СЧ 42301810|\N
10007459383|-1|10022585330|2007-10-08|900000.0000000000|.0000000000|2|5000025|15000028|0|10007403341|1048|2007-10-08|1.0|1|1121|\N|\N
10007459385|1|10006715973|2007-10-08|963.1300000000|.0000000000|2|5000025|15000028|0|10007403343|1048|2007-10-08|1.0|1|593|(\\0702\\075-01-01\\4210100\\327\\211\\011-11- 02=963.13 л/с02092822300) Уд с з/п сент. возм.ущ.пост2/13721/414/11/2007 20.03.07|\N

Если кто может подсказать - потычте носом, а?
...
Рейтинг: 0 / 0
17.10.2008, 16:51
    #35601516
ignitor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с дампом.
Еще одна проблема.
При восстановлении дампа получаю ошибку

Код: plaintext
1.
2.
3.
4.
5.
pg_restore: создание INDEX op_idx_1
pg_restore: [архиватор (db)] Ошибка из записи оглавления 4190; 1259 9852626 INDEX op_idx_1 postgres
pg_restore: [архиватор (db)] could not execute query: ERROR:  не хватает памяти
ПОДРОБНО:  Ошибка при запросе размера 268435456.
    Command was: CREATE INDEX op_idx_1 ON operpart USING btree (ptype, idaccanl);

вот кусок файла конфигурации:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
#------------------------------------------------------------------------------
# RESOURCE USAGE (except WAL)
#------------------------------------------------------------------------------
# - Memory -
shared_buffers = 1GB			# min 128kB or max_connections*16kB
work_mem = 300MB				# min 64kB
max_fsm_pages =  204800 			# min max_fsm_relations* 16 ,  6  bytes each

Всего оперативки 4GB
Что мне попробовать поменять в конфигурации?
Спасибо.
...
Рейтинг: 0 / 0
17.10.2008, 23:46
    #35602042
Степан H.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с дампом.
ignitor(на сервере кодировка UTF8), а вот уже выгрузить в кодировку WIN1251 не получается

Вопрос такого плана: для чего вам нужнен дамп именно в WIN1251? Возможно просто держать его в родной кодировке базы?

У меня следующий вариант:
база UTF-8
COPY делает отдельный юзер terminal (созданый специально для нужд WINDOWS) с прописаной локалью WIN1251
alter role terminal set client_encoding to 'WINDOWS-1251'

дамп делает юзер pgsql (который имеет родную локаль базы UTF-8)
su -l pgsql -c "pg_dump -F c -v -f ${PGDUMP}/dbkernel_${REALDATE}.dump -n public mybase";

Итого вопросов с restore еще не возникало ))
...
Рейтинг: 0 / 0
18.10.2008, 00:12
    #35602066
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с дампом.
Russian_Russia.20866 - это koi8-r.
сервер utf8, база данных с неизвестно какой кодировкой, а локаль настроена на koi8-r. круто :)


--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
21.10.2008, 14:04
    #35606585
ignitor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с дампом.
Каюсь - с кодировками не разобрался сначала. Но сейчас у меня проблема в другом -
Код: plaintext
1.
2.
3.
4.
5.
pg_restore: создание INDEX op_idx_1
pg_restore: [архиватор (db)] Ошибка из записи оглавления 4190; 1259 9852626 INDEX op_idx_1 postgres
pg_restore: [архиватор (db)] could not execute query: 
ERROR:  не хватает памяти
ПОДРОБНО:  Ошибка при запросе размера 268435456.    
Command was: CREATE INDEX op_idx_1 ON operpart USING btree (ptype, idaccanl);

На диске места ~30GB после восстановления базы. В чем дело?
...
Рейтинг: 0 / 0
21.10.2008, 14:24
    #35606659
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с дампом.
Код: plaintext
show maintenance_work_mem;
сколько ? если уменьшить ?


--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
21.10.2008, 14:50
    #35606744
ignitor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с дампом.
Код: plaintext
1.
2.
show maintenance_work_mem;
700MB
А до скольки уменьшить? На старом сервере было 512MB, но там оперативки в 2 раза меньше.
...
Рейтинг: 0 / 0
21.10.2008, 14:59
    #35606780
ignitor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с дампом.
Спасибо Ёш! С 512MB
Код: plaintext
1.
Запрос успешно завершён без результата возврата за 147935 мс.
Спасибо всем кто принял участие в обсуждении.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Проблемы с дампом. / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]