Какой postgresql лучше для 1с

Обновлено: 04.07.2024

Хотя интернет уже переполнен статьями о «правильной» настройке связки PostgreSQL и 1C 8.2, для подводных камней всегда остается место. При сравнении производительности СУБД PostgreSQL на разных ОС, показатели различаются в разы. Самая большую обиду принесла любимая Ubuntu (человечность). После долгих дней и ночей проведенных за консолью этой ОС, она разочаровала окончательно.

Тормоза PostgreSQL в Ubuntu Server. Что с ними делать? Сколько раз можно наступать на грабли?

Итак, что имеем: игрушку IBM x3650 M4 c двумя процессорами, 32 GB оперативки, массив RAID 10 из 6-и дисков общим объемом

900GB. Являясь сторонником опенсорсного ПО и немалый опыт работы с системами а-ля Debian и производные, решил выбрать в качестве операционки самую «человечную» из них — Ubuntu Server x64. Как потом оказалось — это была первая моя ошибка.

С СУБД знаком не понаслышке но, имею пока еще малый опыт работы именно на Linux платформу. Поэтому, если где-то ошибся, прошу пинать строго советами. Не один я такой все-таки.

Наконец 1С выпустила свежую сборку PostgreSQL под Debian/Ubuntu которая работает почти «из коробки».

Процес установки упростился до дюжины консольных комманд.

1. Увеличиваем максимальный размер сегмента памяти до 8Гб. Для менее мощных машин устанавливают от 64Мб до половины объема оперативки.

2. Генерируем русскую локаль и задаем переменную среды LANG, именно с ней будет работать скрипт инициализации базы данных.

3.Устанавливаем необходимые зависимисти.

5. Установка пакетов:

backslash_quote = on escape_string_warning = off standart_conforming_strings = off
И закрываем с сохранением: Ctrl+x, Y

7. Перезапускаем сервис.

8.Меняем пароль для пользователя postgres – это тот пароль который мы будем задавать при создании базы данных.

9. Отключаем обновление для пакетов 1с-овского PostgreSQL.

10. Перезапускаем службу и проверяем, запустился ли PostgreSQL:

Ответ должен быть примерно таким:

Здесь установка PostgreSQL закончена можно считать законченной.

При сравнении скорости работы связки 1C 8.2.16 + PostgeSQL 9.1.2 были обнаружены жуткие тормоза под Ubuntu Server 12.04. Тест от Гилёва «TPC_1С_GILV» в Ubuntu в среднем показал 10-14 баллов, что обусловлено тестовой базой, которая не задействует управляемые блокировки. Для сравнения, на менее мощную систему с четырехядерным процессором i5, 8GB оперативки, под Win 2k8 и IBM DB2 тот же тест показал 52 попугая. Проведение документов за месяц занимало в трое меньше времени на младшую машину. Аналогичные результаты получены и с PostgreSQL. Некоторые коллеги отзываются о результатах на CentOS при аналогичных параметрах. Так на CentOS получают по тому же тесту 56-62 балла а на чистую Debian — от 54 балла. Во всех тестах использовались идентичные настройки PG с отключенным fsync. В Ubuntu проверялись ext4, в CentOS LVM+ext3.

На всех платоформах ничего не ставилось кроме PG и 1C. На Ubuntu проверялись несколько версий PG, от Etersoft, собранная вручную с патчами от 1С и сборка от 1С, под CentOS использовалась версия Etersoft.

Есть какие-то варианты улучшения производительности в Ubuntu?

Хотелось бы сделать голосовалку по выбору Linux-дистрибутива для установки 1C + PostgreSQL. Думаю лидер рейтинга будет CentOS, но мне Debian ближе к сердцу.

Хорошо бы поделиться в комментариях успешными опытами установки с результатами тестирования.

Я уже готовлю систему под CentOS. О результатах тестирования отпишусь в новой статье.

Подскажите пожалуйста, чем они отличаются и какой надо запускать?
На сайте 1С есть версия 10.5-6.1C, стоит ли ставить последнюю версию?

