Установка и настройка сервера PostgreSQL для Ubuntu и 1С | Пошаговая инструкция | AdminWiki

Установка сервера PostgreSQL: полное руководство для Ubuntu и 1С

17 декабря 2025 7 мин. чтения #1с #linux #postgresql #ubuntu #база данных #настройка #сервер #установка

Развертывание собственного сервера баз данных — ключевой навык для разработчика и администратора. В этом руководстве мы детально разберем установку сервера PostgreSQL, его настройку для работы с и оптимизацию для production-среды. Представь, что мы вместе настраиваем сервер для важного проекта.

Выбор версии и подготовка системы

Перед началом установки сервера PostgreSQL определись с версией. Для 1С 8.3 рекомендована PostgreSQL 9.6 или 10, для современных проектов — актуальные стабильные версии (15, 16). Мы будем работать на Ubuntu 22.04 LTS.

Важно: Убедись, что на сервере обновлены все пакеты: sudo apt update && sudo apt upgrade -y

Установка PostgreSQL на Ubuntu сервер

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

Шаг 1: Добавление репозитория

bash
# Установите пакет для работы с репозиториями
sudo apt install -y wget gnupg2

# Импортируйте ключ репозитория PostgreSQL
sudo wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

# Добавьте репозиторий для вашей версии Ubuntu (22.04 Jammy)
echo "deb http://apt.postgresql.org/pub/repos/apt jammy-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list

# Обновите список пакетов
sudo apt update

Шаг 2: Непосредственная установка PostgreSQL

Теперь выполним установку PostgreSQL на Ubuntu сервер нужной версии. Для 1С 8.3 установим версию 10, для общего случая — последнюю стабильную.

bash
# Для общего случая (последняя стабильная)
sudo apt install -y postgresql postgresql-contrib

# ИЛИ для 1С 8.3 (версия 10)
# sudo apt install -y postgresql-10 postgresql-contrib-10

После установки сервис запустится автоматически. Проверим статус:

bash
sudo systemctl status postgresql

Первоначальная настройка сервера PostgreSQL

Стандартная установка сервера 1С PostgreSQL на Ubuntu требует дополнительной конфигурации безопасности и производительности.

Шаг 3: Настройка аутентификации и создание пользователя

По умолчанию PostgreSQL использует peer-аутентификацию для локальных подключений. Сменим её на md5 и создадим суперпользователя.

bash
# Переключитесь на системного пользователя postgres
sudo -i -u postgres

# Запустите интерактивную оболочку psql
psql

# Внутри psql создайте нового пользователя (например, для 1С) и базу данных
CREATE USER user1c WITH PASSWORD 'Ваш_Сложный_Пароль' SUPERUSER CREATEDB CREATEROLE;
CREATE DATABASE db1c OWNER user1c;

# Выйдите из psql
\q

# Вернитесь в свою сессию
exit

Шаг 4: Конфигурация подключений (pg_hba.conf и postgresql.conf)

Это ключевой этап настройки SQL сервера PostgreSQL. Отредактируем файл аутентификации pg_hba.conf.

bash
# Найдите актуальную версию и отредактируйте pg_hba.conf
sudo nano /etc/postgresql/10/main/pg_hba.conf  # Для версии 10
# Или
sudo nano /etc/postgresql/16/main/pg_hba.conf  # Для версии 16

Найдите строки, отвечающие за локальные подключения, и измените метод аутентификации с peer на md5:

config
# Было:
# local   all             all                                     peer
# Стало:
local   all             all                                     md5

Чтобы разрешить подключения из сети (например, для 1С сервера), добавьте в конец файла:

config
# Разрешить подключения со всех адресов (для внутренней сети)
host    all             all             192.168.1.0/24          md5
# ИЛИ для тестового стенда (не для продакшена!)
# host    all             all             0.0.0.0/0               md5
Внимание! Открытие доступа на 0.0.0.0/0 крайне небезопасно. Используйте только в доверенных сетях или за фаерволом.

Шаг 5: Настройка сетевых параметров (postgresql.conf)

Теперь настроим прослушивание сетевых интерфейсов. Откройте основной конфигурационный файл:

bash
sudo nano /etc/postgresql/10/main/postgresql.conf

Найдите и измените следующие параметры:

config
# Позволить слушать все сетевые интерфейсы
listen_addresses = '*'          # или 'localhost,192.168.1.100'

