Как перенести нагруженную БД MySQL на другой сервер и держать её синхронизированной?
Здравствуйте.
Хочу перенести сайт на другой сервер. Файлы перенести не проблема, а с переносом базы данных есть проблема.
БД ~ 7 гб, свыше 20000000 записей. Пока делается бэкап, сливается rsync'ом, импортируется, в базе данных на старом сервере уже могут добавиться тысячи записей и часть записей модифицироваться. Есть ли какие-то инструменты для синхронизации БД, чтобы после обновления A-записи у доменного имени, данные в обоих базах были актуальны и в последствии отключить БД на старом сервере?
Проблема усугубляется ещё и тем, что старый сервер(FreeBSD 8.4) с довольно древним ПО и поставить туда какую-нибудь программу может быть проблематично из-за неразрешённых зависимостей.
Версия MySQL на старом сервере 5.1.68
Версия MySQL на новом сервере 5.5.45-37.4-log - Percona Server
С master-slave не будет проблем, когда часть данных будет добавляться на старом сервере, часть данных на новом, пока НС-ы будут обновлться? Может стоит использовать master-master репликацию?
Baldaris:
классическая master-master система не безопасна, если писать в оба инстанса.
Лучше заблокируйте старую базу и принудительно переведите всех на новую.
Наверное вопрос касался не теории, а прикладного ПО посредством которого можно зеркалировать БД в слейв, а потом переключить слейв в мастера, а старый мастер удалить.
ну так только недавно перетирали.
настраиваем репликацию, пока поднимается слейв из бэкапа мастер накапливает транзакции в логе. Когда слейв поднимется - данные засинхронизируются. в теории.
Алексей Ямщиков: проблем не будет, когда часть инсертов пойдёт на старый сервер, часть на новый, когда у кого-то быстрее обновится днс запись или в таком случае нужно настраивать, как master-master?
Baldaris: можно и мастер-мастер, но лучше на какое то время запретить запись в старую базу (включит глобал лок) и переключиться. Особенно если вы ей уже не будете пользоваться. У мастер-мастер могут быть проблемы. Ну и для начала настройте DNS так что бы было приемлемое время переключения.