Як перенести дані між VPS без зупинки роботи сервера
Міграція даних між VPS без простою
🔹 Навіщо це потрібно
Перенесення даних з одного VPS на інший може знадобитися у випадках, коли:
- потрібно перейти на новий тариф або змінити провайдера;
- старий сервер має застарілу операційну систему чи не вистачає ресурсів;
- потрібно змінити географічне розташування (наприклад, інший дата-центр);
- відбувається оновлення інфраструктури без переривання роботи сервісів.
Мета — виконати міграцію так, щоб сайт або застосунок залишались доступними протягом усього процесу.
⚙️ 1. Підготовчий етап
- Створіть новий VPS. Рекомендується встановити таку саму ОС, як і на поточному сервері.
- Перевірте доступи:
- можливість підключення через SSH до обох серверів;
- наявність root-доступу;
- відкритий порт 22 для SSH-з’єднання.
- можливість підключення через SSH до обох серверів;
- Оновіть систему на обох VPS:
sudo apt update && sudo apt upgrade -y - Переконайтесь, що на новому сервері достатньо дискового простору для розміщення копій даних.
📦 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 без простою
- Заздалегідь зменшіть TTL записів у DNS до 300 секунд (5 хв).
- Після тестування оновіть A-запис домену на IP нового сервера.
- У перші 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-ключами, щоб уникнути введення пароля вручну.