Сердце может прибавить ума, но ум не может прибавить сердца (А. Франс).

Как перенести базу данных MySQL между двумя серверами?

3 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
4 апреля 2019
Как перенести базу данных MySQL между двумя серверами?
Миграция базы данных MySQL обычно требует всего лишь нескольких простых шагов, но может занять довольно много времени, в зависимости от объема данных, которые вы хотите перенести.

В следующих шагах вы узнаете, как экспортировать базу данных MySQL со старого сервера, защитить ее, скопировать на новый сервер, успешно импортировать и убедиться в наличии данных.

 

Экспорт базы данных MySQL в файл дампа

Oracle предоставляет утилиту с именем mysqldump, которая позволяет легко экспортировать структуру базы данных и данные в файл дампа SQL. Используйте следующую команду:

mysqldump -u root -p --opt [database name] > [database name].sql

 

Несколько заметок:

  • Мы используем флаг –single -action, чтобы избежать блокировки базы данных при экспорте данных . Это позволит вам продолжить обновление данных в вашей старой базе данных при экспорте файла дампа. Обратите внимание, что новые данные, которые будут обновлены после того, как процесс экспорта уже запущен, не будут доступны в экспортированном файле дампа.
  • Обязательно замените [database name] реальным именем базы данных перед запуском команды.
  • Не забудьте ввести свои учетные данные пользователя вместо «user» и «Password» в команде. Убедитесь, что у пользователя есть разрешения на резервное копирование базы данных.

 

Защитите файл резервной копии

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

Поэтому при первом удобном случае давайте сжимаем и шифруем файл и удаляем исходный файл. Чтобы зашифровать файл в сжатый файл в операционных системах Linux, используйте эту команду:

 

zip --encrypt dump.zip db.sql

 

Вам будет предложено ввести пароль до начала сжатия.

 

Перенести файл резервной копии

Теперь, когда у нас есть зашифрованный файл дампа, давайте перенесем его по сети на новый сервер, используя SCP:

scp /path/to/source-file user@host:/path/to/destination-folder/

 

Импортируйте дамп MySQL на новый сервер

Теперь, когда у нас есть файл резервной копии на новом сервере, давайте расшифруем и распакуем его:

unzip -P your-password dump.zip

 

После того, как файл импортирован, не забудьте удалить файл дампа как для хранения, так и из соображений безопасности.
Чтобы импортировать файл, используйте следующую команду:

mysql -u root -p newdatabase < /path/to/newdatabase.sql

 

Проверить импортированные данные на новом сервере

Теперь, когда у нас есть база данных, импортированная на новый сервер, нам нужен способ убедиться, что данные действительно есть, и мы ничего не потеряли.
Мы рекомендуем начать с выполнения этого запроса как для старой, так и для новой базы данных и сравнить результаты.
Запрос подсчитает количество строк во всех таблицах, что обеспечит указание количества данных в обеих базах данных.

SELECT
    TABLE_NAME,
    TABLE_ROWS
FROM
    `information_schema`.`tables`
WHERE
    `table_schema` = 'YOUR_DB_NAME';

 

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

 

Еще один вариант экспорта и импорта

Мы сохранили эту опцию до конца, так как не очень рекомендуем работать с ней.
Кажется, это намного проще, так как он будет экспортировать, передавать файл дампа и импортировать данные в новую базу данных, все в одной команде.
Недостатком является то, что если сетевое соединение прекратится, вам нужно начать все сначала.
Поэтому мы считаем, что с этой командой работать не рекомендуется, особенно с большой базой данных.
Если вы все равно хотите попробовать, используйте эту команду:

mysqldump -u root -pPassword --all-databases | ssh user@new_host.host.com 'cat - | mysql -u root -pPassword'

 

Важные заметки

  • Убедитесь, что оба сервера MySQL установлены с одинаковым официальным дистрибутивом и версией. В противном случае вам нужно будет следовать инструкциям по обновлению с веб-сайта MySQL.
  • Убедитесь, что на вашем старом сервере достаточно места для файла дампа и сжатого файла (2 x db_size => free).
  • Убедитесь, что на вашем новом сервере достаточно места для хранения зашифрованного файла дампа, дешифрованного файла дампа и импортированной базы данных (3 x db_size => free).
  • Если вы когда-нибудь задумывались о переносе datadir из одной базы данных в другую, пожалуйста, не делайте этого. если вы не хотите связываться с внутренней структурой базы данных, так как это, скорее всего, вызовет проблемы в будущем.
  • Не забудьте настроить важные флаги, такие как innodb_log_file_size, в конфигурации вашего нового сервера. Если забыть обновить конфигурацию в соответствии со спецификациями нового сервера, это может привести к серьезным проблемам с производительностью.

Наслаждайтесь вашим новым сервером!

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Просмотров: 223

Если статья понравилась, то поделитесь ей в социальных сетях:

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close