Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab9.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
106.06 Кб
Скачать

Автоматизация резервного копирования

Теперь подумаем, как бы нам автоматизировать процесс создания резервных копий базы данных. Итак, существует программа - cron. Она позволяет запускать процессы в указанное пользователем время или с определенной периодичностью. Сразу оговоримся - cron в общем случае существует только под Unix, так что, если Вы используете для хостинга ОС Windows, проконсультируйтесь со своим хостинг-провайдером о том, как лучше запускать процессы в нужное время. Да и вообще, пожалуй, этот пункт будет интересен только unix-пользователям.

В unix shell запускаем crontab -e и создаем такое правило запуска процесса создания копий базы:

0 0 * * * mysqldump -uLOGIN -PPORT -hHOST -pPASS DBNAME | gzip -c > `date "+%Y-%m-%d"`.gz

Эта команда, запускаясь из cron в полночь (00:00) каждых суток, делает дамп Вашей базы DBNAME и архивирует его архиватором gzip в файл-архив с именем, соответствующим текущей дате. Например, если мы делаем dump 3 января 2002 года, имя файла с архивом будет 2002-01-03.gz. Для того, чтобы получить файлы, по именам которых можно удобно узнать дату их создания, мы используем команду date, которая является стандартной для всех unix-систем. Эта команда позволяет задавать произвольный формат вывода даты, что мы и использовали - date "+%Y-%m-%d". Мы поместили эту команду в обратные одинарные кавычки (backticks), что в unix shell заставляет вставить в команду (утрируя) результат выполнения другой команды.

Сохраняем правило для cron и ждем результатов. Итак, каждый день мы будем иметь на диске заархивированную копию нашей базы данных. Можно быстро найти нужный архив по его названию и восстановить то, что испортилось, например. Кстати, если Вы хотите автоматизировать удаление старых архивов, попробуйте воспользоваться cron и командой find, которая обычно есть в unix. Запуская периодически find ~/каталог-с-архивами -name "*.gz" -mtime +7, Вы будете удалять архивы, которые "старше" семи дней. Прочитайте документацию по find - она доступна по команде man find в unix shell.

Если у Вас есть машина, постоянно подключенная к интернет, можно так же по cron копировать созданный Вами backup на нее. Конечно, провайдерская хостинг-машина - это очень надежная штука. Однако, как говорится, "береженого Бог бережет". Старая как мир истина в определенных условиях может и Вам помочь. Используйте для копирования на другую машину команды ftp и scp. Добавьте их запуск в cron. Если Ваша машина поддерживает соединение по протоколу ssh, используйте secure copy клиент для копирования файлов - scp. Читайте документацию по этой команде в man-странице man scp. Примерный запуск: scp 2002-01-03.gz : - закачиваем файл 2002-01-03.gz на машину your.host.ru авторизовавшись там под логином login.

Как сделать бэкап базы данных с помощью программы phpMyAdmin

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

Если вы находитесь на какой-либо другой странице phpMyAdmin, то для того чтобы попасть на главную, нужно нажать на домик, выделенный на рисунке. На одном аккаунте хостинга у вас может быть много баз данных и поэтому вы должны сначала выбрать ту базу данных, резервное копирование которой вы хотите осуществить. Список баз вы можете увидеть в окне программы слева (под иконкой домика). Для того, чтобы сделать бэкап базы данных вам нужно будет щелкнуть по вкладке «Экспорт» над списком таблиц.

Внизу открывшейся страницы поставьте галочку «gzip».

И нажмите кнопку «ok». В результате, через некоторое время (которое зависит от скорости работы хостинга и размера вашей базы данных) откроется стандартный диалог резервного копирования базы данных, в котором вы должны выбрать место сохранения бэкапа с базой данной.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]