Я меняю провайдера VPS и хочу передать свои данные таблицы MySQL с одного сервера на другой. В настоящее время у меня есть ежедневный mysqldump для всех таблиц, и самые большие таблицы имеют более 10 миллионов строк, а размер файла дампа составляет около 4-5 ГБ. Импорт этого занимает много часов, и мне интересно, есть ли более быстрый способ сделать это - что-то, что занимает 10 или 15 минут, а не часы и часы. Спасибо!
Изменить: все мои таблицы - InnoDB
Почему бы не использовать xtrabackup? Ваше редактирование говорит, что ваши таблицы InnoDB. xtrabackup хорошо подходит для ваших нужд, как вы их описываете.
Этот способ НЕ работает в случае Innodb. Если версии Mysql совпадают, вы можете попробовать переместить файлы из / var / lib / mysql (в зависимости от вашего дистрибутива) с одного vps на другой.
Например, в Debian GNU / Linux это будет работать, но вам также потребуется изменить пароль пользователя mysql в debian-sys-maint. вы можете сделать это так:
mysql -uroot -p -e "GRANT ALL PRIVILEGES ON . TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '$(sed -n '/password/p;' /etc/mysql/debian.cnf | sed '1d;s/.* //')' WITH GRANT OPTION;"
Если у вас другая младшая версия mysql, это может сработать, но теоретически у вас могут быть некоторые ошибки.
Использовать Репликация MySQL Вот. С версиями проблем возникнуть не должно - ведь у вас VPS не просто хостинг, как я правильно понимаю. Если производительность второй машины не будет намного хуже, чем у другой - Slave должен отставать от мастера всего на несколько секунд.
Не забудьте остановить репликацию при уходе с первого VPS (кто-то может выдать DROP на Master, который будет реплицироваться на Slave).
Постарайтесь спланировать будущее - возможно, некоторых таблиц MyISAM будет недостаточно при большем трафике - у вас может быть MySQL Slave с некоторыми таблицами на других движках, чем Master.