Синхронизация транзакций между базами данных в PostgreSQL с использованием dblink - PullRequest
1 голос
/ 18 января 2012

Я хотел бы синхронизировать набор таблиц между двумя базами данных, прозрачно, без изменений кода приложения. Моя идея заключается в создании триггеров при вставке, обновлении и удалении в исходных таблицах базы данных для репликации данных с использованием dblink на dest. таблицы базы данных без проблем.

Проблема в том, что изменения в исходных таблицах всегда выполняются внутри транзакции. Триггеры автоматически повторяют изменения в dest. таблицы, но если исходная транзакция откатывается по адресу dest. Таблицы изменений не являются.

Есть ли способ автоматической синхронизации начала транзакции и фиксации / отката между двумя базами данных? Поведение, подобное триггеру, было бы идеальным.

Ответы [ 2 ]

1 голос
/ 05 сентября 2013

Когда выходит 9.3, проверьте http://www.postgresql.org/docs/9.3/static/postgres-fdw.html. Вы можете откатить транзакции в иностранных базах данных.

1 голос
/ 18 января 2012

Да, это возможно из веков - используя Slony-I или другую репликацию на основе триггера.

Обновления строк записываются в специальные таблицы на стороне «master» и асинхронно воспроизводятся на стороне «slave».

Внешняя программа / демон используется для синхронизации изменений.

См. http://www.postgresql.org/docs/current/static/different-replication-solutions.html и http://wiki.postgresql.org/wiki/Replication,_Clustering,_and_Connection_Pooling#Replication для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...