9.6.7 стоит у меня, полет нормальный, более новые версии не тестил. Но учитываю глючный интерфейс 9.6.7, возможно будет лучше попробывать последнюю версию. Так же тюнинг немного изменился, стоит учитывать. На 9.6.7 перешли чисто из-за того, что в начиная с этой версии запросы с множественным внутренним соединением стали отрабатыватся так же быстро как и MSSQL
(0) А вы точно уверены, что оно вам вообще надо? Может лучше по-старинке - MS SQL?
Если уж ставить сервер, то лучше, наверное ставить более свежие релизы. Быть может не 10.5, но и не древний 9.3.4.
(4) точно не ставь эту версию, там проблемы с некторыми запросами
(3) после версии 9.6.7 доволен как мамонт ))) Нехватает только что инструментов анализ запросов и плана запросов удобного, но это дело привычки
(0) если будешь качать соотв. этому релизу свежую платформу 1С , то ставь вот самый свежий постгрес и платформу.
(0) на юзерсе не последняя версия постгри. это последняя прошедшая аттестацию под нужды платформы 1с.
т.е. можно ее ставить достаточно смело.
(8)(9) я б не рубил так с гореча, может падать, бывало, не все релизы одинаково стабильны. Но мы будем рады, ели ты поюзаешь и дашь отзыв сообществу ))))
мы сначало тестим на одной из баз 3 месяца, потом потихоньку переводим все остальное
msi - это на винду ставить? У старых версий на винде были проблемы с обновлением статистики, выливающиеся в жуткие тормоза. Решено вроде только в последних версиях, после 9.6.
На линуксе можно и старую поставить, только зачем? )

(4) вот диск пришел из 1С, держу коробку в руках :)

попробую скачать
postgresql-10.5-6.1C-int.msi

(15) так там и платформа на диске будет старая. Ты посмотри, для какой программы нужна установка Платформы. Если это для БП 3, к примеру, то обязательно платформу обнови тоже. Соотв. и скл бери свежий.
(15) платформу и субд ставь с юзерса.
если там же найдешь свежий установщик конфы - тоже используй его. иначе сиди и обновляй.
версию платформы бери минимально совместимую к последней версии твоей конфы.
(17) хотя бы минимально совместимую. можно выше в пределах ревизии. 8.3.12.ххх или 8.3.13.ххх

Спасибо всем :), буду брать последний 10.5-6.1.

Подниму тему.
Сейчас работает связка
windows server 2008 r2 + postgresql 9.3.4 + 1С:Предприятие 8.3 (8.3.13.1690).

Подскажите пожалуйста, надо ли менять postgresql 9.3.4 на postgresql 10.5?
Если да, то как это делается, так как никогда postgresql не обновлял еще ни разу?

(20) на 10.5 есть проблемы 8.3.13.1644 и PosgreSQL: ошибка "variable not found in subplan target lists"
Получается лбио как советовали 9.6.7 либо 10.3.
Базы выгрузить из конфигуратора, удалить postgres, установить новый, загрузить базы.
Но был случай когда я не удалял постгрес, а просто сразу запустил новый инсталятор и чего то у меня после это не стартовал он, хорошо бэкап всей системы перед этим сделал, восстановил и все норм, поэтому тоже на всякий случай сделать образ всей системы с выключенными службами сервера постгреса и агнета 1с. И да на 10 версии постгреса вход в pgadmin последней версии через бразуер, какуто ошибку выдает, не запускается, разбираться не стал, поставил старый pgadmin 2.1 вроде работает.

И еще неплохо бы батник на каждую базу сделать и поставить на автозапуск по утрам. Например:

SET PGPASSWORD=test1
"C:\Program Files\PostgreSQL\9.6.5-4.1C\bin\psql.exe" --dbname unf_tr --host 127.0.0.1 --port 5432 --username postgres --command analyze

(22) то есть, обновление заключается в том, что делаем архив в старой версии, устанавливаем новую и в ней разворачиваем архив.

"Базы выгрузить из конфигуратора" - а как то можно сделать выгрузку сразу всех баз с помощью постгри?

