Как повторить игнорируемые таблицы - PullRequest
0 голосов
/ 27 марта 2019

В настоящее время я думаю о следующей проблеме:

Заказчик настроил простую репликацию master / slave между двумя системами mariaDB.По неизвестным причинам они установили флаг «Replicate_Wild_Ignore_Table», чтобы пропустить «logdb.%».Очевидно, что они решили пропустить пропуск этой базы данных и хотят, чтобы logdb снова был включен в репликацию.

Мне любопытно, можно ли как-то убрать этот флаг и сделать так, чтобы рассматриваемая база данных былареплицируется как остальное или нет способа обойти процедуру «остановить ведомого, мастера дампа, импортировать дамп, воссоздать репликацию на основе текущего logpos, запустить ведомого»?

1 Ответ

0 голосов
/ 27 марта 2019

Вы не можете предполагать, что мастер по-прежнему имеет все соответствующие binlogs, которые когда-то содержали обновления таблиц logdb.%. То есть, даже если бы вы могли повторно применить эти обновления, у вас достаточно истории, чтобы учесть все изменения в таблицах?

Еще один риск - если вы используете репликацию на основе операторов, если когда-либо существовали операторы, которые ссылались как на таблицу в logdb.%, Так и на таблицу в другой базе данных, фильтр репликации пропустил этот оператор. Так, например:

INSERT INTO mydb.mytable SELECT * FROM logdb.othertable;

Поэтому даже таблицы, которые не в logdb.% Могут быть скомпрометированы. Дело в том, что вы точно не знаете.

Суть в том, что вам определенно следует повторно инициализировать реплику сейчас, сделав текущую резервную копию мастера, и избегать использования фильтров репликации в будущем.

Если вы используете таблицы InnoDB, вы можете рассмотреть возможность использования Percona XtraBackup для упрощения процесса. Смотри https://www.percona.com/doc/percona-xtrabackup/2.3/howtos/setting_up_replication.html

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