Я получил производственный сервер базы данных MySQL Ubuntu 10.04, где общий размер базы данных составляет 260 ГБ, а размер корневого раздела составляет 300 ГБ, где хранится БД, по сути, это означает, что около 96% / заполнено, и нет места для хранения дампа / резервной копии и т. д. Никакой другой диск не подключен к серверу на данный момент.
Моя задача - перенести эту базу данных на другой сервер, расположенный в другом центре данных. Вопрос в том, как сделать это эффективно с минимальным временем простоя?
Я думаю в строке:
- Просьба подключить дополнительный диск к серверу и создать дамп на этом диске. [РЕДАКТИРОВАТЬ: Это не возможно сейчас.]
- Перенесите дамп на новый сервер, восстановите его и сделайте новый сервер подчиненным существующему для синхронизации данных
- Когда миграция необходима, прервите репликацию, обновите ведомый конфиг, чтобы он принимал запросы на чтение / запись, и делайте старый сервер доступным только для чтения, чтобы он не принимал никаких запросов на запись и не велел разработчикам приложений обновить там конфиг с новым IP-адресом для базы данных.
Каковы ваши предложения по улучшению этого или любого другого альтернативного подхода к этой задаче?
Вывод и восстановление базы данных такого размера займет несколько часов. Я бы, в зависимости от версии mysql, пока номер версии увеличивается, и нет скачков в основной номер ревизии. Вы должны иметь возможность взять необработанные файлы базы данных в / var / lib / mysql и поместить их на новый сервер, установить разрешения и запустить сервер с ключом --skip-grant-tables. Добавьте необходимые гранты для пользователей, отражающих новый IP-адрес, а затем перезапустите в обычном режиме.
Я бы обратился к размеру вашей базы данных, так как она слишком велика, чтобы быть эффективной.
источник
Вы можете выполнить следующие шаги, чтобы перенести эту огромную базу данных InnoDB.
Эта задача займет несколько часов. Чтобы минимизировать влияние сценария hotcopy на работающий сервер, установите для него низкий приоритет с помощью renice
$ renice -n 5 -p <SCRIPT-PID>
Вы можете испытывать медлительность во время этого процесса, но определенно нет простоя. Percona XtraBackup создаст горячую копию, которая быстрее и требует меньше ресурсов по сравнению с mysqldump. Это идеально подходит для огромной базы данных InnoDB.
В зависимости от моделей использования и статистики вы можете запустить этот процесс, когда на сервере минимальный трафик. Возможно, делать это на выходных - хорошая идея? Выше приведен лишь набросок процесса. Возможно, вам придется ознакомиться с документацией по Percona XtraBackup и SSHFS.
источник
Вы можете просто сбросить базу данных прямо на удаленный сервер ...
... SQL должен хорошо сжиматься, поэтому вы должны сделать это намного быстрее с помощью одной из этих опций, хотя это также будет зависеть от объема ОЗУ, который у вас есть в коробке ...
источник