MySql перенести таблицу в 800 Гб

Есть сервер, на ходу 24/7,на ней крутиться есть нужная мне таблица таблица в 800 гб. Ее нужно перенести на новый сервер в связи с разработкой нового ПО.

Никогда такие обьемы не делал на ходу.

Идеи, написать процедуру в базе удаленной которая по лимиту будет потихоньку переносить удаленно данные в новую бд.

Сервер БД сделать mysql dump, архивация и передать на новую. Но тут может забиться канал сетевой и будут задержки открытия веб сайта.

На ларавель сделать job который будет в течение n времени переносить базу данных.

Как справится что-бы никому не было плохо?


Ответы (1 шт):

Автор решения: kodji

Выглядит как типичная задача на бинарную репликацию, поднимаете целевой сервер, текущий назначаете мастером, новый слейвом, на мастере ночью запрещаете запись, делаете бекап дампом, разрешаете запись, дамп разворачиваете на новом сервере, включаете репликацию с мастера на слейв, чтобы догнать хвосты, переключаете бекенд на новый сервер, как нагрузка съедет прекращаете репликацию, слейв меняете роль на мастер, старый мастер уничтожаете. Либо, если вам нужно писать в обе базы - можно попробовать мастер-мастер репликацию, но так будет часто ломаться если нагрузка внятная. Если дамп предварительно не накатывать а делать репликацию на голую базу - будет очень долго.

→ Ссылка