Установка PostgreSQL для 1С: настройка mchar и оптимизация | AdminWiki

Установка PostgreSQL для 1С: пошаговое руководство с настройкой mchar

19 декабря 2025 7 мин. чтения #1с #mchar #postgresql #база данных #настройка #оптимизация #установка

Если ты работаешь с 1С и хочешь получить максимальную производительность и стабильность, переход на PostgreSQL — правильное решение. В этой статье я, как Senior DevOps, проведу тебя через весь процесс установки и тонкой настройки, включая работу с расширением mchar, которое критически важно для корректной работы 1С.

Подготовка к установке PostgreSQL

Перед началом установки давай определимся с окружением. Я рекомендую использовать PostgreSQL 13 или выше для 1С, так как эти версии лучше оптимизированы и имеют улучшенную поддержку.

Важно: Убедись, что у тебя есть права администратора на сервере и стабильное интернет-подключение для загрузки пакетов.

Шаг 1: Установка PostgreSQL на Linux (Ubuntu/Debian)

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

bash
# Добавляем репозиторий PostgreSQL
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

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

# Обновляем список пакетов
sudo apt-get update

# Устанавливаем PostgreSQL 13 и дополнительные компоненты
sudo apt-get install -y postgresql-13 postgresql-client-13 postgresql-contrib-13 libpq-dev

Шаг 2: Настройка PostgreSQL для работы с 1С

После установки нужно настроить конфигурационные файлы. Основные файлы находятся в /etc/postgresql/13/main/.

bash
# Редактируем основной конфигурационный файл
sudo nano /etc/postgresql/13/main/postgresql.conf

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

config
# Слушаем все интерфейсы (или конкретный IP)
listen_addresses = '*'

# Максимальное количество соединений
max_connections = 200

# Выделяем память для работы
shared_buffers = 512MB
work_mem = 8MB
maintenance_work_mem = 128MB

# Настройки для производительности 1С
effective_cache_size = 2GB
wal_buffers = 16MB
checkpoint_completion_target = 0.9
random_page_cost = 2.0
effective_io_concurrency = 2
Внимание: Значения shared_buffers и других параметров памяти зависят от объема RAM на сервере. Не выделяй больше 25% от общей памяти на shared_buffers.

Установка и настройка расширения mchar

Расширение mchar (multibyte char) необходимо для корректной работы с русскими буквами и другими многобайтовыми символами в 1С. Без него могут возникать проблемы с сортировкой и сравнением строк.

Шаг 3: Установка mchar для PostgreSQL

В современных версиях PostgreSQL расширение mchar часто идет в составе contrib-пакетов. Проверим и установим при необходимости.

bash
# Проверяем, установлен ли пакет contrib
sudo apt-get install postgresql-contrib-13

# Перезапускаем PostgreSQL
sudo systemctl restart postgresql

Шаг 4: Создание базы данных для 1С с поддержкой mchar

Теперь создадим базу данных с правильной локализацией и установим расширение mchar.

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

# Создаем базу данных с локализацией для русского языка
CREATE DATABASE db_1c
  WITH OWNER = postgres
       ENCODING = 'UTF8'
       LC_COLLATE = 'ru_RU.UTF-8'
       LC_CTYPE = 'ru_RU.UTF-8'
       TEMPLATE = template0;

# Подключаемся к созданной базе
\c db_1c

# Устанавливаем расширение mchar
CREATE EXTENSION IF NOT EXISTS mchar;

# Проверяем установку расширения
\dx
Совет: Всегда используй TEMPLATE = template0 при создании базы для 1С, чтобы избежать наследования возможных проблем из стандартного шаблона.

Настройка пользователей и прав доступа

sql
-- Создаем пользователя для 1С
CREATE USER user_1c WITH PASSWORD 'StrongPassword123!';

-- Даем права на базу данных
GRANT ALL PRIVILEGES ON DATABASE db_1c TO user_1c;

-- Даем права на создание схем (важно для 1С)
ALTER USER user_1c CREATEDB;

-- Настраиваем права на подключение (в pg_hba.conf)
# Добавь строку в /etc/postgresql/13/main/pg_hba.conf
host    db_1c     user_1c     0.0.0.0/0       md5

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

