Клонирование виртуальной машины для добавления нового ведомого MySQL

Я нахожусь в процессе добавления нового ведомого к реплицированной установке MySQL. Я предлагаю следующий процесс:

  1. клонировать один из узлов в новую виртуальную машину
  2. начать без сети
  3. остановить MySQL
  4. изменить идентификатор сервера в my.cnf на новый идентификатор
  5. перезапустите MySQL и сеть

Должно ли это работать правильно? Или MySQL запутается, потому что раньше это был другой идентификатор сервера?

ОС: Ubuntu 10.10

Платформа VM: VMWare 5

MySQL: версия сервера: 5.1.49-1ubuntu8.1-log (Ubuntu)

1 ответ

Я не знаком с VMWare, но я знаком с выполнением этого процесса на произвольных логических томах. Во-первых, вы должны клонировать виртуальную машину таким образом, чтобы ваш снимок виртуальной машины копировал сервер в согласованном состоянии (например, моментальный снимок LV). Вы также должны иметь возможность получить текущие координаты репликации ведомого, когда вы начинаете копирование. Из-за этого потребуется следующий механизм:

  1. FLUSH TABLES С ЧИТАЮЩИМ ЗАМКОМ;
  2. ПОКАЗАТЬ СТАТУС РАБА а. Извлеките Exec_Master_Log_Pos и ​​Relay_Master_Log_File из этого вывода, это ваши координаты, которые нужно использовать при настройке репликации на новом ведомом устройстве.
  3. - Начните создавать снимок
  4. РАЗБЛОКИРОВАТЬ СТОЛЫ;

Как только это будет сделано, и новый сервер будет построен из образа, вам нужно будет выполнить главный оператор CHANGE на ведомом устройстве, чтобы обновить эти координаты binlog:

ИЗМЕНИТЬ MASTER TO MASTER_LOG_FILE="${Relay_Master_Log_File from 2a}", MASTER_LOG_POS=${Exec_Master_Log_Pos from 2a};

Этот метод будет работать с LV Snaphsot для примера. Некоторые инструменты, такие как hollandbackup, поддерживают этот стиль копирования LVM: http://wiki.hollandbackup.org/mysqllvm

Другие вопросы по тегам