Выбор таблиц для репликации с использованием SQL-команд управления публикацией
Последовательность выполнения
-
Зайдите в клиентский терминал postgresql, в БД источника репликации пользователем с правами на создание публикации.
-
Создайте публикацию:
CREATE PUBLICATION <имя_публикации> FOR ALL TABLES, чтобы реплицировать все таблицы, илиCREATE PUBLICATION <имя_публикации> FOR TABLE <имя_таблицы1>, <имя_таблицы2>для репликации отдельных таблиц.Внимание!Команда
CREATE PUBLICATIONработает с DDL и DML (INSERT,UPDATE,DELETE) операциями (подробнее в документации PostgreSQL в разделе CREATE PUBLICATION). Имя публикации должно отличаться от названия любой существующей публикации в текущей базе данных. -
Пропишите в клиентском терминале postgresql, в БД источника
REPLICA IDENTITY FULL, если нужно реплицировать таблицу без первичного ключа.примечаниеВыбрать таблицы для репликации также нужно в визуальном редакторе маппинга (подробнее в «Руководстве пользователя интерфейса консоли управления», разделе «Настройка маппинга»).
Если не все изменения в БД источника должны попадать в базу данных приемника, то есть предполагается фильтрация с помощью маппинга, то для достижения лучшей производительности, рекомендуется поместить таблицы из маппинга в публикацию.
-
Обновите публикацию для репликации конкретных таблиц после обновления схемы, в которую входят выбранные таблицы. Для этого создайте публикацию:
ALTER PUBLICATION <имя_публикации> ADD TABLE <имя_таблицы1>, <имя_таблицы2>;или удалите публикацию командойDROP PUBLICATION <имя_публикации>и пропишите командуCREATE PUBLICATIONдля этих таблиц заново.примечаниеПри добавлении новой таблицы в маппинг, также добавьте эту таблицу в публикацию командой
ALTER PUBLICATION.
Результат
Выбранные таблицы отображаются в визуальном редакторе маппинга.