Переход с операционной системы Windows и СУБД MS SQL на Linux (например, CentOS или Astra Linux) и PostgreSQL — это важный шаг в оптимизации ИТ-инфраструктуры и импортозамещении. Рассмотрим подробно, как правильно осуществить этот процесс, какие инструменты использовать и на что обратить внимание, чтобы избежать потерь данных и падения производительности.
Разберем классический и наиболее распространенный способ миграции — использование файла выгрузки информационной базы (.dt). Основное предназначение формата .dt в системе 1С:Предприятие заключается именно в обеспечении независимости данных от конкретной СУБД. Это своего рода универсальный контейнер, который «схлопывает» структуру базы данных в платформонезависимый формат.
Процесс выглядит следующим образом:
.dt.Важный нюанс: Перед выгрузкой крайне рекомендуется выполнить операцию Тестирование и исправление (ТиИ). В MS SQL структура может «прощать» логические ошибки (например, битые ссылки или некорректные записи в таблицах), которые PostgreSQL может не принять при загрузке, что приведет к аварийному завершению процесса.
Проанализируем ситуацию, когда объем базы превышает 100–200 ГБ. В этом случае стандартная выгрузка через .dt может стать «бутылочным горлышком» по следующим причинам:
.dt потребляют огромный объем оперативной памяти на сервере приложений. При нехватке ресурсов процесс упадет с ошибкой Out of memory.Рассмотрим альтернативный метод минимизации простоя, предложенный опытными специалистами:
Backup/Restore)..dt и загрузим её в PostgreSQL. При этом основная рабочая база остается доступной для пользователей.В современных версиях платформы 1С появился более совершенный инструмент. Разберем его преимущества. Механизм Копирования базы данных позволяет передавать данные из одной СУБД в другую напрямую, минуя промежуточный файл .dt.
Этот способ надежнее, так как передача идет потоком. Чтобы воспользоваться им, в консоли администрирования кластера или через параметры запуска можно инициировать копирование, указав источник (MS SQL) и приемник (PostgreSQL). Это значительно снижает нагрузку на дисковую подсистему и риск повреждения файла архива.
Выясним, почему нельзя просто установить стандартный пакет PostgreSQL из репозитория CentOS. Для корректной работы 1С требуется специализированная сборка PostgreSQL. В ней должны быть наложены патчи, обеспечивающие правильную работу с блокировками 1С и корректную сортировку (ICU).
Основные моменты настройки среды:
initdb) обязательно должна быть установлена русская локаль ru_RU.UTF-8. Если этого не сделать, вы получите ошибки при поиске и сортировке данных в списках 1С.Сразу после загрузки базы в PostgreSQL вы можете заметить, что система работает медленнее, чем на MS SQL. Это происходит потому, что планировщик запросов PostgreSQL еще не имеет статистики о распределении данных. Разберем шаги по оптимизации:
# Примерные настройки для сервера с 32 ГБ RAM
shared_buffers = 8GB
temp_buffers = 256MB
work_mem = 64MB
maintenance_work_mem = 1GB
effective_cache_size = 24GB
autovacuum = on
Также в самой конфигурации 1С рекомендуется запустить Управление итогами и выполнить полный пересчет итогов для всех регистров. Это гарантирует корректность отображения остатков и ускорит работу отчетов сразу после миграции.
Подводя итог, можно сказать, что перенос через .dt — это легитимный и рабочий метод «комильфо», но он требует тщательной подготовки окружения PostgreSQL и обязательной пост-миграционной настройки производительности.