Клонирование виртуальной машины для добавления нового ведомого MySQL
Я нахожусь в процессе добавления нового ведомого к реплицированной установке MySQL. Я предлагаю следующий процесс:
- клонировать один из узлов в новую виртуальную машину
- начать без сети
- остановить MySQL
- изменить идентификатор сервера в my.cnf на новый идентификатор
- перезапустите MySQL и сеть
Должно ли это работать правильно? Или MySQL запутается, потому что раньше это был другой идентификатор сервера?
ОС: Ubuntu 10.10
Платформа VM: VMWare 5
MySQL: версия сервера: 5.1.49-1ubuntu8.1-log (Ubuntu)
1 ответ
Я не знаком с VMWare, но я знаком с выполнением этого процесса на произвольных логических томах. Во-первых, вы должны клонировать виртуальную машину таким образом, чтобы ваш снимок виртуальной машины копировал сервер в согласованном состоянии (например, моментальный снимок LV). Вы также должны иметь возможность получить текущие координаты репликации ведомого, когда вы начинаете копирование. Из-за этого потребуется следующий механизм:
- FLUSH TABLES С ЧИТАЮЩИМ ЗАМКОМ;
- ПОКАЗАТЬ СТАТУС РАБА а. Извлеките Exec_Master_Log_Pos и Relay_Master_Log_File из этого вывода, это ваши координаты, которые нужно использовать при настройке репликации на новом ведомом устройстве.
- - Начните создавать снимок
- РАЗБЛОКИРОВАТЬ СТОЛЫ;
Как только это будет сделано, и новый сервер будет построен из образа, вам нужно будет выполнить главный оператор 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