Как организовать восстановление N баз на одном сервере mysql за приемлемое время?
Коллеги, всем доброго времени суток.
Пытаюсь понять, как решить проблему, но не хватает опыта с мускулем на фильтрацию информации из поисковиков.
Дано:
1. Бекап БД (файловый), в развернутом виде весом в ~30Gb. (Сейчас имеется куча инстансов в виртуалках, куда этот бекап восстанавливается простым копированием, такая схема перестала устраивать очень сильно)
2. Есть большой толстый многопользовательский сервант, куда нужно восстанавливать данный бекап, в несколько баз данных, то есть один бекап восстановить в 5-10 БД.
Собственно сам вопрос: как это можно сделать за приемлемое время?
Если идти путем SQL-портянки, то или я чего-то не знаю, или время не приемлемое.
Если идти путем восстановления файлов (это для меня скрытая тема:), то не ясно как подсовывать, и как сократить количество перезагрузок сервиса (читай как: в рабочее время, так как примерно треть запросов на восстановление будет приходится на рабочее время. ), так как там достаточно много народа будет работать.
shagguboy Репликация, я думаю это будет не приемлемо по времени. То есть по сути надо будет отреплицировать порядка 300Gb (бекап не инкрементальный, так как мы перекраиваем базу и минифицируем ее, требование 152ФЗ).
Как через xtrabackup восстановить один бекап базы (скажем base1) в базы base1_user1, base1_user2 и тд. И при это, так же, не передергивать сервер, если скажем надо будет сделать base_userX в рабочее время.
Konstantin Rudenkov: ну тогда единственное что могу предложить это держать на готове еще десяток баз которые поддерживать репликацией. по необходимости переименовывать.
всё остальное сводиться либо к поднятию бэкапа, пусть и многопоточному и сжатому.
shagguboy: Думаю не понадобиться) Спасибо за участие.
Мы хотим попробовать решить проблему отталкивая не от БД, а от программистов. Выяснилось, что накатка миграций на нее очень редкая и ее можно хорошо формализировать. Соответсвенно база только одна и ее обновлять нет проблемы.
Есть еще куча мелких баз, но с ними чуть проще, мы их разнесем в докеры и монтировать volume. А за счет consul мы получим всегда актуальную конфигурационную информацию.