powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Postgresql 9.4 логическая репликация через расширение pglogical
5 сообщений из 5, страница 1 из 1
Postgresql 9.4 логическая репликация через расширение pglogical
    #39996034
Growlert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всех приветствую!
Hello!
Есть два сервера с Postgresql 9.4 на борту. На обоих серверах установлено расширение pglogical_1.2.2 из исходников (все другие версии расширения не работают в указанной среде).

На сервере-исходнике были выполнены следующие команды:
CREATE EXTENSION pglogical_origin;
CREATE EXTENSION pglogical;
SELECT pglogical.create_node( node_name := 'provider2', dsn := 'host=ip_address port=5432 dbname=wb2' );
SELECT pglogical.replication_set_add_all_tables('default', ARRAY['public']);
select pglogical.create_replication_set(set_name := 'replication_all');
select pglogical.replication_set_add_all_sequences('default', ARRAY['public'], true);

На сервере-подписчике:
CREATE EXTENSION pglogical_origin;
CREATE EXTENSION pglogical;
SELECT pglogical.create_node(node_name := 'subscriber1',dsn := 'host=ip_address2 port=5432 dbname=wb2');
SELECT pglogical.create_subscription( subscription_name := 'subscription2',provider_dsn := 'host=ip_address port=5432 dbname=db_name', synchronize_structure := true, synchronize_data := true);

Через некоторое время все таблицы были среплицированы на сервере-подписчике. Операция UPDATE на случайной таблице и строке столбца сразу же реплицируется на второй сервер.
Проблема в том, что при добавлении нового столбца в таблицу, этот столбец не реплицируется.
У кого есть опыт в миграции постгреса с использованием данного расширения, это фича такая что столбцы новые не реплицируются или я что то пропустил в настройках серверов?
...
Рейтинг: 0 / 0
Postgresql 9.4 логическая репликация через расширение pglogical
    #39996038
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Growlert,

так и должно быть
структура таблицы фиксируется на момент создания подписки.

ddl и их последствия (в виде новых колонок) не реплицируются.

ps: не очень ясно зачем вам для миграции логическая репликация когда миграцию базы на новый сервер через физическую репликацию обычно делают.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Postgresql 9.4 логическая репликация через расширение pglogical
    #39996040
Growlert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за пояснения.
Я сейчас просто тестирую данное расширение, следующий этап - репликация между версиями постгреса 9.4 и 11 (или 12). А сам постгрес специальной сборки от 1С, поэтому пришлось из исходников ставить pglogical (готовый пакет не устанавливается).
...
Рейтинг: 0 / 0
Postgresql 9.4 логическая репликация через расширение pglogical
    #40003918
lex-sey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Growlert
Спасибо за пояснения.
Я сейчас просто тестирую данное расширение, следующий этап - репликация между версиями постгреса 9.4 и 11 (или 12). А сам постгрес специальной сборки от 1С, поэтому пришлось из исходников ставить pglogical (готовый пакет не устанавливается).

Я тоже тестировал миграцию c 9.5 на 12.
Совет: после репликации данных принудительно реплицируйте все сиквенсы и только потом переключайте приложения. Сиквенсы не реплицируются в реальном времени. И проверьте работу триггеров под нагрузкой при репликации.
...
Рейтинг: 0 / 0
Postgresql 9.4 логическая репликация через расширение pglogical
    #40003922
lex-sey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создание скрипта синхронизации сиквенсов.

echo "
SELECT STRING_AGG(FORMAT('select pglogical.synchronize_sequence (''%s'');', A.sequence_name), E'\n') AS SCRIPT
FROM
(
SELECT FORMAT('%s', sequence_name) AS sequence_name
FROM information_schema.sequences
ORDER BY sequence_name
) AS A;
" >> /tmp/sequence_resynk.sql

psql -U postgres DB_NAME -f /tmp/sequence_resynk.sql >> /tmp/sequence_DB_NAME.sql
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Postgresql 9.4 логическая репликация через расширение pglogical
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]