Про бекап сразу всех баз кластера постгреса не слыхал. Возможно есть, надо читать документацию.

(24) "но если баз много " - да, я это и имел ввиду, если их много, то придется каждую выгружать..

но в целом понятно, значит

(25) Да, верно. Вот даже 1С пишет что после перехода на 10.3 и выше:

"Если переход на версию PostgreSQL 10.3 выполняется с помощью утилиты pg_upgrade, то рекомендуется выполнить переиндексацию таблиц базы данных для того, чтобы работа с буквой «ё» стала соответствовать правилам русского языка. Переиндексацию рекомендуется выполнять с помощью механизма тестирования и исправления конфигуратора, указав режим Реиндексация таблиц информационной базы.

В вашем случае тогда проще выполнить pg_upgrade, главное потестить на виртуалке хотя бы на одной базе как это работает.

Скачал с сайта 1С версию PostgreSQL, версия 10.3-3.1C.
Установил все по умолчанию.

При запуске pgAdmin 4 выдается ошибка
"the application server could not be contacted"

Делал, но не помогло
- запустить PgAdmin отмени администратора.
- добавьте путь к bin-папке Postgresql в переменные окружения.
Подскажите пожалуйста, что можно сделать, что бы запустить pgAdmin?

Или все таки ставить еще один pgAdmin4 и мириться с тем, что их будет два, как сказано в одной из веток форума?

При запуске pgAdmin 4 выдается ошибка
"the application server could not be contacted"

вхерачить туеву хучу бабла за мелкомягких и не уметь ему дать ума - это очень грамотный подход, ага.

Между прочим, если до сих пор жили без грамотного админа, то это просто означает, что уровень решаемых задач позволяет обходиться без особых знаний, что сиквела, что постгри.

И еще. Если за постгри денег платить не нужно - ну так поставьте его и поработайте ну хотя бы 1 день или 2 дня, если админ у вас все равно будет хоть какой-то.
Ответьте сами себе честно - адин у вас есть? А если есть, то дайте ему задание и посмотрите на результат. Уровень использования у вас один фиг не доберется до каких-то критичных событий.

Вот мне что нравится в такого рода обсуждениях = хз лет тому назад один кто-то накорябал о допилках для постгри, потому что в те самые годы и не было готовых настроек для него.

Теперь же, не взирая на то, что на самих дистрибах 1С выкладывается сборка постгри, которая жестко глючить не будет, а проблемы могут появиться только если система будет реально нагружена, ну даже не знаю. может после 200 или 250 пользователей будут проблемы, а может и не будет.
А на 50, на 70, на 100 пользователей проблем не наблюдается.

Но нет. Это же страшный страшный постгри и надо приходить в ветки и рассказывать страшилки о неких сакральных знаниях, которые знают грамотные админы, а что это за знания сакральные кто-то о них что-то знает? Вы бы хоть у админов спросили, что это там такое сакральное, но ведь нет ничего! Но напугать обязательно нужно.

Насчет админа и его любви к виртуальным машинам. Пусть ставит. Потом можно будет спихивать на него различные тормоза в работе и возможные огрехи в поведении системы.

Я честно говоря не понял, Постгри тоже на Виндовозе рассматриваете в качестве СУБД?
Думаю, что настоящая стихия этих открытых СУБД: Posgres, MySQL, Oracle, sqlite является Linux. Тогда уж надо капитально переезжать на Linux, ставить стабильный CentOS 7, качать 1с сервер rpm пакеты, разворачивать субд, в вашем случае постгри на ней, тогда будет круто, а на винде это тухлый вариант, лучше оставаться на MS SQL.

(27) В прошлой организации столкнулся с тем, что при переходе не более новый релиз постгри, предоставленный 1С, начали сыпаться ошибки по правам к таблицам и связам на уровне СУБД. Начал копать, находил нечастые случаи аналогичных ошибок. По совету на одном из форумов скачал и поставил сборку от ПГПро - завелось, ошибок СУБД не нашлось.

