У меня есть 3 сервера apache2 / tomcat в настройке с балансировкой нагрузки. Каждый сервер tomcat подключается к базе данных MySQL v5.0 (все 3 используют ее совместно).
Я создал в той же сети полусинхронную настройку MySQL v5.5 (1 главный 2 подчиненных), все они работают и содержат ту же схему БД, что и БД v5.0, но без данных.
Мне нужно перенести все данные из старой БД в новый Мастер, и серверы tomcat используют новый URL-адрес jdbc для подключения к настроенной полусинхронной БД.
Есть ли способ сделать это без остановки веб-серверов? В основном так ...
Переведите 2 веб-сервера в режим обслуживания и направьте весь трафик на 1 веб-сервер. Затем я могу изменить настройки пула соединений на этих 2. Можно ли выполнить «FLUSH TABLES WITH READ LOCK», чтобы выполнить mysqldump, а затем восстановить данные на главном сервере semisync, а затем, как только это будет сделано, я включаю 2 tomcats ( с обновленными настройками пула соединений) принимать входящий трафик?
Нет необходимости настраивать репликацию MySQL на разных узлах, а затем переносить данные. У Percona есть отличный инструмент под названием Xtrabackup который можно использовать для настроить ведомое устройство для репликации практически без простоев. Попробуйте.