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

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

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

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

Цель — выполнить миграцию так, чтобы сайт или приложение оставались доступными всё время.

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

  1. Создайте новый VPS — желательно с той же операционной системой, что и на старом.
  2. Проверьте доступы:
    • возможность подключиться по SSH к обоим серверам;
    • наличие root-прав;
    • открыт порт 22 для SSH.
  3. Обновите систему на обоих серверах: sudo apt update && sudo apt upgrade -y
  4. Убедитесь, что на новом VPS достаточно места для резервных копий и файлов.

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

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

rsync позволяет синхронизировать данные между серверами без остановки работы:

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

Ключи:
-a — архивный режим, сохраняет права и владельцев;
-v — показывает процесс копирования;
-z — сжимает данные при передаче.

Перед финальным переключением DNS повторите команду — скопируются только изменённые файлы.

🔸 Вариант 2: tar + scp (архивирование)

На старом сервере:

tar czf backup.tar.gz /var/www/
scp backup.tar.gz root@NEW_SERVER_IP:/root/

На новом сервере:

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. Проверка нового сервера

Чтобы протестировать сайт до смены DNS, измените локальный файл /etc/hosts:

NEW_SERVER_IP yourdomain.com

Так вы сможете открыть сайт с нового VPS и убедиться, что всё работает корректно.

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

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

Чтобы не потерять новые данные (например, заказы или сообщения), выполните rsync повторно после обновления DNS — это синхронизирует изменения.

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

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

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

  • Для сложных проектов (WordPress, Laravel, Docker) удобно совмещать rsync с mysqldump или использовать резервное копирование Docker Volume.
  • При длительном переходе можно временно настроить reverse proxy на старом сервере, чтобы перенаправлять трафик на новый IP.
  • Для автоматизации используйте Rclone или scp с SSH-ключами, чтобы не вводить пароль вручную.
Добавить комментарий 0

Ваш электронный адрес не будет опубликован. Обязательные поля помечены *