Бэкап сайта. Мало известные способы.

backup

В пользе резервного копирования никто не сомневается но далеко не все делают. Наступает момент когда об этом сильно сожалеют. Не зря говорят что веб-мастера делятся на две группы: те кто пока ещё не делает бэкап и тех кто уже делает. Можно конечно надеяться на резервные копии которые делает хостер, но как говориться бережёного бог бережёт. Кроме сохранности данных бэкапы можно использовать для опытов. Я никогда не пробую новые модули на рабочем сайте. Исключительно на полигоне -  домашний комп с установленным веб сервером. Кроме этого перед каждым обновлением движка рекомендуют сделать бэкап. От бэкапов одни плюсы. Не делают их из-за лени. Другого объяснения я найти не могу. Сегодня рассмотрим несколько способов и надеюсь что каждый найдёт подходящий вариант.

Для бэкапа нам нужно скопировать все файлы сайта и базу данных. С файлами всё просто. Запускаем ftp клиент FileZilla, или любой другой, и минут через 10-15 все файлы у вас но компьютере. Вот ссылка на пост о работе с FileZilla. Так же файлы можно скопировать через админку хостинга. Здесь всё зависит от используемой хостингом админпанели. Переходим к базам данных.

SSH

Некоторые хостеры предлагают доступ к серверу по SSH(Secure Shell). Зачастую это единственная возможность подключиться к базе данных, не считая админпанели хостинга. Для работы нам необходимо установить клиент. Если мне не изменяет память то для Linux пользователей этот шаг не нужен. По крайней мере я не помню чтобы нужно было что-то устанавливать на Ubuntu. Сразу открываете консоль и вперёд. Для Windows пользователей есть замечательный SSH клиент PuTTY. Скачать можно отсюда. Установка не требуется. Двойной клик по файлу putty.exe и открывается окно программы.

SSH подключение PuTTY

В поле Host Name вводим IP адрес или URL и жмём Open. Откроется новое окно в котором сначала нас попросят ввести логин и пароль. Когда будете вводить пароль он не будет отображаться на экране. Не переживайте. Так и должно быть. URL, логин и пароль для доступа к серверу узнавайте у своего хостера. Это самый простой вариант, который работает не на всех хостингах. Иногда для подключения нужно создавать ключи, авторизовывать и преобразовывать их. Если тут возникают вопросы почитайте инструкцию к хостингу или обратитесь в службу поддержки. Webonlife хостится у Fozzy и пока всем доволен. Что касается ключей у них есть подробная мурзилка которая буквально по кликам расписывает действия.

С подключением закончили переходим к копированию базы данных. После успешной авторизации вводим:
mysqldump -uUser -pdb_password db_name > db_dump_name.sql
User - пользователь базы данных
db_password - пароль базы данных
db_name - название базы данных
db_dump_name имя файла дампа(копии) базы данных
Выполнив эту команду сервер сохранит дамп в корневом каталоге. Вы можете сохранить его в любое место на сервере. Для этого вместо имени файла укажите путь например buckup/db_dump_name.sql(дамп сохранится в папку backup которая расположена в корне) Теперь попробуем восстановить базу данных, для этого нужно ввести команду:
mysql -uUser -pdb_password db_name < db_dump_name.sql

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

HeidiSQL

HeidiSQL - программа для управления базами данных MySQL и Microsoft SQL. Скачиваем с сайта http://www.heidisql.com. Здесь всё как мы любим - диалоговые окна кнопочки и всё это на русском. После запуска программы жмём кнопку в левом нижнем углу. В английской версии надпись на кнопке была короче поэтому полностью слово "создать" не влезло. В начале нам предлагают задать параметры для подключения имя пользователя и пароль для базы данных. Имя хоста - localhost. Самый верхний пункт тип сети выбираете в зависимости от того где ваша база расположена. Если вы коннектитесь к своему домашнему серверу, оставьте как есть MySQL(TCP/IP) и нажимайте открыть. Как я уже говорил, на хостинге доступ из вне к базам данных, как правило, закрыт и единственная возможность подключиться это использовать SSH туннель, поэтому для подключения к базе данных сайта тип сети выбираем MySQL (SSH tunnel)

