Добрый день. Кратко ситуация:
Была 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 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-файла). Загляните внутрь и посмотрите что там на самом деле. Заодно и директивы которые могут менять кодировку.