Переход на операционной системе Linux для серверов 1С Предприятие становится стандартом в корпоративном секторе благодаря стабильности и экономии на лицензиях. Однако процесс развертывания базы данных требует внимательного подхода, особенно когда речь идет о связке Ubuntu Server и PostgreSQL. Неправильная конфигурация может привести к существенному снижению производительности или проблемам с безопасностью данных.

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

Почему именно эта СУБД? Для высоконагруженных систем использование PostgreSQL часто предпочтительнее встроенных решений или MS SQL в ряде сценариев из-за гибкости настройки и открытости кода. Грамотная установка гарантирует, что ваш сервер 1С будет работать без сбоев даже при росте количества пользователей.

Подготовка операционной системы и репозиториев

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

sudo apt update && sudo apt upgrade -y

Далее необходимо добавить официальный репозиторий PostgreSQL. Использование стандартных репозиториев Ubuntu может привести к установке устаревшей версии, которая не поддерживает все необходимые функции для современных релизов 1С Предприятие. Добавьте ключ репозитория и сам источник данных в список.

⚠️ Внимание: Убедитесь, что у вас установлен пакет software-properties-common и wget, иначе команда добавления репозитория завершится ошибкой. Без них система не сможет корректно обработать внешний источник.

После добавления репозитория снова выполните обновление списка пакетов. Это действие скажет системе о появлении новых версий ПО, доступных для установки. Теперь окружение готово к развертыванию сервера баз данных.

💡

Используйте команду "lsb_release -cs", чтобы точно узнать кодовое имя вашей версии Ubuntu (например, focal или jammy) и подставить его в адрес репозитория, если автоматическое определение не сработало.

Установка сервера PostgreSQL и клиента

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

sudo apt install postgresql postgresql-contrib postgresql-client libpq-dev -y

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

  • 🟢 Сервис активен и работает корректно.
  • 🔴 Сервис не запущен или находится в состоянии ошибки.
  • 🟡 Сервис активен, но требует перезагрузки после обновления ядра.

Если статус показывает active (running), значит базовая установка прошла успешно. В противном случае изучите логи через команду journalctl -u postgresql для выявления причин сбоя. Частой проблемой бывает нехватка места на диске или конфликт портов.

📊 Какую версию PostgreSQL вы планируете использовать для 1С?
14 (Стабильная)
15 (Новая)
16 (Latest)
Использую встроенную

Создание пользователя и базы данных для 1С

По умолчанию вход в консоль управления базой данных осуществляется от имени суперпользователя postgres. Для работы с 1С Предприятие необходимо создать отдельного пользователя с соответствующими правами и саму базу данных. Это соответствует принципам безопасности и разделения доступа.

Переключитесь на пользователя postgres и войдите в интерактивную оболочку psql. Здесь вы будете выполнять SQL-команды для создания сущностей. Не используйте суперпользователя для подключения приложений 1С в продакшене.

sudo -u postgres psql

Внутри оболочки создайте нового пользователя. Придумайте сложный пароль, так как именно эти учетные данные будут прописаны в строке подключения сервера 1С. Замените user1c и strong_password на ваши реальные данные.

CREATE USER user1c WITH PASSWORD 'strong_password';

Теперь создайте базу данных и назначьте владельца. Важно, чтобы кодировка базы данных была UTF8, а локаль соответствовала настройкам системы, чтобы избежать проблем с сортировкой и поиском по строкам в документах 1С.

Параметр Значение по умолчанию Рекомендуемое для 1С Описание
Кодировка UTF8 UTF8 Обязательный стандарт для поддержки кириллицы
LC_COLLATE en_US.UTF-8 ru_RU.UTF-8 Правила сортировки строк
LC_CTYPE en_US.UTF-8 ru_RU.UTF-8 Классификация символов
Владелец postgres user1c Пользователь, созданный для 1С

После создания объектов не забудьте предоставить пользователю полные права на созданную базу данных. Без этого сервер 1С не сможет выполнять операции записи и изменения структуры метаданных.

☑️ Проверка создания БД

Выполнено: 0 / 5

Настройка прав доступа и аутентификации

Файл конфигурации pg_hba.conf управляет правилами аутентификации клиентов. По умолчанию PostgreSQL часто настроен на прием соединений только с локального хоста через сокет. Для работы сервера 1С, который может быть установлен отдельно или обращаться по сети, нужно разрешить TCP/IP соединения.

Откройте файл конфигурации, расположенный обычно в /etc/postgresql/<версия>/main/pg_hba.conf. Найдите строки, начинающиеся с host, и добавьте правило, разрешающее подключение от вашего сервера 1С с использованием метода аутентификации scram-sha-256 или md5.

⚠️ Внимание: Избегайте использования метода trust в рабочей среде. Этот метод разрешает подключение без пароля любому пользователю с указанным IP, что создает критическую уязвимость безопасности.

