Очевидно, как и в случае любых других файлов, вы должны иметь резервные копии своих баз данных. Можно также сделать копию базы данных с целью репликации или для того, чтобы переместить ее на другую машину.
В MySQL имеется несколько вариантов резервирования баз данных.
■ Применение сценария mysql dump для создания дампа, т.е. файла, содержащего операторы SQL, необходимые для воссоздания базы данных.
■ Применение сценария mysqlhotcopy для создания файла данных. Этот сценарий непосредственно копирует файлы данных конкретной базы данных.
■ Непосредственное создание резервной копии файлов данных вручную. Это фактически эквивалентно применению mysqlhotcopy, но в данном случае все делается вручную. Если вы предпочтете использовать этот вариант, необходимо перед копированием прекратить работу базы данных или обновить и блокировать все таблицы, чтобы обеспечить их внутреннюю согласованность. И mysqldump, и mysqlhotcopy обновят и блокируют таблицы за вас, поэтому применение указанных сценариев является более простым и безопасным.
■ Использование команд BACKUP TABLE и RESTORE TABLE для резервирования или восстановления конкретной таблицы или множества таблиц.
Мы рассмотрим каждый из этих вариантов по очереди.
Не забывайте также о том, что хотя резервирование и является жизненно .важным для нормальной работы базы данных, на время выполнения резервирования доступ пользователей к базе данных ограничивается. Зачем? Чтобы получить согласованный “снимок” базы данных, таблицы должны быть обновлены и во время копирования должны оставаться в неизменном состоянии. Этого можно добиться, заблокировав таблицы (как это и бывает в большинстве случаев) или выключив сервер (чего делать не рекомендуется), но в любом случае на время выполнения резервирования приходится уменьшить способность базы данных к реагированию на запросы.
Одним из решений этой проблемы является использование репликации. Вы получаете возможность отключить один компонент системы и выполнить резервное копирование, в то время как пользователи продолжают счастливо делать свое дело. Мы обсудим использование репликации достаточно подробно в главе 16, “Репликация баз данных”.