Двусторонняя репликация Amazon RDS

У меня есть два rds с одинаковой структурой, каждый db обслуживает одно из двух приложений. Некоторые из таблиц используются первым приложением, некоторые другим. Я хочу настроить два способа репликации чтения/записи между двумя серверами. Я могу сделать это с помощью автономного mysql, установить репликацию таблицы (https://dev.mysql.com/doc/refman/5.7/en/replication-rules-table-options.html), но не могу найти ни одного варианта сделать это для rds


person usearch    schedule 17.03.2016    source источник


Ответы (1)


Вероятно, это то, что вы бы назвали действительно плохой идеей™.

RDS позволяет настроить экземпляр RDS в качестве подчиненного устройства другой машины.

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql_rds_set_external_master.html

Конечно, на той же странице...

Предупреждение

Не используйте mysql.rds_set_external_master для управления репликацией между двумя инстансами БД Amazon RDS.

... однако, похоже, это связано с тем, что вы не настраиваете экземпляр RDS таким образом, чтобы он был репликой другого экземпляра. Когда вы настраиваете реплику только для чтения, вы не используете это — RDS управляет всей конфигурацией репликации за вас.

mysql.rds_set_external_master() — это хранимая процедура, которая позволяет вам выполнить CHANGE MASTER TO..., поскольку в RDS у вас нет привилегии SUPER, и в противном случае вы не смогли бы это сделать.

Эта функция предназначена для горячей миграции с сервера MySQL без RDS на RDS путем репликации событий с внешнего мастера на RDS во время перехода.

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

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

Это почти наверняка неподдерживаемая конфигурация, но опять же, если есть способ сделать это, это будет путь. Неподдерживаемый не означает, что он не будет работать, но только то, что служба поддержки AWS вряд ли сможет оказать помощь, если она не будет работать.

Я упоминал, что это может быть плохой идеей?

person Michael - sqlbot    schedule 18.03.2016