Установка Postgresql на Linux систему в качестве сервера базы данных

0. 12 12.08.13 10:57 Сейчас в теме
Хочу поделиться алгоритмом установки Postgresql 9.0.3-3.1C на OpenSuse 12.2 в качестве сервера базы данных 1С:Предприятие и оптимизицией под 8Гб ОЗУ и более менее быстрого процессора.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. zelevova 14.08.13 16:51 Сейчас в теме
Работает ли это в продакшане? Сколько пользователей? Какие конфигурации?
Нет ли проблем с транзакциями?
2. xmolex 12 14.08.13 17:48 Сейчас в теме
Да, работает в трех организациях, включая мою.
Самая большая организация: 30 одновременных пользователей, УПП (4 организации), база >200Гб, работают в режиме 24/7. Аптайм сервера базы данных больше года. Проблем с блокировками нет.
3. Dimka74 15.08.13 22:34 Сейчас в теме
1. А сервер 1С Предприятия на какой ОСи работает?
2. Почему ПостГрес, DB2 не пробовали?
3. Резервное копирование БД как делаете?
4. xmolex 12 16.08.13 09:15 Сейчас в теме
(3) Dimka74,
1) 1С:Предприятие работает в основном на windows 2003 server.
2) С DB2 у меня нет стольких годов дружбы как с PostgreSQL, поэтому выбрана она.
3) Бэкапирование делается как средствами 1с по ночам:
C:\\Program Files (x86)\\1cv82\\common\\1cestart.exe" CONFIG /S $BASE_IP\\$BASE_NAME /DisableStartupMessages /DumpIB "$DIR_TEMP/base.dt" /N "$BASE_USER" /P "$BASE_PASS" /OUT "$LOG" -NoTruncate

Так и с помощью журналирования PostgreSQL каждые два часа (режим 24/7).
archive_mode = on
5. Dimka74 16.08.13 10:31 Сейчас в теме
Какой канал связи используете между windows 2003 server и OpenSuse 12.2. Трафик не считали?
8. xmolex 12 16.08.13 11:07 Сейчас в теме
(5) Dimka74,
Трафик не считали, канал используется 1Gb/s full duplex (это можно в конфиге в статье заметить).
Вообщем-то, канал не забивается. Даже при заливке бэкапа, при "fsync = off", канал используется на 25%.

(6) Dimka74,
Нет. MS SQL я только устанавливал, администрированием никогда не занимался.
Я понимаю, что 1с сильно дружит с MS SQL, но я считаю, что и на PostgreSQL под Unix можно добиться не меньшей производительности, хотябы просто по тому, что MS SQL работает под windows, а у нее, как мне кажется, странные методы работы с памятью, что для реляционной базы данных критично. Только лишь один Device Polling в нагруженной системе, может повысить производительность.

