Репликация нескольких баз и таблиц с одинаковыми названиями в одну объединяющую.

Вроде бы так не должно работать. Но попробовал. И оно не работает.
К примеру, есть три сервера
Serv1, Serv2, Serv3
К примеру, на каждом сервере есть база PostgreSQL15 с одинаковыми названиями
Baza0
К примеру, в каждой базе по одной таблице
Table0
Но данные везде разные. Туда падают сведения по каким-то объектам, которые не пересекаются.
- Создаём новый сервер Serv99 и такую же базу Baza0 и такую же по структуре таблицу Table 0.
Хотим туда собрать все данные из всех баз Baza0 со всех серверов.
- На каждом из трёх серверов создаём публикацию для базы Baza0.
- На сервере Serv99 создаём три подписки:
18681 | 18615 | baza0_sub_serv1 | user=postgres dbname=Baza0 host=Serv1 | baza0_sub_serv1 | { baza0_pub_serv1}
18682 | 18615 | baza0_sub_serv2 | user=postgres dbname= Baza0 host=Serv2 | baza0_sub_serv2 | { baza0_pub_serv2}
18683 | 18615 | baza0_sub_serv3 | user=postgres dbname= Baza0 host=Serv3 | baza0_sub_serv3 | { baza0_pub_serv3}
Ошибок вроде нет, но пишет только первая подписка.
И информации не могу найти как должно быть в таком случае.

Сразу скажу, что структуру с одинаковыми названиями баз никто не будет переделывать, потому что серверов не 3, а 333.

Сначала начал прорабатывать репликацию так, чтобы каждая писала в свою базу.
Baza0 с сервера Serv1 в базу Baza1 сервера Serv99
Baza0 с сервера Serv2 в базу Baza2 сервера Serv99
Baza0 с сервера Serv3 в базу Baza3 сервера Serv99
но логическая репликация не может писать в базу с другим названием.
Или есть нюансы?

Сейчас пытаюсь проработать такой подход:
На сервере Serv1 таблица Table0 реплицируется/копируется в таблицу Table1, а потом Table1 реплицируется на сервер Sev99.
На сервере Serv2 таблица Table0 реплицируется/копируется в таблицу Table2, а потом Table2 реплицируется на сервер Sev99.
На сервере Serv3 таблица Table0 реплицируется/копируется в таблицу Table3, а потом Table3 реплицируется на сервер Sev99.
Но опять же логическая репликация тут не сработает.
Триггер применять неохота.

Может быть у кого-то был опыт с красивым подходом?
Или хотя пните в сторону красивого решения?

Back to top

(С) Виктор Вислобоков, 2008-2023