Мне нужно перенести сервер MySQL в другой центр обработки данных, поэтому я хотел бы создать еще один подчиненный сервер MySQL в новом DC, а затем продвигать его к мастеру позже. Ранее для этой цели я использовал снимки LVM и Percona XtraBackup. Однако на этот раз я оптимизировал файл конфигурации MySQL, что не позволяет мне использовать эти методы.
Old server (backup):
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
New server (restore):
innodb_log_file_size = 512M
innodb_log_files_in_group = 2
Сценарий XtraBackup и моментальные снимки LVM копируют всю структуру каталогов, поэтому сервер MySQL не запускается из-за другого размера журналов InnoDB.
Есть ли способ избежать простоя в этом случае? Я не могу использовать mysqldumps, потому что существует около 8000 баз данных. В таком случае мне пришлось бы отключить сервер на пару часов.
Я также думал использовать старые настройки с XtraBackup, а затем изменить их, как только новый сервер будет повышен до главного - меньше простоев, но я не уверен, сработает ли это?
Спасибо
С уважением
«около 8000 баз данных, поэтому мне пришлось бы отключить сервер на пару часов».
Есть ли уже другой подчиненный сервер, который вы можете снять с производства и использовать в качестве временного главного?
Проблема с mysqldump - это снижение производительности или блокировка (в последнем случае --single-transaction --master-data может быть жизнеспособным. Кстати, никогда не полагайтесь на --triggers или --routines по умолчанию!)
Я бы начал со снимка LVM и исходных настроек. Поднимите новый сервер. Закрой это. Убедитесь, что он вышел чисто. Переместите файл журнала в сторону, внесите изменения в конфигурацию и перезапустите. Mysql должен создать новые, и все готово.
Более подробное объяснение Вот.
Вы также можете прочитать Как рассчитать правильный размер файла журнала Innodb /
Я думаю, что последнее предложение звучит как лучший, о каком общем размере вы говорите?
Казалось бы, довольно просто сделать полный дамп innobackupex и передать его в новый центр обработки данных, а затем запустить новый сервер с помощью дампа xtrabackup, но со старыми настройками innodb.
После того, как он будет запущен в режиме только для чтения, вы можете использовать mysqldump, чтобы предоставить файл SQL, который вы можете импортировать куда угодно.
Затем вы можете перезагрузить файл дампа в новый экземпляр mysql с новыми настройками innodb.