В настоящее время у меня есть проект, основанный на PostgreSQL 8.1. Однако некоторая обработка данных должна происходить на сервере, для которого последняя версия 7.4 является последней (пока только официальные пакеты через yum
можно там использовать).
Я хотел бы иметь возможность разделить обработку, чтобы данные, для которых MySQL работает лучше, можно было обрабатывать, разговаривая с базой данных MySQL, а данные, для которых PostgreSQL лучше, можно было обрабатывать там.
Я также хочу иметь полностью реплицированную среду в двух разных средах РСУБД для избыточности.
Я нашел пару статей о том, как выполнять кластеризацию или затенение внутри MySQL (например, Вот), и я прочитал MySQL репликация главу.
Мне интересно, есть ли способ (желательно «хороший»!) «Подписаться» на базу данных MySQL из PostgreSQL и на базу данных PostgreSQL из MySQL.
Обновить -
Я не прочь написать механизм сопряжения сам и сделаю это, если это необходимо; просто надеюсь, что что-то уже существует, что справится с этим за меня :)
Хотя в большинстве СУБД есть какая-то встроенная поддержка репликации (как вы нашли для MySQL и PostgreSQL), они, AFAIK, всегда предназначены для репликации в другие экземпляры той же СУБД.
Я не знаю ни одной СУБД, чья поддержка репликации может реплицироваться на другие СУБД. Причина, вероятно, в том, что репликация на разные СУБД - это проблема, существенно отличающаяся от репликации на одну и ту же СУБД: многие концепции (триггеры, ограничения, табличные пространства и т. Д.) Будут разными, и для каждой из них должно быть какое-то решение относительно если / как эти вещи будут обрабатываться при репликации.
Поэтому я считаю, что вам лучше всего будет использовать какой-то инструмент миграции / переноса данных и сценарий репликации. Вероятно, это потребует временного отключения баз данных для переводов. Кроме того, вероятно, будет довольно сложно выполнить «двунаправленную» синхронизацию, поэтому вы можете подумать, сможете ли вы обойтись без этого.
В качестве альтернативы вы можете попробовать создать какое-то индивидуальное решение, например реплицируйте только некоторые таблицы, так что для данной таблицы существует только одна «главная» БД.
Извините, что разочаровал вас, но я боюсь, что нет общего решения репликации, аналогичного тому, что вы ищете, поэтому вам придется использовать другой подход.