(7) mirco,
Это спорное утверждение. В любом случае я не говорю, что мое решение абсолютно правильное, хотя у меня есть доводы в пользу этого. Это частный вариант, который работает в продакшене 24/7. Вообщем, это просто пошаговая инструкция для определенной ситуации.
14. mirco 74 16.08.13 19:14 Сейчас в теме
(8) А вот возьмите тест гилева и покажите результат.
"В любом случае я не говорю, что мое решение абсолютно правильное" - мудрость приходит со временем. Если знаете язык - читайте официальную документацию и best practice на форумах PostgreSQL.
15. xmolex 12 17.08.13 10:33 Сейчас в теме
(14) mirco,
Если взять это предприятие о котором я говорю, которое 24/7, то работаем мы с ним уже три года. Это производство хлебной продукции. Тоесть постоянный прием заявок, формирование маршрутов, сопровождающая документация, бухгалтерия и т.д. Нужно отметить, что состоит производство из 4х организаций, тоесть одни пекут, другие доставляют, третие продают, четвертые управляют. И все это в одной базе.
Началось все от локальной файловой базы в 30Гб (терминальный доступ), потом была клиент-серверная система с postgresql на этом же сервере уже с 50Гб базы (терминальный доступ), потом отдельный выделенный сервер под sql базу (все также терминальный доступ) и в конце "fsync = off", который работает уже больше года.
Каждая такая модификация принципа работы системы возникала из-за жалоб пользователей касаемых производительности, это и не удивительно, база растет быстрыми темпами. Все это время конфигурация тестировалась с помощью ЦУП (центр управления производительностью - пакет от 1с), удавалось отслеживать слабые места, но нагрузка всеравно с течением времени возрастала. Сейчас одни только индексы таблиц регистров в базе занимают десятки гигабайт.
А вы говорите, что лучше postgres обратно вернуть на машину где сервер 1с предприятия. Для нас это пройденный этап и ушли мы от него, т.к. он показал свою несостоятельность в нашем случае.
Тесты это конечно хорошо. Но где гарантия, что они создают нагрузку рабочей системы? Проведите тесты от одного пользователя, от 30, от 100 и от 1000 и вы получите противоречивые результаты. Один пользователь вам покажет наилучшее быстродействие в файловой базе на одной машине. 1000 - только в sql'ном варианте на разных машинах.
Расскажите о себе, какой объем вашей базы, что за конфигурация, сколько одновременно пользователей 1с работают у вас. Может и правда все мои пройденные этапы ничто по сравнению с вашими и я нахожусь в самом начале вашего пути.
16. ansh15 18.08.13 12:25 Сейчас в теме
(15)
Так как обсуждение публикации плавно перетекло в дискуссию о нагрузке и производительности,
хочу спросить - вы считаете, что что одного четырехъядерного процессора не первой свежести и восьми ГБ памяти хватает для комфортной работы 30-и пользователей с >200 ГБ базой данных? В том, что на этот сервер не надо ставить еще и сервер приложений 1С, вы, безусловно, правы.
18. xmolex 12 19.08.13 09:41 Сейчас в теме
(16) ansh15,
Все зависит от особенностей использования системы. У нас очень часто правятся накладные задним числом, тоесть в день происходит тысячи перепроведений документов. Пока такой сервер справляется, но думаю, что при таком же росте базы через год уже будут тормоза.
Но вообще, когда у вас база сильно превышает оперативку, вам стоит очень серьезно подойти к дисковой подсистеме. У нас стоит рейд 0 из двух sas (2.0) дисков.

