Копия базы данных 1С на репликах PostgresPRO — 10 апреля 2026 г. в 07:39:11.829
Копия базы данных 1С на репликах PostgresPRO Итак, давайте сначала определимся с целью. Цель: При наличии физической реплики (реплик) для отказоустойчивости (а мы с вами помним, что продуктивного сервера СУБД без реплик не бывает, иначе это мёртвый сервер и вопрос не в том - умрёт ли, а только в том – когда умрёт…) сделать распределение читающей нагрузки 1С на реплику с помощью механизма копии базы данных 1С. Что уже есть в части работы этого механизма копии с PostgreSQL? 1. Внутренняя репликация. Это когда мы просто обменом 1С периодически обновляем нужные нам данные из рабочей базы 1С в базу копию. Полюсы – кросСУБДшность, т.е. рабочая база может быть на любой СУБД и копия может быть на любой СУБД и при этом они не обязаны совпадать. Например, рабочая на MS SQL, а копия на PostgreSQL. Минусы – обмен происходит периодически, т.е. данные в копии могут серьёзно отставать. Скорость обмена не всегда удовлетворяет требованиям бизнеса. 2. Внешняя репликация с помощью расширения dbcopiesupdates. Если кратко, то это обмен между двумя базами PostgreSQL основанный на вычитке WAL (журнала предзаписи транзакций). Плюсы – большая скорость и отсутствие ненужных перезаписей объектов. Минусы – обмен происходит периодически, т.е. данные в копии могут серьёзно отставать, так же нужно сохранять весь WAL между периодами синхронизации. Общий «минус» обоих вариантов – необходимо иметь дополнительный сервер для копии базы данных, при том что у нас же уже есть реплика, а чаще всего их даже две, так как кластер обязан состоять из нечётного числа узлов (узел рефери это отдельная история и пока её унесём за рамки). Рассмотрим сам процесс создания такой копии базы данных в 1С и проверим работает ли это «чудо»: 1. Функции технического специалиста – Управление копиями базы данных. Нажимаем Добавить, Выбираем тип – Внешняя, Тип СУБД – PostgreSQL, Адрес - адрес сервера реплики, База данных – имя базы как у прода (тут как раз зарыта одна особенность), Пользователь и пароль на СУБД. (Рисунок 1) Поскольку это реплика, то в целом можно выбрать все метаданные, так как они в реальности там все есть. Поскольку метаданных много, то лучше снизу снять флажок «Обновлять информацию автоматически». Иначе колёсико ждуна будет почти вечно крутиться. 2. Нажимаем ОК и получаем предупреждение (Рисунок 5), где нажимаем «Сохранить как есть». Предупреждение мы как раз и получаем из-за того, что у нас на реплике полная копия прода и там есть запись на каком сервере 1С расположена наша база. 3. В итоге копия подключается с Состоянием – включена и Состоянием обновления – неактивно, но на это не обращаем внимание, так как на ИТС написано, что будет использоваться копия с состоянием Включена. Теперь одно из самых приятных – подключаем копию БД к отчёту без привлечения разработчиков 1С. Возьмём для примера типовой отчёт ERP: Валовая прибыль предприятия (Рисунок 2) 1. Идём в Настройки – Ещё – Настройки для технического специалиста – Дополнительные настройки 2. Включаем «Выводить копию базы данных» - Свойства – Включать в пользовательские настройки 3. Включаем «Использование копии базы данных» - Свойства – Включать в пользовательские настройки Ну и формируем отчёт, сначала на проде (Рисунок 3) затем на копии (Рисунок 4), как видно цифры совпали, что несомненно радует!)))) ❗️Механизм копии БД не работает с расширенными данными!!! Это крайне важно, так как мода на расширения, расширяющие данные сейчас прям повальная... В ближайших релизах это станет доступно в версии PGRPOEnterprise. Отдельное спасибо Андрею и Роману из Постгресс Профессиональный за проделанную работу и терпение!

