Можете ли вы реплицировать определенную базу данных или таблицу с помощью Amazon RDS

Мы используем Amazon RDS, и у нас есть MASTER, реплицирующийся в SLAVE.

Мы хотим создать новое подчиненное устройство, которое будет реплицировать только определенные базы данных или таблицы из мастера.

По умолчанию RDS просто реплицирует все основные базы данных на подчиненные. Но мы хотим делать только конкретные таблицы. Я знаю, что это возможно в MySQL в целом, но я не уверен в RDS, и я не могу найти ответ нигде.

Эти настройки существуют в MySQL, я не вижу их в настройках настраиваемых параметров для RDS, если я что-то не хватает.

--replicate-ignore-db=db_name
--replicate-ignore-table=db_name.tbl_name

Ответы

Ответ 1

Это невозможно с помощью RDS.

Вы можете "подделать" это путем преобразования таблиц, которые вы не хотите реплицировать в Engine = Blackhole, однако вам нужно отредактировать свою группу параметров и установить "только для чтения" на 0 вместо значения по умолчанию "{TrueIfReplica }".

В качестве альтернативы вам нужно будет запустить собственный подчиненный сервер на EC2 с сервером RDS в качестве мастера (это возможно, если вы используете MySQL 5.6 на RDS, но не 5.5 или ниже), однако очень сложно установить вверх.

Ответ 2

Как сказала Кэт, нет, они не предоставляют эту функцию.

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

Обход, который я рассматриваю, заключается в создании экземпляра MySQL на базе EC2 между ведущим и подчиненным в цепочке репликации (с использованием функции внешней репликации) с применением этих фильтров, а черная дыра предварительно настроенный для всех таблиц, просто чтобы все было в порядке.

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