Делаем резервную копию базы данных

Главные вкладки

Аватар пользователя VladSavitsky VladSavitsky 25 марта 2008 в 17:33

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

  • автоматизированные инструменты, которые предоставляет ваш хостер,
  • бесплатный скрипт phpMyAdmin, который позволяет управлять базой данных, а также создать дамп базы данных и скачать его
  • бесплатный скрипт Sypex Dumper Lite, который позволит вам создавать резервные копии любых размеров и восстанавливать их.

Использование phpMyAdmin для создания резервной копии базы данных

  • Прежде чем устанавливать этот скрипт, выясните у вашего хостера - возможно он уже установлен. Если же нет, то вы можете установить phpMyAdmin самостоятельно.
  • После этого открыть в браузере этот скрипт (адрес зависит от того, в какой папке был установлен скрипт).
  • Выбрать нужную базу данных
  • Нажать вкладку Экспорт и настроить параметры экспорта.

Использование Sypex Dumper Lite для создания резервной копии базы данных

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

Установка

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

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

  1. Открыть в браузере URL вида: http://domain.com/dumper.php.
  2. Ввести логин и пароль для вашей БД.
  3. Создание резервной копии БД:
    1. Выберите базу данных в верхнем разделе главной страницы.
    2. Фильтр оставьте пустым (будут дампиться все таблицы выбранной БД), подробнее о фильтрах см. ниже.
    3. Выберите метод сжатия (bzip2 наиболее эффективный, но и самый медленный).
    4. Выберите степень сжатия (как показала практика, наиболее оптимальная — 7).
    5. Нажмите Применить.
    6. После окончания работы скрипта (станут активны кнопки Скачать файл и Вернуться), можно скачать файл по http (предварительно возможно понадобится настроить перехват расширений .sql, .gz и .bz2 в менеджеры загрузки) или скачать по FTP. Название файла состоит из названия базы данных, а также даты и времени создания дампа, для упрощения работы с файлами резервных копий.

Фильтры

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

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

Примеры:

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

Оригинал статьи

Комментарии

Аватар пользователя Valeratal Valeratal 25 марта 2008 в 23:33

у меня почему то дампер не хочет работать
То есть начинает бекапить, и через какое то время, линия "загрузки" останавливается

Подозреваю, что лимит времени

Кто нибудь сталкивался?

Аватар пользователя Pozniy Pozniy 26 марта 2008 в 11:53

Влияет. Я Sypex Dumper Lite пользуюсь второй год. Замечательный скрипт. По опыту работы все траблы связаны не с ним, а с проделками хостеров. Один из последних опытов - для того, что бы отбиться от дос-атак хостер автоматом перегружает сервер во время прецедента. После установления такой практики заметил временами возникающую проблему. Дамп генерируется нормально. А вот при восстановлении вылетает ошибка. Как правило это ошибка нарушения синтаксиса SQL скрипта дампа одной из восстанавливаемых таблиц. Очень коварный трабл. Так вот профилактическая мера против этой ошибки - оптимизация таблиц перед дампованием. Или же надо сразу проверять дамп на восстановление (для чего надо иметь резервную область БД для экспериментов).

>Подозреваю, что лимит времени

Там в скрипте есть такой параметр. Но это так же может быть таймаут сессии установленный у хостера. Скорее всего второе, ибо в другом случае дампер бы выдал сообщение. Я тоже столкнулся в одно время с такой проблемой, когда хостер кувыркался, пытаясь поддержать видимость функционирования изрядно перегруженного сервера. Поменял хостера - дампер заработал Smile

Аватар пользователя player player 26 марта 2008 в 13:07

У меня 6-ка на разных (в том числе и проверенном) хостерах непереносилась. Сам непойму в чем дело, но думаю не в хостере. Кто нибудь 6-ку переносил Sypex Dumper-ом?

Аватар пользователя player player 27 марта 2008 в 11:23

Quote:
player перед дампом, отключи все модули и темы.
А как это на дамп то влияет??? Я не пробовал еще времени нет, но все равно странно.

Аватар пользователя VladSavitsky VladSavitsky 29 марта 2008 в 1:17

Я проверил: у Navicat есть 30-дневная версия и свободная версия (Lite Edition). Вот таблица различий: http://www.navicat.com/feature.html
Для Линукс версия для некоммерческого использования весит 20 MB!
Это продукт класса phpMyAdmin для управления базой данных. Для получения дампа и востановления этого инструмента многовато. Дампер весит 35 кб! А для управления есть phpMyAdmin. Зачем что-то менять?

Аватар пользователя VladSavitsky VladSavitsky 29 марта 2008 в 1:20

Из дампа, лично я, ничего не исключаю. А вот при переносе с локалхоста на сервер исключаю:

  • cache*
  • locale*
  • watchdog

Они очень большие и их можно не импортировать.

Аватар пользователя Wincert Wincert 11 октября 2008 в 18:05

player я переносил шестерку, промучался с ней целый день. phpmyadmin не как не хотел правильный дамп делать. Sypex Dumper спас, на user запнулся, но эти последние таблицы phpmyadmin-ом задампил и все работает.

Аватар пользователя Wincert Wincert 11 октября 2008 в 19:48

locale* исключать, плохая мысль. Не все в совершенстве знают английский. Так зачем переводы не переносить?

Аватар пользователя manuscriptum manuscriptum 2 декабря 2008 в 12:40

если не ошибаюсь - 1-е правило программиста PHP - "не использовать РНР там, для чего оно не предусмотрено", и автор этого правила, если не ошибаюсь сам автор РНР Wink
Не проще ли использовать однострочную команду "mysqldump --user=root --password drupaldb > drupaldb.sql"?
По-моему далеко не спроста ее создали.
Так что поддерживаю несколько трезвых голосов, которые здесь упомянули именно этот метод.

Аватар пользователя PVasili PVasili 2 декабря 2008 в 14:02

IMHO до 1 правила есть ещё одно: Если у вас нет доступа к mysqldump на сервере -то используйте все другие имеющиеся возможности.

Аватар пользователя VladSavitsky VladSavitsky 5 декабря 2008 в 3:05

Лично я использую mysqldump, потому что есть шел и это быстрее, но не у всех есть...
Хотя, опять же лично я, вряд ли когда нибудь перееду на хостинг без шела. Это первый параметр, который меня интересует.

Аватар пользователя lermus lermus 26 февраля 2009 в 17:40

Скажите, а непосредственно в момент создания резервной базы данных сайт должен быть в off или on line?

Аватар пользователя qman qman 17 марта 2009 в 0:06

Всем привет,
пытаюсь восстановить БД с помощью Sypex Dumper Lite 1.0.8 шкала прогресс бара застревает на 0%. Раньше все работало!
Может кто нибудь сталкивался? В чем проблема?
P.S. хостинг nic.ru

Аватар пользователя eneus eneus 17 марта 2010 в 23:51

эт конешно все хорошо... 5 Мб это еще не сложно востановить... Вы мне лучше подскажите как мне востановить 13 Мб бэкапа безболезненно, а то чего то не получается... или я что то не так делаю... !? Smile

Аватар пользователя eneus eneus 18 марта 2010 в 7:34

Я понял почему у меня такой большой бэкап - не исключил следующее:

  • cache
  • watchdog

надеюсь все получится... Smile