Вывод: все, что делаете - на свой страх и риск. Есть бабло, берите мс. С точки зрения производительности, функционала и несложности использования не прогадаете, тем более, если будете пользоваться гуем. С баблом напряг, постгри - ваш вариант. Но только на линуксе. Есть свои нюансы. Есть готовые решения с патчами. Работать можно. Одно из "но" - рано или поздно, когда заходите обновить СУБД, можете уткнуться в проблему с модульной (пакетной) совместимостью на уровне ОС, на которой стоит СУБД. Но это все решаемо - гуглится.

Спасибо всем за информацию) что-то я где-то слышал ранее, что-то было новое) (27) К сожалению, стратегия построения плана запроса в постгресе так и не поменялась. И всё так же он жестко лажает при запросе с подзапросами, запуская нестедлуп по таблицам с миллионами записей вместо оптимизированных на размер стратегий. И вряд ли это исправят, без радикальной переписки ядра постгреса, чтобы план строился не на запрос в целом, а уточнялся по мере исполнения подзапросов. А оно надо только 1сникам. (33) Гуру - не гуру, но когда организация дорастает до наличия сервера и филиалов в разных городах - за этим сервером надо кому-то следить и настраивать (34) нормальный админ нужен всегда. Не важно в штате или готовый прибежать в течении дня. (0) Сроки есть? В случае MS SQL закладывайте 45 дней на проверку того, что вы не подпадаете под санкции США. (26) PostgreSQL без грамотного админа может уйти в себя на сутки при выполнении не самого сложного запроса типовой конфигурации. MS SQL даже с настройками по дефолту и без обслуживания себе такого не позволяет. (27) На 1 пользователе можно словить проблемы. Просто 1 ядро грузится на 100% от получаса до суток. И хорошо если это отчет, а не проведение документа. И это на дистрибутиве от 1С. (36) Ну до конца года скорее всего не будет перехода. Мы не в РФ, так что вроде без санкций)
(37) вот вот.
Сейчас главное правильно выбрать вектор. Чтобы потом не лохануться, вертать взад может быть дорого по взаимоотношениям с клиентом (39) вообще то, РК это Республика Крым.
И то что вы не под санкциями, не значит толком ничего. У нас с вами общее экономическое пространство, поэтому, что у нас нет половины мировых новинок автомобилей, что у вас..что в Белоруссии..

(39) Тогда в чем выбор-то? Рекомендуйте клиенту MS SQL, если ему дорого - делите с ним ответственность.

Postgres это дешево, сердито, работает. Слышал 100раз. То что Postgres круче чем MS SQL - ни разу. Грамотный, вменяемый, доступный админ понадобиться рано или поздно в любом случае.

(39) На санкции проверяют всех. Вдруг вы на 50% принадлежите кому-то из санкционного списка? Там надо раскрутить всю цепочку юр. лиц до конечных собственников, и если вдруг найдут что-то подозрительное - могут и отказать вообще. (41) Ну мы не любим советовать то, что им явно излишне на их количестве пользователей. И если рекомендовать - надо сразу понять так сказать "счет на оплату" выкатить, чтобы каждый пункт я мог объяснить, почему столько и чего.

(44) Ну то что вам на мисте сказали, это же тоже не аргумент? Вы постгрес ставили/настраивали хоть раз? А MS SQL? Проведите изыскания: поставьте, прогоните тесты, сравните. Погуглите и все вопросы отпадут.

P.S. Мне Постгрес нравиться ровно тем, что я умею его готовить. MS SQL не умею, в редакциях не разбираюсь, ценники не видел. Но еще ни разу не слышал, что он работает хуже Postgres.

