Як перенести дані з одного VPS на інший без переривання роботи сервера
Перенесення даних без переривання роботи сервера
🔹 Для чого це потрібно
Перенесення даних між VPS може знадобитися, якщо:
- потрібно перейти на новий тариф чи хостинг;
- старий VPS має застарілу ОС або недостатньо ресурсів;
- ви хочете змінити локацію серверів (наприклад, інший дата-центр);
- проводиться оновлення інфраструктури без простою сервісу.
Основна мета — зробити міграцію без зупинки роботи сайту чи застосунку.
⚙️ 1. Підготовка до перенесення
1. Створіть новий VPS — бажано з тією ж ОС, що і на старому сервері.
2. Перевірте доступи:
- SSH-доступ до обох серверів;
- root-права;
- відкритий порт 22 для SSH-підключення.
3. Оновіть систему на обох VPS: 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 — стискає дані;
- /var/www/ — приклад директорії з файлами сайту.
🔁 Після першого копіювання можна повторно виконати команду перед фінальним перемиканням DNS — тоді rsync скопіює лише зміни.
🔸 Варіант 2: tar + scp (архівування)
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. Перевірка роботи на новому VPS
Змініть файл /etc/hosts на вашому локальному комп’ютері:NEW_SERVER_IP yourdomain.com
Це дозволить перевірити сайт до оновлення DNS. Переконайтесь, що сайт і сервіси працюють коректно.
🔄 4. Перемикання DNS без простою
- Зменште TTL записів у DNS до 300 секунд (5 хвилин) заздалегідь.
- Після перевірки роботи нового VPS — оновіть A-запис домену на IP нового сервера.
- DNS-перехід зазвичай триває 5–30 хвилин, у цей час користувачі можуть потрапляти як на старий, так і на новий сервер.
→ Щоб уникнути втрати даних (наприклад, нових замовлень чи повідомлень), запустіть rsync повторно після оновлення DNS, щоб синхронізувати зміни.
🧱 5. Фінальні дії
- Переконайтесь, що резервні копії створено.
- Видаліть тимчасові файли (backup.tar.gz, backup.sql).
- Оновіть SSL сертифікат, якщо він прив’язаний до IP.
- За потреби — розширте диск або налаштуйте бекап на новому VPS.
🧩 6. Корисні поради
- Для складних проєктів (WordPress, Laravel, Docker) зручно використовувати rsync + MySQL dump або Docker Volume backup.
- Якщо передбачається тривалий перехід, можна тимчасово налаштувати reverse proxy на старому VPS, який перенаправлятиме запити на новий IP.
- Для автоматизації можна використати Rclone або scp з SSH-ключами (щоб не вводити пароль).