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

🔹 Навіщо це потрібно

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

  • потрібно перейти на новий тариф або змінити провайдера;
  • старий сервер має застарілу операційну систему чи не вистачає ресурсів;
  • потрібно змінити географічне розташування (наприклад, інший дата-центр);
  • відбувається оновлення інфраструктури без переривання роботи сервісів.

Мета — виконати міграцію так, щоб сайт або застосунок залишались доступними протягом усього процесу.

⚙️ 1. Підготовчий етап

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

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

🔸 Варіант 1: rsync (рекомендовано)

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

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

Пояснення ключів:
-a — архівний режим, зберігає права доступу та власників;
-v — виводить процес копіювання;
-z — стискає передані файли.

Перед фінальним перемиканням DNS рекомендується повторно виконати команду — тоді будуть перенесені лише змінені файли.

🔸 Варіант 2: tar + scp (архівування)

На старому VPS:

tar 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. Перевірка роботи нового сервера

Щоб протестувати сайт до зміни DNS, змініть локальний файл /etc/hosts на вашому комп’ютері:

NEW_SERVER_IP yourdomain.com

Це дозволить відкрити сайт з нового VPS і переконатися, що все працює коректно.

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

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

Щоб не втратити нові дані (замовлення, повідомлення тощо), виконайте rsync повторно після оновлення DNS — це синхронізує всі зміни.

🧱 5. Завершальні кроки

  • Перевірте, що резервні копії успішно створено.
  • Видаліть тимчасові файли (backup.tar.gz, backup.sql).
  • Оновіть SSL-сертифікат, якщо він прив’язаний до IP-адреси.
  • За потреби розширте диск або налаштуйте регулярне резервне копіювання на новому VPS.

🧩 6. Додаткові рекомендації

  • Для CMS чи фреймворків (WordPress, Laravel, Docker) зручно поєднувати rsync із mysqldump або використовувати Docker Volume Backup.
  • Якщо потрібно забезпечити безперервний перехід, налаштуйте reverse proxy на старому VPS, щоб перенаправляти трафік на новий IP.
  • Для автоматизації процесу підійдуть Rclone або scp з SSH-ключами, щоб уникнути введення пароля вручну.
Залишити відповідь 0

Your email address will not be published. Required fields are marked *