Как восстановить базу данных на VPS Beget: что проверить перед запуском сайта
Я разбирался, что делать с базой данных, если VPS приходится восстанавливать из копии. Собрал порядок по документации Beget и добавил проверки, которые помогают не затереть последние данные и не запустить сайт с неправильной базой.
Главное: бэкап VPS может не содержать рабочую копию базы
В документации Beget автоматические резервные копии VPS описаны как файловые. Провайдер отдельно предупреждает: такой бэкап не гарантирует восстановление сервисов вроде баз данных. Для базы нужно заранее настроить отдельное резервное копирование специальными средствами.
Поэтому сначала ответьте на простой вопрос: у вас есть дамп MySQL или другой проверенный способ восстановления базы? Если есть только файловая копия VPS, считайте состояние базы неизвестным, пока не проверите обратное.
1. Зафиксируйте, что именно доступно
До изменений соберите короткий список: VPS запускается или нет; доступен ли каталог проекта и конфигурационный файл CMS; какая СУБД используется и где она размещена — на этом VPS или отдельно; есть ли SQL-дамп, где он хранится и за какую дату; когда сайт и база в последний раз точно работали; есть ли новые заказы, заявки или публикации после даты копии.
Конфигурация сайта обычно помогает определить имя базы и адрес сервера БД. Пароли сюда не копируйте и не отправляйте в публичные чаты.
2. Не восстанавливайте файлы базы «на горячую»
В файловой копии могут лежать файлы MySQL, но простое копирование каталога базы не равно восстановлению самой базы. Beget отдельно предупреждает: файлы таблиц MySQL нельзя восстанавливать, пока сервис mysqld работает. Перед такой операцией нужно остановить сервис и понимать, как он будет запущен после восстановления.
Если вы не администрируете Linux и MySQL регулярно, не экспериментируйте с файлами БД вручную. Ошибка может усложнить восстановление. Сначала проверьте наличие отдельного SQL-дампа и следуйте инструкции для вашей версии СУБД.
3. Если есть SQL-дамп — восстановите его отдельно
Самый безопасный сценарий — проверить дамп и импортировать его в отдельную пустую тестовую базу, не затрагивая единственный рабочий экземпляр. Убедитесь, что файл целый, известна его дата, а формат и версия СУБД подходят проекту.
Для MySQL импорт из командной строки обычно выглядит так:
mysql -u ИМЯ_ПОЛЬЗОВАТЕЛЯ -p ИМЯ_БАЗЫ < backup.sql
После -p клиент запросит пароль отдельно. Не вставляйте реальный пароль в команду и не публикуйте его в статье, тикете или терминальном скриншоте. Для большой базы импорт может занять время; следите за сообщением об ошибке и не считайте процесс успешным только потому, что команда завершилась.
Если вы используете панель или phpMyAdmin, порядок такой же: выбрать правильную базу, открыть импорт, загрузить дамп и дождаться результата. Перед заменой существующих данных сохраните текущую базу, если она доступна.
4. Проверьте подключение сайта к базе
После импорта проверьте параметры подключения в конфигурации приложения: хост, имя базы, пользователя и пароль. После восстановления сервера они могут отличаться от прежних. Сначала откройте сайт по техническому адресу или на тестовой копии.
Минимальная проверка: сайт подключается к базе без ошибок; открываются главная и внутренние страницы; в админке видны ожидаемые записи и настройки; работают формы, поиск и авторизация; в логах приложения и СУБД нет повторяющихся ошибок.
Для магазина проверьте заказы и остатки, не создавая случайных реальных оплат. Сверьте содержимое с датой дампа: если после неё появились заказы или заявки, восстановление может вернуть старое состояние и убрать более новые записи. До запуска приёма заказов решите, можно ли эти данные объединить или их придётся восстановить отдельно.
5. Если дампа нет
Не исходите из того, что база обязательно найдётся в файловом бэкапе VPS. Проверьте независимые копии: отдельное хранилище, автоматизацию проекта, локальные выгрузки, копии у разработчика или администратора. Если база размещалась как отдельная облачная услуга, проверяйте её резервные копии отдельно от VPS.
Если ничего не найдено, соберите сведения о сервере, времени последней рабочей версии и доступных копиях и обратитесь в поддержку Beget. До выяснения не перезаписывайте оставшиеся файлы и не удаляйте резервные каталоги.
Коротко
Файловый бэкап VPS не гарантирует восстановление базы данных. Для MySQL заранее храните отдельный проверенный дамп. Не копируйте файлы таблиц при запущенном mysqld. Сначала импортируйте и проверьте копию отдельно, потом подключайте сайт. Сверьте дату базы с датой файлов и учтите новые заказы и заявки.
Инструкции, на которые я опирался: резервное копирование VPS — https://beget.com/ru/kb/manual/rezervnoe-kopirovanie-vps; импорт и экспорт баз MySQL — https://beget.com/ru/kb/how-to/sites/kak-eksportirovat-i-importirovat-bazu-dannyh-mysql; восстановление сайта из резервной копии — https://beget.com/ru/kb/how-to/other/vosstanovlenie-sajta-iz-rezervnoj-kopii-sohranyonnoj-v-koren-akkaunta.