HeidiSQL настройки подключения к базе данных

Теперь нам нужно настроить этот самый туннель. Переходим на вкладку SSH-туннель, где узнаём что HeideSQL не может подключаться по SSH без посторонней помощи. Радует то что на этой же вкладке есть ссылка для скачивания нужной программы.
HeidiSQL подключение по SSH

plink.exe устанавливать не нужно, просто укажите путь где она расположена. И последнее что нам нужно это файл закрытого ключа. Как его получить вам лучше проконсультироваться в службе поддержки своего хостера.

Для того чтобы сделать копию базы данных в меню выбираем Инструменты → Экспорт базы данных в SQL.

HeidiSQL экспорт базы данных

Слева выбираем базу данных, справа параметры для копирования и последующей вставки и жмём экспорт.

Теперь попробуем восстановить нашу базу данных из бэкапа. Для этого выбираем в меню Файл → загрузить SQL файл и в открывшемся окне выбираем файл с бэкапом. Далее в левом окне выбираем базу данных в которую будем восстанавливать, а в правом окне вкладку с открытым ранее файлом. Жмём на значок выполнить SQL(синий треугольник) или F9.

HeidiSQL востановление базы данных из бэкапа

Наша база данных восстановлена.

SypexDumper и PHP MyAdmin

Вот мы и дошли до известных способов. Как они работают я описывал в статье про переезд на новый хостинг. Здесь лишь скажу о достоинствах и недостатках.

Начну с PHP MyAdmin. Главное его достоинство это то что стоит он у всех хостеров. Ничего не нужно скачивать настраивать и устанавливать. Понятный интерфейс, возможность редактировать таблицы. Но всё не так идеально как хотелось бы. У PHP MyAdmin есть ограничение на максимальный размер импортируемых файлов. Я узнал об этом после того как захотел восстановить базу сайта которая на тот момент превышала допустимый размер. Интересное чувство - понимаешь что всё делал как надо, вот он бэкап, но толка от этого нет. Я уверен что есть способы обойти эти ограничения, но нужно понимать что ни кто не даст вам что-то менять на хостинге.  Можно попробовать импортировать не целиком а отдельными таблицами, но для меня это не выход. Поэтому уже давно не пользуюсь PHP MyAdmin.

Теперь SypexDumper. Этот скрипт может экспортировать и импортировать базы любых размеров. Его можно запускать по крону. Единственное неудобство его нужно закачивать в папку с сайтом и выставлять права 777 на папку с бэкапом.

Каким же способом делать бэкап?

Почему последние два варианта самые популярные. Самое главное они просты в использовании. Для большинства новичков их хватает и они не рассматривают другие варианты. Зачем напрягаться если и так всё работает. Не всегда проще значит лучше. Если разобраться то HeidiSQL сложен только на этапе первоначального подключения. Его вполне можно рассматривать как десктопный вариант замены PHPMyAdmin. Не нужно ничего закачивать в папку сайта и открывать несколько вкладок в браузере. Всё ваши базы данных в одном окне и куча инструментов для работы с ними. В случае если максимум что вы делаете с базами данных это резервное копирование то я бы вам советовал присмотреться к SSH. Он может значительно упростить жизнь. В любом случае выбирать вам. Буду рад если поделитесь мыслями в комментариях.

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

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

Я с ужасом думаю о том, что однажды придется делать бекап сайта. Мне представляется все таким сложным. Хотя конечно нужно просто взять и сделать. Нигде не встречала такую подробную статью об этом!

Я из тех, что уже делает бекап)
Я хостюсь на beget.ru. Там все просто, в пару кликов. Сформированный архив скачиваю на комп и дублирую на Яндекс Диск. Периодичность разная в среднем, раз в два - три дня. Если и будут потери - то не более десятка статей, а их уже проще восстановить.