Мы уже много говорили о важности резервного копирования, но, как ни странно, мы не обсуждали проблему восстановления, а это очень важная составляющая процедуры восстановления данных. Ведь сохраненные файлы не имеют никакого значения, если к ним нет доступа. Тут следует заметить, что резервная копия не имеет никакого смысла, если вы не убедились, что ей можно воспользоваться. И наверное, вы не захотите изучать данный аспект, уже после того, как ваша система "полетела" и вам нужно все восстанавливать по резервной копии.
Имеете ли вы право?
Напомним, что для выполнения операции восстановления необходимо обладать пра­вом на создание таблиц и баз данных. Кроме того, может потребоваться использование параметров - -user, - -password и - -host со всеми вышеуказанными командами.
Из предыдущего раздела читатель мог узнать, что вывод утилиты mysqldump для уп­рощения процедуры восстановления данных включает такие операторы SQL, как CREATE TABLE. Для ускорения процедуры восстановления данных, файл с резервной копией, созданный в результате работы утилиты mysqldump, можно указать непосредственно в параметрах клиента mysql .
Рассмотрим пример.
Листинг 15.18.
[user@host]# /usr/local/mysql/bin/mysql dbl < mydump.txt
В этом примере файл mydump.txt является текстовым файлом, содержащим результаты работы утилиты mysqldump. Содержимое этого файла (команды SQL) выполняет клиент командной строки mysql с использованием перенаправления стандартного ввода.
Если у вас нет возможности работать с командной строкой (или вы просто не любите этого делать), можно воспользоваться командой SOURCE уже из самого клиента mysql.
Листинг 15.19.
mysql> SOURCE mydump.txt 
Команда SOURCE использует команды SQL из указанного файла для восстановления указанных баз данных или таблиц. Успешность операции восстановления проверяется с помощью обычного оператора SELECT.
Другим вариантом процедуры восстановления является использование для импорти­рования данных из текстового файла такой известной команды MySQL, как LOAD DATA INFILE. Эту команду можно использовать с ключевым словом INTO TABLE, для того чтобы определить, в какую таблицу данные должны быть занесены.
Например:
mysql> LOAD DATA INFILE '/home/me/data.txt' INTO TABLE birthdays FIELDS TERMINATED BY ',' LINES TERMINATED BY 'rn';
Query OK, 5 rows affected (0.06 sec) Records: 5 Deleted: 0 Skipped: 0 Warnings: 0
Подробнее о команде LOAD DATA INFILE можно узнать в главе 9, "Обработка данных"
Перенос баз данных с использованием процедуры восстановления
Еще одним применением процедуры восстановления может служить копирование таблиц или даже баз данных на другой сервер MySQL. Это достаточно быстрый и удобный способ экспортирования и импортирования баз данных между различными серверами баз данных.
Следующим шагом после ознакомления с процедурами резервного копирования и восстановления данных является автоматизация процесса резервного копирования. При работе под управлением Unix для этого можно воспользоваться утилитой cron, которая обычно и используется там для этих целей. Она позволяет запланировать работу утилиты mysqldump в определенное время и по определенным дням. Подробнее об этой утилите можно узнать с помощью стандартной команды ОС UNIX man cron.
В Windows NT, Windows 2000 или Windows XP, для автоматизации резервного ко­пирования из командной строки можно воспользоваться командой at или Планировщиком задач (ControlPanel ■=> Scheduled Tasks).
На заметку
Название утилиты cron может сначала показаться немного странным, но это объясняется тем, что оно происходит от греческого слова "время", которое можно написать русскими буквами как "хронос" (или английскими буквами chronos). От этого же слова произошли такие слова, как "хронология " и "хронометр ".

Резюме
Одно из основных качеств, которым СУБД MySQL обязана своей популярностью, - это простота ее использования, но пока ни одна база данных не может взять на себя выполнение всех задач. На администратора всегда ложатся задачи отслеживания и настройки процесса резервного копирования и восстановления.
В этой главе описаны основные шаги, которые следует предпринять для обеспечения надежной работы СУБД. Рассмотрены особенности инсталляции, работа с различными регистрационными журналами, методы проверки и восстановления таблиц, основные проблемы резервирования с использованием утилит, имеющихся в арсенале MySQL.