MySql перенести таблицу в 800 Гб
Есть сервер, на ходу 24/7,на ней крутиться есть нужная мне таблица таблица в 800 гб. Ее нужно перенести на новый сервер в связи с разработкой нового ПО.
Никогда такие обьемы не делал на ходу.
Идеи, написать процедуру в базе удаленной которая по лимиту будет потихоньку переносить удаленно данные в новую бд.
Сервер БД сделать mysql dump, архивация и передать на новую. Но тут может забиться канал сетевой и будут задержки открытия веб сайта.
На ларавель сделать job который будет в течение n времени переносить базу данных.
Как справится что-бы никому не было плохо?
Ответы (1 шт):
Выглядит как типичная задача на бинарную репликацию, поднимаете целевой сервер, текущий назначаете мастером, новый слейвом, на мастере ночью запрещаете запись, делаете бекап дампом, разрешаете запись, дамп разворачиваете на новом сервере, включаете репликацию с мастера на слейв, чтобы догнать хвосты, переключаете бекенд на новый сервер, как нагрузка съедет прекращаете репликацию, слейв меняете роль на мастер, старый мастер уничтожаете. Либо, если вам нужно писать в обе базы - можно попробовать мастер-мастер репликацию, но так будет часто ломаться если нагрузка внятная. Если дамп предварительно не накатывать а делать репликацию на голую базу - будет очень долго.