Делаем бэкап баз MySQL
На моем сервере под управлением FreeBSD 8.0-RELEASE работает mysql-server-5.0.90. В данной статье рассматривается простейший способ выполнения задачи бэкапа и восстановления из архивной копии баз данных MySQL. Для создания архивной копии любой базы данных MySQL существует команда mysqldump. Рассмотрим пример ее использования. |
Для этого в командной строке вашего shell выполним:
# mysqldump -u root -p -h localhost -x -F base > /var/backups/base_`date +%Y-%m-%d%n`.sql
где флаги обозначают:
-u – указываем привилегированного пользователя на базы MySQL (в данном примере это root);
-h – указываем имя хоста, на котором работает MySQL (в данном примере это localhost);
-p – указывает на то, что для входа в MySQL привилегированному пользователю (root) требуется ввести пароль;
-x – блокируем все таблицы бэкапируемой базы данных от изменений на время работы выгрузки дампа;
-F – сбрасываем на диск журнал регистрации сервера MySQL прежде, чем запустить дамп;
base – имя бекапируемой базы данных MySQL;
/var/backups/base_`date +%Y-%m-%d%n`.sql – путь и имя файла дампа бэкапируемой базы данных MySQL, где `date +%Y-%m-%d%n` припишет к имени файла дату его создания.
В результате работы это команды мы получим файл дампа необходимой нам базы base, который будет выглядеть как:
# ls -Al /var/backups/ | grep base -rw-r--r-- 1 root wheel 2738944 13 апр 10:03 base_2010-04-13.sql
Теперь перед нами стоит задача восстановления базы из созданной нами архивной копии базы данных MySQL. Для этого нам необходимо войти в оболочку MySQL командой:
# mysql -u root -h localhost -p
где флаги обозначают:
-u – указываем привилегированного пользователя на базы MySQL (в данном примере это root);
-h – указываем имя хоста, на котором работает MySQL (в данном примере это localhost);
-p – указывает на то, что для входа в MySQL привилегированному пользователю (root) требуется ввести пароль.
В приглашении оболочки MySQL введем команду создания новой базы данных:
mysql> CREATE DATABASE base;
Для просмотра результата дадим команду, которая отобразит существующие базы:
mysql> SHOW DATABASES;
Теперь нам осталось только войти во вновь созданную нами базу данных и загрузить в нее дамп выгрузки из архивного файла нужной даты:
mysql> USE base; Database changed mysql> source /var/backups/base_2010-04-13.sql;
Все, мы создали новую базу данных и загрузили в нее архивную копию. Выйдем из оболочки MySQL:
mysql> exit Bye
Существует еще один способ восстановления из архива. Для этого откроем необходимый нам файл бэкапа и внесем в самое его начало следующие строки:
# nano -w /var/backups/base_2010-04-13.sql CREATE DATABASE base; USE base;
Сохраним внесенные изменения, сделанные в nano, нажав CTRL+x, и подтвердим, нажав по запросу y. Теперь в командной строке вашего shell выполните команду:
# mysql -u root -h localhost -p < /var/backups/base_2010-04-13.sql
введите пароль привилегированного пользователя root, чтобы импортировать бекап в прописанную нами вновь созданную базу base.
Вот и все, удачи!