Sypex Dumper - храни наши базы MySQL
янв 12, 21:36 Категория: Инструменты Комментарии [4]

Я считаю, что самый распространённый инструмент для работы с базами данных MySQL - PHPMyAdmin - является ещё и самым непригодным. Чем заменить его при администрировании баз данных я расскажу в одной из следующих статей, а сейчас, продолжим осознание процесса самосохранения. Я остановился на том, что данный процесс должен быть автоматизирован и контролируем. Т.е. создание резервных копий должно производиться без непосредственного участия человека, но не бесконтрольно.
Скриптом Sypex Dumper я пользовался с версии 1.0.8 и был очень доволен: простая установка и минимальная настройка позволяли сделать за доли секунды резервную копию базы данных и упаковать её в архив. После этого загрузка базы на локальный компьютер становилась делом нажатия одной кнопки. При этом можно было настроить скрипт так, чтобы для каждого сайта, расположенного у одного провайдера, можно было делать отдельный архив из одной установки. И я даже не думал о необходимости апгредиться до 2-й версии - от добра добра не ищут. Ситуация изменилась, когда увеличилось число сайтов, на которых размещалась важная или уникальная информация. Пришло время автоматизации. В поисках решения я покопался в сети и обнаружил, что проверенный боями скрипт в версии 2.0.5 поддерживает работу из командной строки. Это значит, что можно запускать команду сохранения базы по графику с помощью утилиты cron. А далее файлы автоматически собирать со всех серверов, или отправлять от хостера по e-mail по тому же расписанию.
Сейчас у меня свет выключили и я не могу проверить всех своих провайдеров на предмет наличия возможности составления расписания (cron), но рассмотренная вчера пятёрка (.masterhost, ТаймВэб, BeGet.ru, Домишко, LavaHost) эту функцию обеспечивает. Думаю, что большинство тарифных планов у других провайдеров тоже содержит это пункт. Если же нет, то и это не страшно: всегда можно придумать решение в стиле "после публикации очередной статьи запустить процесс ___". Поставьте в нужное место правильную команду и всё заработает. Как эта команда выглядит - чуть позднее. А пока - процесс настройки и установки на Денвере - батареи ноутбука хватит ещё на час-другой.
Установка скрипта проста. Вот как она описана на сайте:
- Разархивировать и закачать содержимое каталога на сервер.
- Установить chmod 777 для каталога backup.
- Установить chmod 666 для файлов cfg.php и ses.php.
К этому я хочу добавить: разархивировать содержимое архива, Dumper 2.0.5 Beta можно в любое место на сайте, которое будет "видно" по сети. Рекомендую заменить используемую по умолчанию директорию sxd на что-нибудь своё. Дело в том, что у некоторых провайдеров аккаунты для доступа к базе данных можно вычислить, а зная имя и имея доступ к интерфейсу описываемой программы... Вы ведь не используете один и тот же пароль для аккаунта в социальных сетях и к базам данных?
Для демонстрации я развернул на Денвере копию сайта SEO опыты - Textpattern и скопировал Sypex Dumper в корень, в директорию backuper.
backuper Folder
css Folder
files Folder
images Folder
rpc Folder
sites Folder
textpattern Folder
.htaccess 531
css.php 574
index.php 1195
robots.txt 26

Далее, если установка идёт на Unix-сервере, нужно выполнить три пункта из инструкции выше. Под Windows - нет. Теперь открываю в браузере http://ih6.dev/backuper и получаю приглашение ввести логин и пароль для доступа к базе данных. Это тот же набор, что указывался CMS при её установке. Запоминать ли введённые данные - решать вам. Здесь же можно выбрать язык - скрипт сразу включает в себя возможность работать на русском, английском и украинском языках. Если этого мало - на сайте программы можно скачать ещё несколько вариантов локализации, или предложить свой. После нажатия кнопки "Войти", программа сохранит введённые данные и готова к работе.
Можно выбрать базу данных, кодовую страницу для соединения (рекомендую ту же, что и CMS - в моём случае это utf8 ), степень компрессии, пару слов для памяти и указание, сколько дней и сколько файлов хранить. Ну и сохраняемые таблицы, разумеется - при правильной настройке CMS могут уживаться в одной базе данных и не мешать друг другу.
Всё настроили? Жмём "Сохранить" и вводим название данной конфигурации - в соответствии с ней будет производиться резервирование данных.
Имя запомните - оно пригодится для автоматизации. Теперь нажмите на кнопку "Выполнить" - запустится процесс создания резервной копии.
Полсекунды и всё. Если все предыдущие действия были произведены правильно, то появится файл с именем, состоящим из соответствующего названия базы данных и времени создания.
Ну и завершающее действие этапа настройки - проверка работоспособности созданной резервной копии. Лучший способ - создать сайт-двойник и для него произвести тестовое восстановление. Мой подопытный - именно такой двойник. Поэтому я просто удалил базу данных в предыдущем экране выбрал созданный backup и нажал кнопку "Открыть" - после этого попал на страницу импорта базы данных.

Нажал "Выполнить" - база данных восстановилась. Кстати, если нажать кнопку "Сохранить", то будет предложено закачать архив на локальный компьютер.
Импорт базы данных занял немного больше времени - 3 секунды. Запуск сайта после восстановления показал, что всё работает нормально. Теперь я имею настроенный инструмент для загрузки на сайт-дубль копии рабочего сайта. Осталось проверить, как работает создание резервной копии из командной строки.
Sypex Dumper начиная с версии 2.0.5 поддерживает работу из командной строки (консоли/крона) - помните эту фразу. Формируем команду, которая освободит нас от рутины. Для этого нужно знать путь к интерпретатору PHP и путь к папке с Sypex Dumper. В Unix системах, это может быть /usr/bin/php. Если нет - пытайте документацию, провайдера и phpinfo(). На Денвере путь - z:\usr\sbin\php5. И вторая часть команды - путь к скрипту Sypex Dumper. У меня это Z:\home\ih6.dev\www\backuper\index.php. Всё, можно настраивать cron - задать время и частоту запуска. А в качестве команды - комбинацию из пути к интерпретатору, скрипту и ключ j с указанием имени сохранённой конфигурации. У меня она выглядит вот так:
z:\usr\sbin\php5 Z:\home\ih6.dev\www\backuper\index.php -j=cron-backup
В результате её выполнения появился второй файл, содержащий дамп базы данных. Сравнение файлов показало их полную идентичность.

Теперь резервные копии базы данных будут создаваться регулярно, если регулярно выполнять описанную выше команду, а их число и срок годности будет отслеживаться автоматически. А я буду готовить статьи о том, как запускать резервирование без вмешательства человека и автоматически сохранять эти файлы на другом компьютере. Мы защитились от краха базы данных, но если накроется жёсткий диск сервера или весь дата-центр, то вместе с ними канут и наши резервные копии. Но не нужно бояться, что это всё сложно - я уложился с настройкой минут за 50. Если посмотреть на время создания бекапов, то видна разница в их создании - 36 минут. А ведь я ещё писал статью и делал скриншоты. То же самое будет и с копированием. До следующей статьи.







Интернет перестал быть чудом, но ещё не стал привычным инструментом. Отрасль показывала рост даже в самые тяжелые дни кризиса. У неё большое будущее и замечательное настоящее.