-
Будь проще, и люди к тебе потянутся. СУБД с человеческим лицом?
-
Почему не все дистрибутивы Postgres одинаково полезны для 1С
-
Подготовка для Windows. Установка locale
-
Установка VCRUNTIME
-
Отключение борьбы за экономию.
-
Собственно инсталляция.
-
Инициализация кластера – лучше через initdb
-
Настраиваем доступность по сети и первый старт.
-
Настройка кластера Postgres под 1С.
-
Настройки Postgres.conf для профиля OLTP нагрузки
-
Параметры, связанные сеансами и соединениями.
-
shared_buffers = 12020MB
-
max_files_per_process = 10000
-
max_parallel_workers_per_gather = 0
-
temp_tablespaces = 'ssd_temp'
-
Параметры журнала предзаписи (WAL)
-
Параметры планировщика
-
Параметры автовакуума и сбора статистики.
-
Использование символа \ для экранирования.
-
Параметры для мониторинга
-
Скрипт установки более агрессивных настроек
-
И это все?
Будь проще, и люди к тебе потянутся. СУБД с человеческим лицом?
Большинство любит смотреть картинки, а не читать книги, а тем более руководства. Здесь нет ничего плохого, если картинка быстро и сразу доносит необходимую информацию. Однако развертывание Postgres напоминает нам о прошлом, о котором я читал только в книгах. Прошлое, когда ИТ инфраструктура была настолько дорогая, квалифицированных специалистов было больше, чем машин. Все крутились вокруг очередной суперЭВМ или стояли в очереди на сеанс машинного времени.
Microsoft SQL Server уже показал хороший пример системного ПО для человека, хотя его внутреннюю архитектуру трудно ставить в пример, как Oracle. Машин стало больше, чем квалифицированных специалистов, и как бы пора меняться.
Действия по данной инструкции – могла бы сделать программа инсталляции, запросив лишь профиль нагрузки (например, OLTP), а дальше уже по параметрам оборудования
- Провести настройку окружения.
- Показать лог установки
При таком подходе руководства могли бы пригодиться только для творческого тюнинга, планов развертывания, но не рутинной работы.
Дистрибутивы от release.1c.ru и 1c.postgrespro.ru такого не делают, только в PostgresPro выставили некоторые рекомендуемые параметры 1С. Как результат, мы не увидим лучшие практики и каждый пойдет настраивать Postgres в меру своего понимания, поскольку документация Postgres написана для всех случаев, а не для OLTP приложений
Ситуация вряд ли будет быстро меняться, поскольку санкции это хороший стимул жрать кактус, тем более в ИТ за сложность и платят.
Замечу, что Postgres ставят не только администраторы, но и программисты для создания локальных баз разработки, создания внешних схем данных и так далее.
Здесь все изложено для жесткого OLTP, которое создает платформа 1С, независимо от талантов программиста 1С. Те, кто не верит, что 1С может быть жестким OLTP, почитайте простой тест тут Концепция ORM как двигатель прогресса – выявит слабое место Вашей СУБД . В этом тесте только запись, без конкурентных блокировок. А когда идет запись в регистр с итогами, все еще веселее.
Изложение идет на примере Windows , но установка параметров справедлива и для Unix. В данной части внимание уделено базовой настройке, позволяющей переварить нагрузку при параллельной записи данных и дать 1С возможность приемлемо работать на Postgres. Остальные вопросы, такие как блокировки, большие запросы на чтение, тюнинг индексов, безопасность имеет смысл обсуждать, когда оптимизирован самый ресурсоемкий процесс в OLTP
Почему не все дистрибутивы Postgres одинаково полезны для 1С
Допускаю, что на просторах интернета есть сборка и дистрибутив Postgres, который большую часть работы по установке сделает за Вас, но в 1С мы ограничены двумя бесплатными дистрибутивами и вот почему.
Поиск по слову 1С:Предприятие в документации PostgresPro выдаст следующие ссылки
«Этот модуль был разработан для улучшения поддержки системы 1С:Предприятие, самой популярной в России CRM и ERP-платформы.
Он содержит реализацию типов MCHAR и MVARCHAR, которые с точностью до ошибок совместимы с типами MS SQL CHAR и VARCHAR, соответственно.»
«Модуль fulleq предоставляет дополнительный оператор равенства для совместимости с Microsoft SQL Server.
Этот модуль требуется для поддержки системы 1С:Предприятие.»
Postgres Pro Standard : Документация: 16: 13.3. Явные блокировки : Компания Postgres Professional
«Кроме того, для поддержки системы 1С:Предприятие реализованы ещё два режима блокировок. Эти режимы не конфликтуют ни с какими режимами, описанными выше. Их можно использовать, но лучше вместо них применять рекомендательные блокировки, которые предоставляют ту же функциональность.»
И, наконец, самое известное
«Модуль fasttrun предоставляет транзакционно-небезопасную функцию для усечения временных таблиц, предотвращающую разрастание каталога pg_class.
Этот модуль требуется для поддержки системы 1С:Предприятие.
Операция быстрого усечения не является транзакционной, так что её действие нельзя отменить и оно немедленно становится видимым во всех сеансах независимо от уровня изоляции.»
Это только то, что изложено в документации Postgres pro. При запросах на поддержку - 1С поддерживает только дистрибутив Postgres собственной сборки (а это не то же самое, что 1c.postgrespro.ru)
Как следствие при всем богатстве выбора другие альтернативы потребуют от Вас глубокое погружение в Postgres.
Подготовка для Windows. Установка locale
Формально установка Postgres состоит из установки исполняемых файлов и создания кластера Postgres. При создании кластера (initdb) можно установить необходимые locale вручную, если прочитать большое руководство PostgreSQL : Документация: 15: 24.3. Поддержка кодировок : Компания Postgres Professional, и точно знать, что Вы хотите. Но есть более простой путь
Для аккаунта, под которым ведется установка Postgres
1) Установите РФ или Ваш регион в Region, Region format
2) И на всякий случай Russia в non-Unicode programs.
Такие же установки нужно сделать под аккаунтом, с которым будет работать сервис Postgres.
Initdb в этом случае сможет выбрать правильную комбинацию для locale
Установка VCRUNTIME
По каким-то причинам дистрибутив 1С не проверяет установку VCRUNTIME, как следствие, приходится его устанавливать вручную, иначе при старте будет ошибка

Установить можно отсюда Download Visual Studio Tools – Install Free for Windows, Mac, Linux (microsoft.com)
Отключение борьбы за экономию.
Борьба за экономию электричества настолько слишком глубоко засела в серверах и на уровне операционной системы, и на уровне виртуализации, и на уровне Bios. Все это нужно отключить, иначе у Вас будет периодически просаживаться производительность . Как это случается, можно почитать тут
1C MSSQL Против Матрицы виртуализации – Перезагрузка.
Собственно инсталляция
При инсталляции рекомендую указать только каталоги, а галочку «Установить как сервис» снять. Включение ее приведет к инициализации кластера и заодно сервиса с минимальными параметрами. На моей среде она корректно не работала, а сделать то же из командной строки несложно и гораздо наглядней
Без флага «Установить как сервис» установка фактически произведет разворачивание файлов в каталог Postgres . Вообще инструкция у 1С еще проще
Вступайте в нашу телеграмм-группу Инфостарт