Многие компании постепенно переходят с Microsoft SQL Server на PostgreSQL для работы с 1С:Предприятие. Основными причинами являются отсутствие лицензионных ограничений, высокая производительность, стабильность работы под Linux и возможность размещения базы данных в облаке.
Платформа 1С:Предприятие полностью поддерживает PostgreSQL, поэтому при правильной миграции пользователи практически не замечают изменений. Особенно актуален такой переход при переносе инфраструктуры в облако, например на серверы Beget.
В этой статье рассмотрим полный процесс миграции базы 1С с Microsoft SQL Server на PostgreSQL под Linux с использованием облачной инфраструктуры Beget.
Преимущества PostgreSQL для 1С
- отсутствие стоимости лицензии СУБД;
- официальная поддержка платформой 1С;
- высокая производительность;
- стабильная работа под Linux;
- простое резервное копирование;
- удобная репликация;
- масштабируемость.
Когда стоит выполнять миграцию
Переход рекомендуется в следующих случаях:
- перенос сервера на Linux;
- переезд в облако;
- отказ от лицензий Microsoft SQL Server;
- увеличение объема базы;
- необходимость повышения отказоустойчивости.
Подготовка к миграции
Перед началом переноса необходимо:
- создать резервную копию базы;
- обновить конфигурацию 1С;
- проверить целостность базы;
- убедиться, что используется поддерживаемая версия PostgreSQL.
Для проверки версии платформы:
1cv8 --version
Создание резервной копии MS SQL
Перед миграцией обязательно создайте резервную копию базы данных.
Через SQL Server:
BACKUP DATABASE Accounting TO DISK='D:\Backup\Accounting.bak'
Либо средствами SQL Server Management Studio.
Выгрузка информационной базы 1С
Наиболее безопасный способ миграции — использование выгрузки в файл DT.
Через командную строку:
1cv8.exe DESIGNER ^ /S Server\SQLSERVER\Base ^ /DumpIB C:\Backup\Base.dt
После завершения убедитесь, что файл успешно создан.
Подготовка Linux-сервера
Обновите систему:
sudo apt update sudo apt upgrade
Для CentOS:
sudo dnf update
Установка PostgreSQL
Ubuntu:
sudo apt install postgresql postgresql-contrib
Проверка версии:
psql --version
Запуск сервиса:
sudo systemctl enable postgresql sudo systemctl start postgresql
Создание пользователя PostgreSQL
sudo -u postgres createuser 1cuser
Установить пароль:
sudo -u postgres psql
ALTER USER 1cuser WITH PASSWORD 'StrongPassword';
Создание базы данных
createdb -O 1cuser -E UTF8 Accounting
Либо:
CREATE DATABASE Accounting OWNER 1cuser ENCODING 'UTF8';
Настройка PostgreSQL для 1С
Откройте файл:
postgresql.conf
Рекомендуемые параметры:
shared_buffers = 2GB work_mem = 32MB maintenance_work_mem = 512MB effective_cache_size = 8GB max_connections = 300
После изменения:
sudo systemctl restart postgresql
Настройка доступа
Файл:
pg_hba.conf
Добавьте:
host all all 0.0.0.0/0 md5
И разрешите прослушивание:
listen_addresses='*'
Открытие порта PostgreSQL
sudo ufw allow 5432/tcp
Проверка:
ss -ltn
Восстановление базы в PostgreSQL
Создайте новую информационную базу на PostgreSQL.
Через командную строку:
1cv8 DESIGNER /RestoreIB /home/backup/Base.dt
Или через Конфигуратор:
Администрирование → Загрузить информационную базу
Создание новой базы в кластере 1С
Через rac:
rac infobase create
Или через консоль администрирования сервера 1С.
Укажите:
- сервер PostgreSQL;
- порт 5432;
- имя базы;
- пользователя;
- пароль.
Подключение к PostgreSQL
Проверка подключения:
psql -h localhost -U 1cuser Accounting
Если база открылась без ошибок — соединение успешно.
Проверка производительности
После миграции рекомендуется выполнить:
- тестирование пользователей;
- проверку журналов регистрации;
- проверку проведения документов;
- пересчет итогов.
Резервное копирование PostgreSQL
Создание резервной копии:
pg_dump -U 1cuser -F c Accounting > backup.dump
Восстановление:
pg_restore -d Accounting backup.dump
Настройка автозапуска резервного копирования
Пример cron:
0 2 * * * pg_dump -U 1cuser Accounting > /backup/db.sql
Миграция в облако Beget
При использовании облачной инфраструктуры Beget рекомендуется:
- создать облачный сервер с Linux;
- настроить PostgreSQL;
- открыть порт 5432 только для сервера 1С;
- использовать SSD-диски;
- включить автоматическое резервное копирование.
Если сервер 1С и PostgreSQL размещаются в одном облаке, задержки сети будут минимальными.
Типичные ошибки после миграции
Ошибка подключения к PostgreSQL
could not connect to server
Проверьте:
- службу PostgreSQL;
- порт 5432;
- настройки pg_hba.conf.
Ошибка авторизации
password authentication failed
Проверьте пользователя и пароль PostgreSQL.
Ошибка кодировки
database encoding mismatch
База должна использовать UTF-8.
Низкая производительность
Проверьте:
- shared_buffers;
- work_mem;
- индексы;
- VACUUM ANALYZE.
Оптимизация PostgreSQL после переноса
После миграции рекомендуется выполнить:
VACUUM ANALYZE;
Также полезно:
REINDEX DATABASE Accounting;
Это позволит обновить статистику и оптимизировать работу запросов.
Проверка журналов PostgreSQL
Просмотр логов:
journalctl -u postgresql
Или:
tail -f /var/log/postgresql/postgresql.log
Рекомендации по безопасной миграции
- выполняйте перенос в нерабочее время;
- обязательно создавайте резервные копии;
- используйте тестовый сервер перед переносом рабочей базы;
- проверяйте производительность после восстановления;
- не удаляйте старую базу до завершения тестирования.
Заключение
Миграция 1С:Предприятие с Microsoft SQL Server на PostgreSQL позволяет значительно снизить стоимость владения системой, повысить стабильность работы и использовать преимущества Linux-серверов и облачной инфраструктуры Beget.
При соблюдении правильной последовательности действий перенос проходит без потери данных. После восстановления базы рекомендуется протестировать работу пользователей, проверить журналы регистрации и оптимизировать PostgreSQL для достижения максимальной производительности.