(45) Ставил MS SQL версию для ознакомления (Express вроде называется) и пробно прогонял. Но это же не дает никакого реального опыта. Но есть надежда тут встретить опытных людей, кто сможет хотя бы дать начальное понимание, что и куда. (0) SQL просто работает. C Postgree надо быть готовым к сюрпризам.
Как вариант: начать с бесплатного Postgree. Если не осилите - переезжать на MS SQL. (47) Тоже склоняюсь к такому варианту судя по комментариям выше. От Постгре потеряем только время на перенастройку, если не взлетит Почти 2 года рекламировал ПГ . пока в одной из баз не начались "приколы" . (38) Это он пытается построить хоть сколько-нибудь выполнимый план примерно такого запроса postgesql долго выполняет запрос срез последних
Старые конфы(ББУ, БГУ 1.0, в моем случае) этим когда-то(давно) грешили. Пг-админ почти ничем не поможет, разве что только выключить в оптимизаторе nested loops для ряда конкретных случаев.
Если учитывать подобные особенности, серьезных проблем возникать не должно.

(50) вот-вот - нужно смотреть именно подробности, потому что вероятность словить такие же точно подробности может быть и существует, но это .

Ну работают в моем опыте, дай бог памяти, ну где-то еще до 2010 года начали использовать ПГ в базах.

Да, можно встретить некую загадочную ххх-ю , но для этого нужно очень сильно постараться. В типовых базах, т.е. без ручек само-разработчиков, шансы словить проблемы, даже если установлена постгри на винде, крайне низкие. А в последние годы, даже наоборот, что накосячить с обычным дистрибом постгри от 1С под винду, чтоб он заглючил. Ну это еще постараться нужно очень сильно.

Причем, если такие проблемы в базе возникают, то это будет означать, что и на сиквеле обыкновенном эта баз тоже может поймать проблемы.

И еще раз, пишите что доросла база или Компания до покупки выделенного сервера внезапно.
Уточните, если не трудно, а сколько же пользователей могло работать в этой базе в файловом режиме и без сервера?
И сколько пользователей будет работать сейчас?
И если не трудно, то может намекнете какие конфигурации у этих баз или если не хотите называть сами конфигурации, то характеристики какие-то, может там версии БСП и режим совместимости и какую платформу 1С (версию платформы) собираетесь ставить. Ну и т.д.

Инфы же нет никакой в топике. Хотя рассуждать, что МС Сиквел однозначно рулит всегда вегде и для всех - ну можно, что тут сомневаться ваапще?!

Начиная с версии 8.3.20.1363, только в управляемом режиме управления блокировками данных.

PostgresPro собирается для следующих операционных систем и их версий:

  • Microsoft
    • Windows 7
    • Windows 8
    • Windows 10
    • Windows Server 2008
    • Windows Server 2008R2
    • Windows Server 2012
    • Windows Server 2016
    • RHEL 6/7
    • CentOS 6/7
    • Debian 7/8/9
    • Ubuntu 12.04/14.04/16.04/16.10/17.04
    • SLES 11/12
    • Alt Linux SPT 7
    • Alt Server 7/8
    • ROSA EL Server 6
    • ROSA SX Cobalt Server 6/7
    • ROSA DX Cobalt Server
    • ROSA Marathon LTS 2012
    • Astra Linux Smolensk 1.5/1.6
    • Astra Linux Orel 2.12
    • Goslinux 7
    • Oracle Linux 6/7
    • RED OS 7

    Начиная с версии 8.3.13.1513, только в управляемом режиме управления блокировками данных.

    PostgresPro собирается для следующих операционных систем и их версий:

    • Microsoft
      • Windows 7
      • Windows 8
      • Windows 10
      • Windows Server 2008
      • Windows Server 2008R2
      • Windows Server 2012
      • Windows Server 2016
      • RHEL 6/7
      • CentOS 6/7
      • Debian 7/8/9
      • Ubuntu 12.04/14.04/16.04/16.10/17.04
      • SLES 11/12
      • Alt Linux SPT 7
      • Alt Server 7/8
      • ROSA EL Server 6
      • ROSA SX Cobalt Server 6/7
      • ROSA DX Cobalt Server
      • ROSA Marathon LTS 2012
      • Astra Linux Smolensk 1.5/1.6
      • Astra Linux Orel 2.12
      • Goslinux 7
      • Oracle Linux 6/7
      • RED OS 7

      Начиная с версии 8.3.13.1513, только в управляемом режиме управления блокировками данных.

      PostgresPro собирается для следующих операционных систем и их версий: