Зеркальное отображение MySQL сервера с другой конфигурацией
Я должен перенести сервер MySQL в другой центр обработки данных, поэтому я хотел бы создать еще один подчиненный сервер MySQL в новом контроллере домена, а затем повысить его до мастер-уровня. Для этого я ранее использовал снимки 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, а затем изменить их, как только новый сервер будет переведен в режим master - меньше простоев, но я не уверен, будет ли это работать?
Спасибо
С уважением
3 ответа
"около 8000 баз данных, поэтому мне придется отключить сервер на пару часов".
Есть ли уже другой подчиненный сервер, который вы можете снять с производства и использовать в качестве временного мастера?
Является ли проблема с mysqldump снижением производительности или блокировкой (в последнем случае --single-транзакция --master-data может быть жизнеспособной. Кстати, никогда не полагайтесь на --triggers или --routines по умолчанию!)
Я бы начал с снимка LVM и оригинальных настроек. Подними новый сервер. Закрой это. Убедитесь, что он вышел чисто. Удалите файл журнала, внесите изменения в конфигурацию и перезапустите. Mysql должен создавать новые, и все готово.
Более подробное объяснение здесь.
Вы также можете прочитать Как рассчитать хороший размер файла журнала Innodb /
Я думаю, что последнее предложение звучит как лучшее, о каком размере вы говорите?
Казалось бы, довольно просто создать дамп innobackupex FULL и перенести его в новый дата-центр, а затем запустить новый сервер с дампом xtrabackup, но со старыми настройками innodb.
Как только он будет запущен в режиме только для чтения, вы можете затем выполнить его, чтобы предоставить файл SQL, который вы можете импортировать в любое место.
Затем вы можете перезагрузить файл дампа в новый экземпляр mysql с новыми настройками innodb.