перенос базы из Linux системы в windows систему

Добрый день. Кратко ситуация:
Была 1 машина с win2008r2, на ней работает postgres9.02 , сервер 1с 8.2, клиенты 1с в терминальных сессиях. база порядка 20гВ. Хоть и характеристики сервера не самые плохие но что то жутко тормозит при работе в 1с , и регулярно не предсказуемо подвисает. Проведение документов за месяц вообще не успевает произойти за ночь, а в рабочее время и не пытаемся запускать. Для выявления причин проблемы , ради эксперимента , на машинке которая не плохая, но все ж конечно не дотягивает до первого основного сервера по мощности. Мною установлен SUSE open 12.1 и Postgres 9.02. Таким образом там подняли базу 1с. А именно средствами 1с выгрузили в "дт" и в ту базу загрузили. таким образом получилась та же схема что и ранее , только к самим базам 1с сервер обращается к машине linux. Результат порадовал, работать стало все быстрее , зависания прекратились. Определились что как минимум часть проблемы в постгри на вин сервере. но это отдельная тема. Посколько с linux общаюсь давно то быстренько настроил резервное копирование и реиндексацию средствами psql. pg_dump b pg_restore работают в пределах машины linux замечательно. а вот как восстановить базу на win машине?. Уточняю вопрос:
Как правильно выгрузить на linux машине с помощью pg_dump ,базу , так чтоб она загрузилась pg_restore на windows (2008r2) машине???
попытка сделать это также как в linux - не увенчалась успехом. вываливает кучу ошибок явно связаных с кодировкой . Подскажите такое восстановление вообще возможно и если да то как именно это правильно делать , а потом уж попробую разобратся в ошибках..
Спасибо, жду помощи.1

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

День добрый, ну так

Изображение Игорь

День добрый, ну так совместите кодировки.

Спасибо. но уточните...

Теоретически понятно что как то ему нужно прописать кодировку. вот вопрос как это практически?
В postgri.conf на linux есть записи:
lc_messages = 'ru_RU.UTF-8' # locale for system error message
lc_monetary = 'ru_RU.UTF-8' # locale for monetary formatting
lc_numeric = 'ru_RU.UTF-8' # locale for number formatting
lc_time = 'ru_RU.UTF-8'
А на win2008:
lc_messages = 'Russian_Russia' # locale for system error message
lc_monetary = 'Russian_Russia' # locale for monetary formatting
lc_numeric = 'Russian_Russia' # locale for number formatting
lc_time = 'Russian_Russia'
При этом когда в psql даю запрос \l (показать базы) то в первом столбце где указана кодировка и там и там UTF-8 , а вот отличия во 2 и 3 столбце. в свойствах базы из pgadmina отличия только в сопоставление и тип символа. Кодировка в обоих случаях UTF8.
Как это сделать на практике ... По сколько в принципе не знаю правильного пути... толи дамп нужно делать с указанием кодировки, или ресторе как то показать кодировку....
Пожалуйста немножко расшифруйте.
Зарание Спасибо.
P/S забыл сказать что настройки pоstgre на windows поменять не могу (не имею права, и там работают еще другие базы) , на тестовой машине с виндоцс7 попытался заменить в conf "Russian_Russia" на "Ru-ru.UTF8' - постгри не запускается вообще, ну наверно и не должен. а на линуrc машине в локале нет такого как Russian_Russia.
Хотя странно база и там и там на UTF8 чего ему еще надо...

А может всё проще

А может всё проще получится?
У pg_dump вообще-то есть ключик

-E encoding, --encoding=encoding
           Create the dump in the specified character set encoding. By default, the dump is created in the database encoding. (Another way to get  the same result is to set the PGCLIENTENCODING  environment variable to the desired dump encoding.)

Да вы правы, я этот ключик уже нашел .

как раз тоже смотрел про команду дамп.... но вот не задача .
что прописать в ключике то ? в моем случае. Подозреваю что : -E Russian_russia
Сейчас буду пробывать.
знать бы точно что там можно указывать.

С таким параметром не проканало..

invalid client encoding "Russian_Russia" specified

В мануале есть раздел

В мануале есть раздел посвящённый локали:
http://postgresql.ru.net/manual/locale.html
Есть ещё и материал по кодировкам. Там есть перечень поддерживыемых. Одну из них я полагаю:
http://postgresql.ru.net/manual/multibyte.html

Посмотрел я разделы

Признаюсь честно мало чего понял. но все же по крайней мере какой параметр в -E должен быть win . Но эксперимент потерпел неудачу pg_dump выдал ошибку, (не приведу полный код, но явно с тем что UTF8 более win1251 ) Но и в принципе чтj то мне подсказывает что не надо менять кодировку, так как и linux и winows - базы в UTF8.
Скажите пожалуйста вообще это возможно? (то что нужно мне сделать) или я бьюсь даже не в закрытую дверь, а в нарисованную на бетонной стене.

Это вполне возможно. А

Это вполне возможно. А кодировку проверить очень просто. Сделайте дамп в текстовом виде (виде .sql-файла). Загляните внутрь и посмотрите что там на самом деле. Заодно и директивы которые могут менять кодировку.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023