Назад | Перейти на главную страницу

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

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

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

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

ОС: Ubuntu 10.10

Платформа виртуальной машины: VMWare 5

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

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

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

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

ИЗМЕНИТЬ МАСТЕРА НА MASTER_LOG_FILE = "$ {Relay_Master_Log_File из 2a}", MASTER_LOG_POS = $ {Exec_Master_Log_Pos из 2a};

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