# Порт подключения (стандартный 5432)
port = 5432

# Увеличьте количество одновременных подключений для 1С
max_connections = 100

Шаг 6: Применение настроек и перезагрузка

После всех изменений в конфигурации необходимо перезагрузить сервер PostgreSQL.

bash
sudo systemctl restart postgresql

# Проверьте, что сервер слушает сетевой порт
sudo ss -tulpn | grep 5432

Оптимизация PostgreSQL для 1С

Настройка 1С сервера PostgreSQL требует особых параметров, так как нагрузка от 1С специфична (много коротких транзакций, работа с русской локализацией).

Рекомендуемые параметры postgresql.conf для 1С 8.3

config
# Память (зависит от ОЗУ сервера, пример для 8 ГБ)
shared_buffers = 2GB
work_mem = 16MB
maintenance_work_mem = 256MB
effective_cache_size = 6GB

# Настройки для русской локализации
lc_messages = 'ru_RU.UTF-8'
lc_monetary = 'ru_RU.UTF-8'
lc_numeric = 'ru_RU.UTF-8'
lc_time = 'ru_RU.UTF-8'

# Производительность
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 100
random_page_cost = 2.0
effective_io_concurrency = 2

Создание базы данных для 1С с правильной локалью

bash
sudo -u postgres psql -c "CREATE DATABASE base1c 
    WITH OWNER = user1c 
    ENCODING = 'UTF8' 
    LC_COLLATE = 'ru_RU.UTF-8' 
    LC_CTYPE = 'ru_RU.UTF-8' 
    TEMPLATE template0;"

Безопасность и базовое администрирование

После установки и настройки 1С сервер PostgreSQL необходимо обеспечить его безопасность.

  • Файрвол: Настройте UFW или iptables, чтобы открыть порт 5432 только для IP-адресов 1С-серверов и администраторов.
  • Резервное копирование: Настройте регулярный бэкап с помощью pg_dump или утилиты pg_basebackup.
  • Мониторинг: Включите сбор статистики (track_activities = on) и рассмотрите использование pgBadger для анализа логов.

Сравнение методов установки

Метод Плюсы Минусы Для чего подходит
Из репозитория ОС (apt) Простота, автоматические обновления Не самые свежие версии Быстрый старт, тестовые среды
Официальный репозиторий PostgreSQL Актуальные версии, стабильность Требует добавления репозитория Продакшен, установка сервера 1С PostgreSQL
Сборка из исходников Максимальная гибкость, оптимизация под железо Сложность, ручное обновление Высоконагруженные системы, специфичные требования

Частые проблемы и их решение

Ошибка: "FATAL: password authentication failed for user"

Причина: Неправильный пароль или настройки pg_hba.conf.
Решение: Проверь метод аутентификации в pg_hba.conf для соответствующего типа подключения (host/local). Убедись, что пароль пользователя установлен корректно: ALTER USER user1c WITH PASSWORD 'новый_пароль';

Ошибка: "could not connect to server: Connection refused"

Причина: Сервер не слушает сетевые подключения или заблокирован фаерволом.
Решение: Проверь параметр listen_addresses в postgresql.conf и убедись, что сервер перезагружен. Проверь фаервол: sudo ufw status.

1С не подключается к базе: ошибки с кодировкой

Причина: База создана с неправильной локалью (LC_COLLATE, LC_CTYPE).
Решение: Пересоздай базу данных с указанием 'ru_RU.UTF-8', как показано выше. Убедись, что локаль установлена в ОС: locale -a | grep ru.

Краткий чек-лист после установки

  • ✅ Сервер установлен и запущен (systemctl status postgresql).
  • ✅ Настроена аутентификация по паролю (md5 в pg_hba.conf).
  • ✅ Сервер слушает сетевые интерфейсы (listen_addresses = '*').
  • ✅ Создан пользователь и база данных для приложения (1С).
  • ✅ Настроены параметры производительности (память, локали).
  • ✅ Настроен фаервол для ограничения доступа к порту 5432.
  • ✅ Протестировано подключение с клиентской машины.

Поздравляю! Ты завершил установку и настройку сервера PostgreSQL. Этот фундамент позволит тебе развертывать надежные базы данных для веб-приложений, систем типа и аналитических задач. Помни, что конфигурация — это итеративный процесс: мониторь производительность, читай логи и адаптируй настройки под реальную нагрузку.

Поделиться:
Сохранить гайд? В закладки браузера