Многие компании постепенно переходят с 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 для достижения максимальной производительности.