Также проверьте файл postgresql.conf. Найдите параметр listen_addresses. По умолчанию он может быть закомментирован или установлен в localhost. Для доступа по сети установите значение '*' или укажите конкретный IP-адрес интерфейса сервера.

listen_addresses = '*'

После внесения изменений в конфигурационные файлы необходимо перезагрузить службу PostgreSQL, чтобы новые настройки вступили в силу. Команда reload применима изменения без разрыва существующих соединений.

Почему scram-sha-256 лучше md5?

Метод scram-sha-256 использует более современный и безопасный алгоритм хеширования паролей. Он защищает от перехвата хешей при передаче по сети и устойчив к некоторым видам атак перебором, в отличие от устаревающего md5.

Оптимизация производительности под 1С Предприятие

Стандартные настройки PostgreSQL ориентированы на универсальное использование и часто не учитывают специфику высоконагруженных систем типа . Для эффективной работы необходимо скорректировать параметры выделения памяти в файле postgresql.conf.

Ключевым параметром является shared_buffers. Рекомендуемое значение составляет около 25% от объема оперативной памяти сервера, но не более 8 ГБ для большинства сценариев 1С. Значение выше этого порога редко дает прирост производительности и может замедлить работу из-за особенностей кэширования ОС.

  • ⚙️ work_mem: Память для сортировок и хеш-таблиц. Увеличьте до 16-32 МБ для сложных отчетов.
  • 💾 maintenance_work_mem: Память для операций обслуживания (VACUUM, CREATE INDEX). Можно выделить 1-2 ГБ.
  • 📝 wal_buffers: Буфер для журнала транзакций. Рекомендуется установить в 16-64 МБ.

Также стоит обратить внимание на параметр effective_cache_size. Он подсказывает планировщику запросов, сколько памяти доступно для кэширования данных в ОС. Установите значение примерно в 50-75% от всей доступной RAM сервера.

Для дисковых подсистем NVMe в 1С критически важно параметр random_page_cost снизить до 1.1 или 1.2, чтобы планировщик чаще выбирал индексные сканирования вместо последовательных.

Не забудьте применить изменения перезагрузкой службы. Мониторинг работы базы после оптимизации покажет, насколько эффективно были подобраны параметры. Используйте утилиту pg_stat_activity для анализа текущих запросов.

💡

Оптимальная настройка shared_buffers для 1С составляет 25% от RAM, но избыточное выделение памяти под этот параметр может привести к свопингу и падению производительности всей системы.

Диагностика типовых проблем подключения

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

sudo ufw allow 5432/tcp

Если сервер 1С выдает ошибку авторизации, проверьте логи PostgreSQL. Они содержат детальную информацию о причине отказа: неверный пароль, отсутствие прав на базу или запрет в файле pg_hba.conf. Логи обычно находятся в /var/log/postgresql/.

Иногда проблема связана с версией драйвера или клиента. Убедитесь, что на сервере 1С установлены актуальные библиотеки подключения к PostgreSQL. В редких случаях требуется явное указание версии протокола в строке соединения.

⚠️ Внимание: Конфигурация сетевых интерфейсов и правила фаервола могут отличаться в зависимости от версии Ubuntu и используемого облачного провайдера. Всегда сверяйте настройки безопасности в панели управления вашим хостингом или физическим сервером.

Регулярный анализ логов и мониторинг ресурсов сервера помогут предотвратить простои в работе бухгалтерии и других отделов. Автоматизируйте сбор метрик для быстрого реагирования на аномалии.

Часто задаваемые вопросы (FAQ)

Как узнать точную версию установленного PostgreSQL?

Выполните команду psql --version в терминале или подключитесь к базе и выполните SQL-запрос SELECT version();. Это покажет полную строку версии с номером сборки.

Можно ли использовать PostgreSQL 16 для старых конфигураций 1С?

Технически совместимость есть, но платформа 1С Предприятие должна быть обновлена до версии, поддерживающей данную СУБД. Всегда проверяйте таблицу совместимости на официальном сайте 1С перед обновлением сервера БД.

Где хранятся файлы баз данных в Ubuntu?

По умолчанию данные хранятся в директории /var/lib/postgresql/<версия>/main/base. Прямое редактирование файлов в этой папке запрещено и приведет к повреждению базы.

Как сбросить пароль пользователя postgres?

Зайдите в консоль под системным пользователем postgres: sudo -u postgres psql, затем выполните команду ALTER USER postgres PASSWORD 'новый_пароль';.

Нужно ли делать VACUUM вручную в 1С?

В современных версиях PostgreSQL автовакуум работает эффективно. Однако для баз 1С с высокой интенсивностью изменений рекомендуется периодически запускать VACUUM FULL в окна обслуживания, но с осторожностью, так как эта команда блокирует таблицы.