При администрировании серверной инфраструктуры 1С:Предприятия нередко возникает потребность снизить нагрузку на текущее оборудование или оптимизировать затраты на лицензирование. В такой ситуации системные администраторы часто рассматривают добавление второго сервера СУБД другого типа — например, бесплатного PostgreSQL к уже работающему коммерческому Microsoft SQL Server. Разберем детально, как платформа 1С поддерживает одновременную работу с разными типами СУБД, какие архитектурные ограничения накладывает выбор операционной системы и с какими трудностями можно столкнуться при практической реализации такой схемы.
Платформа 1С:Предприятие 8 изначально проектировалась с высоким уровнем абстракции от используемой системы управления базами данных. Сервер приложений берет на себя трансляцию запросов встроенного языка 1С в диалект конкретной СУБД, управляет собственным объектным кэшем и блокировками.
Параметры подключения к серверу баз данных задаются не глобально для всего кластера, а индивидуально в свойствах каждой информационной базы. При создании или редактировании информационной базы через консоль администрирования кластера (утилиту ras или оснастку MMC) указываются следующие параметры:
MS SQL Server, PostgreSQL, IBM DB2, Oracle Database).Таким образом, кластер серверов 1С может без каких-либо конфликтов обслуживать часть информационных баз на MS SQL Server, а другую часть — на PostgreSQL. Все рабочие процессы кластера (rphost) взаимодействуют с соответствующей СУБД через стандартные клиентские библиотеки.
Однако важно помнить о ключевом архитектурном правиле: одну информационную базу нельзя распределить («размазать») по двум разным СУБД. Таблицы одной и той же информационной базы всегда целиком располагаются внутри одного сервера управления базами данных. Добавление второго сервера СУБД позволяет разгрузить инфраструктуру исключительно за счет физического переноса отдельных баз (например, баз разработки, тестирования, архивных или вспомогательных конфигураций) на новую площадку.
Возможность совместной работы с разнородными СУБД напрямую зависит от того, под управлением какой операционной системы запущен сам кластер серверов 1С:Предприятия.
Проанализируем доступные связки операционных систем и СУБД:
COM-соединений, а аутентификация пользователей строится по протоколу Kerberos.Следовательно, если планируется сохранить рабочую базу на MS SQL Server и добавить базы на PostgreSQL, то основной сервер приложений 1С обязан оставаться под управлением операционной системы Windows.
Если принято решение о добавлении сервера PostgreSQL, необходимо учитывать ряд важных технологических нюансов:
autovacuum, регулярно проводить актуализацию статистик (ANALYZE) и перестроение индексов (REINDEX). Без правильной настройки таблицы базы данных начинают раздуваться, а оптимизатор запросов СУБД начинает строить неоптимальные планы выполнения.Прямой перенос файлов баз данных (дампов на уровне СУБД) между MS SQL и PostgreSQL технически невозможен из-за принципиальной разницы форматов хранения данных и внутреннего устройства таблиц.
Рассмотрим способы миграции информационных баз с MS SQL на PostgreSQL:
.dt.ВыгрузкаЗагрузкаДанныхXML, которая выгружает все объекты метаданных и их табличные части по частям, позволяя перенести информацию между идентичными конфигурациями любого размера.ПланыОбмена.УстановитьГлавныйУзел(Неопределено).Разберем еще один критически важный аспект при подключении второго сервера СУБД — сетевую инфраструктуру и нагрузку на сервер приложений.
Объем сетевого трафика между процессами сервера 1С (rphost) и сервером СУБД в десятки раз превышает трафик между клиентом 1С и кластером серверов. При выносе PostgreSQL на отдельный физический компьютер обязательно необходимо обеспечить сетевое соединение с минимальным временем отклика (ping менее 1 мс) и пропускной способностью не ниже 1 Гбит/с (рекомендуется 10 Гбит/с).
Также важно понимать: если производительность системы страдает из-за нехватки вычислительных ресурсов (процессора и оперативной памяти) на самом сервере 1С:Предприятия, то появление второй СУБД не решит проблему. Нагрузка на сервер приложений останется прежней либо даже возрастет из-за параллельного взаимодействия с двумя различными драйверами СУБД.
Совместное использование MS SQL Server и PostgreSQL в рамках одного кластера 1С — полностью штатная и поддерживаемая платформой конфигурация при соблюдении следующих условий: