Затенение MySQL и PostgreSQL друг другу

У меня есть проект, в настоящее время основанный на PostgreSQL 8.1. Однако некоторая обработка данных для этого должна выполняться на сервере, для которого 7.4 является последней версией (на данный момент только официальные пакеты через yum можно использовать там).

То, что я хотел бы сделать, это разделить обработку так, чтобы данные, для которых MySQL работает лучше, могли работать с базой данных MySQL, в то время как данные, для которых PostgreSQL лучше, могут там обрабатываться.

Я также хочу иметь полностью реплицированную среду в двух разных средах СУБД для обеспечения избыточности.

Я нашел пару статей о том, как выполнять кластеризацию или теневое копирование в MySQL (например, здесь), и я прочитал главу о репликации MySQL.

Мне интересно, есть ли способ (желательно "хороший"!) "Подписаться" на базу данных MySQL от PostgreSQL и на базу данных PostgreSQL от MySQL.

Обновление -
Я не против написания механизма сопряжения сам, и буду, если это то, что должно быть сделано; просто надеясь, что что-то уже существует, чтобы справиться с этим для меня

1 ответ

Решение

Хотя большинство СУБД имеют какую-то встроенную поддержку репликации (как вы обнаружили для MySQL и PostgreSQL), они, AFAIK, всегда для репликации на другие экземпляры одной и той же СУБД.

Я не знаю ни одной СУБД, чья поддержка репликации может реплицироваться на другие СУБД. Причина, вероятно, заключается в том, что репликация в разных СУБД - это проблема, существенно отличающаяся от репликации в одну и ту же СУБД: многие понятия (триггеры, ограничения, табличные пространства и т. Д.) Будут разными, и для каждого из них должно быть определенное решение относительно если / как эти вещи будут рассматриваться при репликации.

Поэтому я считаю, что лучшим вариантом будет использование какого-либо инструмента переноса / переноса данных и сценария репликации. Это, вероятно, повлечет за собой временное закрытие баз данных для передач. Также, вероятно, будет довольно сложно выполнить "двунаправленную" синхронизацию, поэтому вы можете подумать, можете ли вы обойтись без этого.

В качестве альтернативы вы можете попытаться создать какое-то пользовательское решение, например, только реплицировать несколько таблиц, так что для данной таблицы есть только одна "основная" БД.

Извините, что разочаровал вас, но я боюсь, что нет общего решения для репликации в соответствии с тем, что вы ищете, поэтому вам придется использовать другой подход.

Другие вопросы по тегам