(17) mirco,
Я бы не сказал, что я обижаюсь. Я просто не понимаю вас, но способен принимать критику от более опытных товарищей. Я работаю с postgresql уже семь лет (вначале была разработка интернет-проектов). И всегда я видел, что postgresql требователен к скорости диска и оперативке. Об этом и пишут и сама эксплуатация это показывает. Возьмем сервер 1с:предприятие. Ему также нужна память. Приплюсуем сюда рекомендацию запускать более одного рабочего процесса и вот у нас уже съедается два гига оперативы, приплюсуем операционку (которая в идеале расчитывает на два гига оперативы, т.к. без ключа /3Gb), приплюсуем терминальные сессии с 30 пользователями, которые запустили 1с и который с легкостью может скушать 512Mb, это еще гигов под 14. И что получается? А получается, что по памяти система и так загружена по самое нихочу (не забудем про то, что win очень активно работает с swap файлом, хоть памяти и достаточно), а вы решаете еще вклинить в нее приложение очень требовательное к памяти, да еще и с базой >200Гб. У вас одних прерываний будет столько, что вы получите неслабый простой. Какие настройки здесь спасут? Ни один тюнинг не сможет разгрузить систему.
Конечно, если пользователи не работают, а чай пьют в 1с, то конечно система будет справляться, но если хоть один человек начнет активно данные перепроводить, вашей системе придется не слабо.
Если вы не согласны с моими словами, то прошу вас быть более аргументированнее.
17. mirco 74 19.08.13 00:23 Сейчас в теме
(15) люди любят обижаться, если в их решениях сомневаются )))))))
6. Dimka74 16.08.13 10:35 Сейчас в теме
Доводилось ли работать с MS SQL, если да, то велика ли разница в работе с постгресом, дело в том, что сами сидим пока на MSSQL на express (бесплатной) версии, но база растет и видно в длижайшем будущем придется перебираться либо на DB2, либо на Postgres.
7. mirco 74 16.08.13 10:43 Сейчас в теме
А вот fsync = off не надо делать !!! В случае чего ИБП вам не поможет - будете из архива базу восстанавливать.И разносить 1с и postgresql на разные машины тоже не надо.
Если уж хочется повысить скорость работы- вдумчиво прочитайте документацию к postgresql.
9. Dimka74 16.08.13 11:40 Сейчас в теме
С какими проблемами в обслуживании Постгреса чаще всего приходится сталкиваться?
10. xmolex 12 16.08.13 11:45 Сейчас в теме
(9) Dimka74,
Честно говоря даже не знаю, что ответить на этот вопрос.
Сложно подобрать значения, чтобы PostgreSQL использовал систему на 100%, а проблем в обслуживании я не знаю. Аптайм сервера больше года в продакшене 24/7 говорит сам за себя.
11. Dimka74 16.08.13 12:16 Сейчас в теме
Год аптайма - это не плохо. Был на учебе по Администрированию баз 1С, так преподаватель говорил, мол Постгрес для маленьких компаний до 30 юзверей, потом МС Скуль с ДБ2, а уж потом Оракле. Учитывая ваш опыт, то границы пользования постгреса можно увеличить.
Как регулярно производите обновление самого Постгреса? Как только появляется обновление, или вообще не делаете ("Один раз настроили и забыли"-так говорил препод про машины под управлением ОС Linux).
12. xmolex 12 16.08.13 12:57 Сейчас в теме
(11) Dimka74,
Обновлял 8.3.
9 версию еще не трогал.
Обновления в postgresql - это в основном дополнительные инструменты и ошибки повышения привилегий.
Дополнительные инструменты не нужны, ошибки повышения привилегий не страшны.
Если все работает без ошибок, то зачем трогать?
13. Dimka74 16.08.13 13:23 Сейчас в теме
Спасибо за ответы, статья полезная.
19. 4ur 19.08.13 18:36 Сейчас в теме
Спасибо за статью. Возможно эта информация позволит сэкономить денег фирме, т.к. принципиально надо все лицензионное, хотя не уверен, что программистам и админам от этого будет легче. Может и у себя дома решусь перейти на Linux, хотя в 8.3 еще хватает багов, но надо попробовать...
20. sirm 5 31.03.14 19:30 Сейчас в теме
У меня клиенты работают уже два года: 20 пользователей Centos 5.9+Postgresql 9.1.2 (1С)+1С Сервер x86_64 (8.2).
Пока все отлично. Слетало только из-за проблем в сети и ключи HASP бились между собой.
Единственная проблема, которая осталась (1С пока не смогли что-то сказать понятное) это формирование в 1С-Бухгалтерии 2.0 расчета себестоимости. Что вешает не понятно. 1С утверждают, что это проблема Postgresql. Может кто сталкивался? Как решили эту проблему?
21. ansh15 01.04.14 12:16 Сейчас в теме
(20) sirm, была такая проблема, с PostgreSQL 9.0.3 http://downloads.v8.1c.ru/content//Platform/8_2_19_90/Err_Other.htm
Может у вас сбор статистики не выполняется регулярно, попробуйте vacuum analyze выполнить на проблемной базе.
Тут https://wiki.postgresql.org/wiki/%D0%A7%D0%B0%D1%81%D1%82%D0%BE_%D0%97%D0%B0%D0%B4%D­0%B0%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5_%D0%92%D0%BE%D0%BF%­D1%80%D0%BE%D1%81%D1%8B можно почитать немного подробнее про статистику. Ну и обновиться до 9.1.9/9.2.4 имеет смысл.
23. sirm 5 01.04.14 13:34 Сейчас в теме
(21) ansh15,
Про решение текущих проблем у 1С они уже и не помню с какого релиза пишут, что это решено, но у меня воз и ныне там.
1С сервер обновляем регулярно, переходя на новый релиз. Причем последний раз снес начисто все и 1С Сервер и Postgersql и поставил заново (1С-овцы порекомендовали). Проблема осталась.
Vacuum analyze выполнял...
28. ansh15 01.04.14 16:02 Сейчас в теме
(23) sirm, http://training1c.org.ua/materialy.htm?a=reshenie_problemy_s_zavisaniem_postgresql
тут еще можно посмотреть(если не смотрели уже), поэкспериментировать с различными настройкам оптимизатора.
Хорошо бы выявить запрос(ы) SQL, на которых виснет и на них менять параметры оптимизатора, в psql, посредством explain analyze
Понятно, что нужно чтобы работало быстро и без проблем. а в PostgrеSQL совсем без затрат не получается, к сожалению.
22. xmolex 12 01.04.14 12:40 Сейчас в теме
(20) sirm, если проблема с postgresql, то лезь в его логи и ищи там ошибки. Если найдешь ругань при запуске расчета себестоимости, то значит проблема в postgresql. В зависимости от типа ругани и следует выбирать направление действий. А вот, если ругани нет, то стоит обратить внимание на сервер 1с предприятие: проверить правильность данных в конфигурации, обнулить рабочий каталог сервера 1с предприятие и т.д.
24. sirm 5 01.04.14 13:36 Сейчас в теме
(22)
Вроде логи смотрел. Особых ошибок не увидел, только когда начинали отваливаться клиенты, но эти ошибки вылезают и при простом отключении от базы по причине обрыва сети и т.д.
"...проверить правильность данных в конфигурации..." что имеете ввиду?
25. xmolex 12 01.04.14 13:56 Сейчас в теме
(24) sirm, тестирование и исправление.
Что значит "Особых ошибок не увидел", они либо есть, либо их нет.
В конфиге log_min_error_statement = error стоит, может не ведутся логи?
26. sirm 5 01.04.14 13:59 Сейчас в теме
Как к клиентам попаду посмотрю. Сейчас логи отключены.
На что стоит обратить внимание, т.к. попадаю я к клиентам или в выходные или поздно вечером.
27. xmolex 12 01.04.14 14:11 Сейчас в теме
(26) sirm, на различные ошибки конечно. Если в логах нет никаких ошибок и внеплановых вылетов, значит проблема не в postgresql и копать нужно в сторону сервера 1с, конфигурации и толстого клиента.
29. sirm 5 23.10.14 13:33 Сейчас в теме
(27)
1C вот разродилось. После длительной переписки и высылания баз и различных дампов и логов прислали ответ:

