Как настроить подчиненную репликацию базы данных mysql для разработки? - PullRequest
1 голос
/ 12 февраля 2020

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

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

Мое требование:

  • Все изменения в ведомой базе данных могут быть отменены с помощью простой команды.

  • Репликация продолжает работать.

Ответы [ 2 ]

0 голосов
/ 12 февраля 2020

Одним из методов является использование снимков файловой системы LVM. Перед началом тестирования:

  1. Остановите репликацию.
  2. Сделайте снимок LVM.
  3. Сделайте ваши тесты. Репликация все еще отключена, но данные обновлены

После завершения sh тестирования:

  1. Остановите mysqld.
  2. Восстановите снимок. Это вернет все файлы в состояние, в котором они находились в момент создания снимка LVM выше.
  3. Запустите mysqld и запустите репликацию. Необходимо будет отследить и применить все изменения, так как вы остановили репликацию перед тестированием. Это займет некоторое время, в зависимости от того, сколько изменений произошло в вашей основной базе данных.

См. https://www.tecmint.com/take-snapshot-of-logical-volume-and-restore-in-lvm/ для хорошего руководства по использованию снимков LVM.

Этот метод работает, только если ваш экземпляр базы данных разработки находится на Linux.

0 голосов
/ 12 февраля 2020

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

In таким образом, вставки, исходящие от мастера, не будут sh.

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