Зеркальное отображение 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.

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