Здравствуйте!

1. ОТВЕТ отдела разработки программ:

Проблема не в PostgreSQL.
При использовании MS SQL Server наблюдается аналогичная проблема.

В отчете СправкаРасчетКалькуляцияСебестоимости используется слишком сложный запрос,
который плохо отрабатывается сервером СУБД.
Нужно его упростить.

2. Проблема переадресована к разработчикам конфигурации Бухгалтерия предприятия.
Ответ разработчика будет выслан Вам дополнительно.

Разработчики конфигурации спустя некоторое время прислали:

Здравствуйте!

Приносим извинения за очень большую задержку с ответом.
Объем писем, поступающих в отдел технической поддержки, очень большой.

Направляем ответ отдела разработки конфигурации Бухгалтерия предприятия:

1. В редакции 2.0 конфигурации Бухгалтерия предприятия решать проблему не планируется.
Рекомендуем переходить на редакцию 3.0 конфигурации Бухгалтерия предприятия.

2. Мы провели тест:

- Обновили полученную от Вас базу до редакции 3.0

- На PostgreSQL Database Server версии 9.1.2-1
отчет "Калькуляция себестоимости" за 2013 год
сформировался меньше чем за 1 минуту.

Если честно я вздохнул с облегчением:)))
30. ZLENKO 23.10.14 13:49 Сейчас в теме
Оставьте свое сообщение
Вопросы с вознаграждением
Вакансии
Программист 1С
Санкт-Петербург
зарплата от 110 000 руб.
Полный день

Программист 1С
Москва
зарплата от 170 000 руб.
Полный день

Программист 1С (Казань)
Казань
зарплата до 130 000 руб.
Полный день

Программист 1С (Новосибирск)
Новосибирск
зарплата до 130 000 руб.
Полный день

Консультант-аналитик 1С
Москва
зарплата от 180 000 руб.
Полный день