Восстановливаем базу данных

Авторы решений:
Версия Drupal:

Задача

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

Решение

Варианты

  • восстановление через веб-интрефейс - скрипт Sypex Dumper Lite
  • Программа mysql

Если есть SSH-доступ к серверу, то лучше использовать программу mysql, - меньше трафика и быстрее.
Если же SSH отсутствует, то придётся использовать скрипт Sypex Dumper Lite.

скрипт Sypex Dumper Lite

Для восстановления лучше использовать: Sypex Dumper — бекап и восстановление БД MySQL, потому что "в отличии от многих подобных скриптов не загружает бекап-файл целиком в память, благодаря чему, ему безразличен размер базы данных и он одинаково быстро работает, как с маленькими, так и с большими объемами данных."

Установка

  1. Распаковать скачанный zip-файл.
  2. Закачать dumper.php в один из каталогов вашего сервера (доступный из web).
  3. Установить для этого каталога CHMOD 777 (см. Права доступа к файлам).

Использование

  1. Открыть в браузере URL вида: http://domain.com/dumper.php.
  2. Ввести логин и пароль для вашей БД.
  3. Восстановление БД из резервной копии:
    1. Выберите базу данных в нижнем разделе главной страницы.
    2. Выберите файл из раскрывающегося списка. Если необходимо, то предварительно закачайте файлы резервных копий в папку backup.
    3. Нажмите Применить.
    4. Теперь только остается наблюдать за процессом восстановления БД.

Фильтры

В фильтре таблиц указываются специальные шаблоны по которым отбираются таблицы. В шаблонах можно использовать следующие специальные символы:

  • символ * — означает любое количество символов
  • символ ? — означает один любой символ
  • символ ^ — означает исключение из списка таблицы или таблиц

Примеры:

  • drupal_* - все таблицы начинающиеся с "drupal_"
  • drupal_*, ^drupal_sessions - все таблицы начинающиеся с "drupal_", кроме "drupal_sessions"
  • drupal_s*s, ^drupal_sessions - все таблицы начинающиеся с "drupal_s" и заканчивающиеся буквой "s", кроме "ib_sessions"
  • ^*s - все таблицы, кроме таблиц заканчивающихся буквой "s"
  • ^drupal_???? - все таблицы, кроме таблиц, которые начинаются с "drupal_" и содержат 4 символа после знака подчеркивания

Программа mysql

Для восстановления будем пользоваться стандартной программой mysql, которая входит в комплект поставки MySQL наряду с mysqldump.

Допустим, у нас имеется backup в файле dump.txt. Нам нужно восстановить его в рабочую базу. Например, мы случайно удалили нашу базу данных, а теперь пытаемся исправить эту незадачу. Делаем так:

> mysql -uLOGIN -PPORT -hHOST -pPASS DBNAME < dump.txt

То есть, заставляем mysql-клиент соединиться с сервером и выполнить сценарий, который у нас имеется. После выполнения этой команды в Вашей базе появятся таблицы и данные из резервной копии. Учитывайте то, что данные будут просто восстанавливаться по сценарию из dump.txt. То есть, если таблицы, которые упоминаются в дампе базы, уже существуют и имеют другую структуру, тут явно возникнет ошибка. Просто посмотрите на сценарий и на рабочую базу и представьте, что Вы вручную выполняете команды из сценария. Если уверены, что все будет хорошо - смело восстанавливайте.

Использованные материалы



Creative Commons: ­Attribution-Share Alike 2.5

Данные материалы выложены под лицензией Creative Commons: ­Attribution-Share Alike 2.5. Это значит, что вы можете распространять, копировать и модифицировать эти произведения при условии упоминания авторства оригинала, и при условии, что они также будут распространяться на условиях этой лицензии (то есть, изменённую работу нельзя защитить копирайтом). Подробнее смотри: http://ru.wikipedia.org/wiki/Creative_Commons