cp.lv — VPS, выделенные и облачные серверы

cp.lv (LANGMARKET LLP) — хостинг-провайдер: VPS, выделенные и облачные серверы на NVMe с выбором ОС, полным root-доступом и поддержкой 24/7. Тест-период до оплаты: выделенные серверы — 5 дней, VPS и облако — 5 часов.

Contact Info
LANGMARKET LLP
Rīga, Latvija

+371 00 000 000

Follow Us

Личный кабинет

Язык

Перенос сайта и базы данных на новый VPS: rsync и dump

Перенос сайта и базы данных на новый VPS: rsync и dump

Перенос сайта на новый сервер сводится к трём вещам: скопировать файлы, перенести базу данных и переключить домен. Если сделать всё по порядку и проверить сайт до смены DNS, миграция пройдёт почти без простоя.

План миграции

  1. Подготовить новый VPS (веб-сервер, PHP, СУБД).
  2. Скопировать файлы сайта через rsync.
  3. Перенести базу данных дампом.
  4. Проверить сайт на новом сервере по IP.
  5. Переключить DNS и дождаться распространения.

Шаг 1. Подготовка нового сервера

Установите то же окружение, что на старом (например, LEMP), и создайте пустую базу и пользователя. Настройте SSH-доступ между серверами — удобно сгенерировать ключ на старом и добавить в новый:

ssh-keygen -t ed25519
ssh-copy-id user@NEW_SERVER_IP

Шаг 2. Копирование файлов через rsync

rsync переносит только изменённые файлы и сохраняет права. Запустите со старого сервера:

rsync -avz --progress /var/www/example.com/ \
  user@NEW_SERVER_IP:/var/www/example.com/

Флаги: -a — сохранить права/владельцев/симлинки, -z — сжатие в канале, -v — подробный вывод. Слэш в конце источника означает «содержимое каталога».

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

Шаг 3. Перенос базы данных

На старом сервере создайте дамп. Для MySQL/MariaDB:

mysqldump --single-transaction -u root -p app_db | gzip > app_db.sql.gz

Скопируйте дамп на новый сервер:

rsync -avz app_db.sql.gz user@NEW_SERVER_IP:/tmp/

На новом сервере импортируйте:

gunzip < /tmp/app_db.sql.gz | mysql -u root -p app_db

Для PostgreSQL команды аналогичны:

pg_dump -Fc app_db > app_db.dump
# на новом сервере:
pg_restore -d app_db --clean app_db.dump

Шаг 4. Правка конфигурации сайта

Обновите строку подключения к базе в конфиге приложения (например, wp-config.php, .env) — хост, имя базы, пользователь, пароль. Проверьте права на каталоги:

sudo chown -R www-data:www-data /var/www/example.com

Шаг 5. Проверка до переключения DNS

Не меняя DNS, проверьте сайт на новом сервере, подменив домен в файле hosts на своём компьютере:

NEW_SERVER_IP  example.com

(В Linux/macOS это /etc/hosts.) Откройте сайт — если всё работает, можно переключать домен. После проверки строку из hosts уберите.

Шаг 6. Переключение DNS

Заранее снизьте TTL A-записи (например, до 300 секунд) за сутки до переезда — тогда переключение распространится быстрее. Смените A-запись на IP нового сервера и следите:

dig +short example.com

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

Чек-лист после переноса

Проверка Как
Сайт открывается по домену после смены DNS
База подключена нет ошибок соединения в логах
Права файлов chown www-data, загрузки работают
SSL перевыпустить certbot на новом сервере
Cron-задачи перенести crontab вручную

Частые вопросы

Как перенести сайт без простоя? Синхронизируйте файлы и базу заранее, проверьте сайт через hosts, затем сделайте финальную досинхронизацию и переключите DNS. Старый сервер держите включённым сутки.

rsync не сохраняет права — почему? Запускайте с флагом -a (архивный режим) и от пользователя с достаточными правами; для полного сохранения владельцев может понадобиться sudo и --numeric-ids.

Нужно ли переносить SSL-сертификат? Проще перевыпустить его заново через certbot на новом сервере после переключения DNS — это займёт минуту.

Почему после переноса часть посетителей видит старый сайт? DNS кэшируется у провайдеров согласно TTL. Снизьте TTL заранее и подождите несколько часов после смены записи.

Для нового сервера под ваш проект выбирайте конфигурацию с запасом: смотрите аренда VPS, а для сайтов на CMS — VPS для WordPress.

Ольга Наумова

Ольга Наумова

Ведущий DevOps-инженер. Автоматизирует развёртывание серверов и настраивает KVM-доступ, чтобы клиенты запускались за минуты.