Назад | Перейти на главную страницу

Как лучше всего перенести базу данных MySQL?

Мы перемещаем загруженный сайт электронной коммерции с одного сервера на другой.

Это PHP приложение, которое использует MySQL. phpMySQL не установлен ни на одном сервере. Мы используем Navicat Essentials для MySQL для управления базами данных.

План такой:

  1. Уменьшите время жизни DNS.
  2. Пользовательский rsync для передачи файлов со старого сервера на новый.
  3. На старом сервере экспортируйте базу данных с помощью Navicat, а на новом сервере импортируйте сброшенный файл SQL.
  4. Проведите тестирование на новом сервере (изменив файл локальных хостов, чтобы на компьютере домен указывал на новый сервер)
  5. Если есть какие-либо проблемы, устраните неполадки и вернитесь к шагу 4. В противном случае перейдите к шагу 6.
  6. Когда все будет хорошо на шаге 4, включите режим обслуживания в приложении PHP (все еще работающем на старом сервере).
  7. Снова запустите rsync, чтобы скопировать все файлы, оставшиеся после последнего rsync.
  8. В Navicat на старом сервере для соответствующей базы данных создайте дамп файла SQL (структура и данные), а затем на новом сервере удалите все таблицы из первоначально импортированной базы данных и выполните только что выгруженный файл SQL.
  9. Обновите данные DNS с новыми IP-адресами и снова увеличьте TTL.

Это правильный подход? Собственно, если честно, шаги 1-7 уже выполнены. Я никогда раньше не использовал Navicat во время миграции (всегда был phpMyAdmin), поэтому меня беспокоит шаг 8. Это шаг 8 так и должно быть, или надо как то иначе?

Описываемый вами план включает простои приложения или потерю данных (или и то, и другое). Более рекомендуемый метод - установить новый сервер БД, настроив его как ведомый для текущего сервера (теперь ведущего), перенастроить приложение для использования обоих в качестве пары ведущий / ведомый. Когда Slave пойман (и вы можете подключиться к нему и посылать ему запросы), продвиньте Slave / понизьте уровень Master.

Документация по настройке репликации MySQL

Оказывается, что наиболее распространенным методом поиска является использование команды mysqldump.

https://dba.stackexchange.com/questions/174/how-can-i-move-a-database-from-one-server-to-another -Самый подробный

http://www.networkworld.com/columnists/2004/092004drinternet.html Каков самый простой способ переместить mysql из окна Linux в локальный ящик Vista?

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

Надеюсь это поможет.