1️⃣🔤 🔤🔤🔤 Копия базы данных 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.
Отдельное спасибо Андрею и Роману из Постгресс Профессиональный за проделанную работу и терпение!
Напоминаю про канал в MAX, мало ли...
Post #59
3.77K





- 🔥 17
- 👍 11
- ❤ 6
- 😱 1