Blog the XELFAER

Заметки *NIX

Восстановление бэкапа CMS и БД MySQL —

В раннее опубликованной статье было рассмотрено как создать бэкап CMS и БД MySQL, но будет правильным также разобраться как можно созданный бэкап восстановить.

Предположим, что имеется в наличии собственный ресурс на сервере который пользователь самостоятельно администрирует. Для более наглядной картины он будет выглядеть в таком варианте: ОС Debian 7, apache2, mysql. Для удобного размещения и поддержки используются виртуальные хосты в apache2. Веб ресурс на CMS WordPress будет именоваться blog.test.ru. БД для него будет называться testbd.

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

Теперь необходимо отключить виртуальный хост нашего ресурса:

# a2dissite blog.test.ru

Удаляем каталог с нашим ресурсом:

# rm -rfv /var/www/blog.test.ru

Удаляем БД MySQL нашей CMS:

mysql -u root -p
drop database testbd;

Проверим, что БД нет в списке баз:

show databases;

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

CREATE DATABASE testbd;

Проверим, что в списке появилась наша вновь созданная база:

show databases;

на что нам выдаст список присутствующих БД на текущий момент:

+--------------------+
| Database           |
+--------------------+
| testbd             |
+--------------------+

Теперь распакуем требуемый бэкап нашей БД(который ранее создан был скриптом):

bunzip2 2014-01-01_testbd.sql.bz2

Далее необходимо развернуть содержимое распакованной базы в пустую базу которую создали(не забываем указать путь к БД которой распаковали, если не находимся в этом каталоге на момент выполнения действий):

mysql -u root -p -f testbd < 2014-01-01_testbd.sql

Если ошибок не возникло — продолжаем дальше.
Теперь необходимо установить права на нашу БД:

mysql -u root -p
GRANT ALL PRIVILEGES ON databasename.* TO "username"@"hostname" IDENTIFIED BY "password";

где: databasename — имя нашей БД(в данном случае это testbd), username — имя пользователя нашей CMS, hostname — имя хоста (чаще всего используется localhost), password — пароль нашей БД.
Теперь необходимо распаковать содержимое непосредственно нашей CMS из резервной копии. В моем случае используется файловый менеджер mc, если кому то не удобно то можно распаковать через консоль.
Содержимое резервной копии (в данном случае это каталог blog.test.ru) необходимо скопировать в каталог:

/var/www/

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

# a2ensite blog.test.ru

на что должны получить что то наподобие:

Enabling site blog.test.ru.
To activate the new configuration, you need to run:
service apache2 reload

Осталось перезапустить сервис apache2:

# /etc/init.d/apache2 restart

На этом восстановление завершено.

© 2014 — 2015, XELFAER. Все права защищены. Использование материалов блога разрешается только при указании активной ссылки на статью.

Print Friendly, PDF & Email

Рубрики: Linux | Script



Добавить комментарий