Как перенести данные с одного VPS на другой без остановки работы сервера

🔹 Зачем это нужно

Перенос данных может понадобиться, если:

  • вы переходите на новый тариф или хостинг;
  • требуется более современная ОС или больше ресурсов;
  • нужно сменить дата-центр или страну размещения;
  • проводится обновление инфраструктуры без простоя сервиса.

Главная цель — сделать миграцию без остановки работы сайта или приложения.

⚙️ 1. Подготовка

1. Создайте новый VPS — желательно с той же ОС.

2. Проверьте доступы:

  • SSH-доступ к обоим серверам
  • права root
  • открыт порт 22

3. Обновите систему:

sudo apt update && sudo apt upgrade -y

4. Убедитесь, что на новом VPS достаточно свободного места для копий.

📦 2. Перенос файлов и баз данных

🔸 Вариант 1: rsync (рекомендуется)

rsync -avz -e ssh /var/www/ root@NEW_SERVER_IP:/var/www/

  • -a — сохраняет права и владельцев
  • -v — показывает процесс
  • -z — сжимает данные

После первого копирования можно запустить команду повторно перед сменой DNS — rsync скопирует только изменения.

🔸 Вариант 2: tar + scptar czf backup.tar.gz /var/www/

scp backup.tar.gz root@NEW_SERVER_IP:/root/

На новом VPS:

tar xzf backup.tar.gz -C /

🔸 Вариант 3: перенос базы данных (MySQL / MariaDB)

На старом VPS:

mysqldump -u root -p database_name > backup.sql

scp backup.sql root@NEW_SERVER_IP:/root/

На новом VPS:

mysql -u root -p database_name < /root/backup.sql

🌐 3. Проверка работы на новом VPS

Перед изменением DNS добавьте строку в файл /etc/hosts на локальном ПК:

NEW_SERVER_IP yourdomain.com

Теперь сайт будет открываться с нового сервера, не дожидаясь обновления DNS.

🔄 4. Переключение DNS без простоя

  1. Заранее уменьшите TTL записей DNS до 300 секунд.
  2. После проверки работы нового VPS измените A-запись домена на новый IP.
  3. В течение 5–30 минут часть пользователей может попадать на старый сервер.
    Чтобы не потерять данные, выполните rsync повторно после обновления DNS.

🧱 5. Завершающие действия

  • Проверьте, что сделаны резервные копии.
  • Удалите временные файлы (backup.tar.gz, backup.sql).
  • Обновите SSL-сертификат, если он был привязан к IP.
  • При необходимости расширьте диск и настройте автоматический бэкап.

🧩 6. Полезные советы

  • Для проектов на WordPress, Laravel, Docker — используйте rsync + mysqldump или экспорт томов Docker.
  • Можно временно настроить reverse proxy на старом VPS для плавного перехода.
  • Используйте SSH-ключи для удобной и безопасной передачи без паролей.