Для достижения максимальной производительности 1С с PostgreSQL рекомендую следующие настройки:

Параметр Рекомендуемое значение Описание
shared_buffers 25% от RAM Кэш для часто используемых данных
work_mem 8-16 MB Память для операций сортировки
maintenance_work_mem 128-256 MB Память для обслуживания БД
effective_cache_size 50-75% от RAM Оценка размера кэша ОС

Подключение 1С к PostgreSQL

После настройки сервера нужно правильно подключить 1С:

  1. Запусти «Конфигуратор» или «Предприятие» 1С
  2. Выбери «Добавить» в списке информационных баз
  3. Укажи тип базы данных: «PostgreSQL»
  4. Заполни параметры подключения:
    • Сервер: IP-адрес твоего PostgreSQL сервера
    • База данных: db_1c
    • Пользователь: user_1c
    • Пароль: указанный при создании
  5. Нажми «Готово» и дождись создания структуры базы

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

Проблема 1: Ошибка при создании базы в 1С

Симптомы: «Ошибка создания ИБ» или «Нет прав на создание схем».

Решение: Убедись, что пользователь имеет права CREATEDB:

sql
ALTER USER user_1c CREATEDB;

Проблема 2: Медленная работа 1С

Решение: Выполни настройку параметров производительности из таблицы выше и создай индексы:

sql
-- Анализ медленных запросов
SELECT query, calls, total_time, mean_time
FROM pg_stat_statements
ORDER BY mean_time DESC
LIMIT 10;

Проблема 3: Ошибки с кодировкой русских букв

Решение: Проверь, что расширение mchar установлено и база создана с правильной локалью:

sql
-- Проверка локали базы данных
SELECT datname, datcollate, datctype
FROM pg_database
WHERE datname = 'db_1c';

Автоматизация обслуживания

Для поддержания производительности настрой регулярное обслуживание:

bash
#!/bin/bash
# Скрипт для ежедневного обслуживания PostgreSQL

# Анализ и очистка
psql -U postgres -d db_1c -c "VACUUM ANALYZE;"

# Резервное копирование
pg_dump -U postgres db_1c > /backup/db_1c_$(date +%Y%m%d).sql

# Проверка целостности
psql -U postgres -d db_1c -c "CHECKPOINT;"
Профессиональный совет: Настрой мониторинг PostgreSQL с помощью pgAdmin, Zabbix или Prometheus + Grafana. Отслеживай ключевые метрики: количество соединений, использование памяти, скорость выполнения запросов.

FAQ: Ответы на частые вопросы

Какая версия PostgreSQL лучше всего подходит для 1С?

Для 1С рекомендую PostgreSQL 13 или 14. Эти версии стабильны, хорошо оптимизированы и имеют длительную поддержку. Избегай самых свежих версий в production-среде.

Обязательно ли устанавливать расширение mchar?

Да, для корректной работы с русскими и другими многобайтовыми символами в 1С расширение mchar необходимо. Без него возможны ошибки сортировки и сравнения строк.

Как перенести существующую базу 1С на PostgreSQL?

Используй встроенные средства 1С: «Конфигуратор» → «Администрирование» → «Выгрузить информационную базу», затем создай новую базу на PostgreSQL и загрузи выгрузку. Для больших баз используй утилиты типа dtcopy.

Какие параметры PostgreSQL критичны для производительности 1С?

Наиболее важные: shared_buffers, work_mem, effective_cache_size, max_connections. Также важна правильная настройка autovacuum для своевременного обслуживания базы.

Итог: Ключевые шаги для успешной установки

  1. Установи PostgreSQL 13+ из официальных репозиториев
  2. Настрой postgresql.conf с оптимизированными параметрами для 1С
  3. Установи расширение mchar для работы с русскими символами
  4. Создай базу данных с локалью ru_RU.UTF-8
  5. Настрой пользователя и права для подключения 1С
  6. Протестируй подключение из 1С и проверь производительность
  7. Настрой мониторинг и бэкапы для стабильной работы

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

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