Второй метод резервирования баз данных и таблиц заключается в непосредственном копировании файлов таблиц. Как правило, эта процедура выполняется с помощью таких утилит, как ср, tar или cpio. В примерах этой лекции используется программа ср.
Как уже отмечалось, применяя методы прямого копирования, обязательно нужно убедиться, что таблицы в процессе резервирования не используются другими пользователями. Если сервер изменяет какую-либо таблицу во время копирования, ее копия окажется искаженной.
Лучший способ обеспечить целостность копий — временно приостановить работу сервера, скопировать файлы и затем снова запустить сервер.
Итак, предположим, что работа сервера временно приостановлена либо подлежащие копированию таблицы защищены от изменения. В таком случае резервирование всей базы данных samp_db в каталог резервирования (DATADIR в этом примере — каталог данных сервера) выполняется посредством следующих команд:
% cd DATADIR % cp -r samp_db /usr/archive/mysql Для резервирования отдельных таблиц введите следующие команды:
% cd DATADIR/samp_db % ср member.* /usr/archive/mysql/samp_db % ср score.* /usr/archive/mysql/samp_db По завершению процедуры резервирования можно перезапустить сервер (если его работа была приостановлена) или снять блокировку с таблиц (если сервер все же работал).
Для переноса зарезервированных методом прямого копирования файлов на другой компьютер достаточно еще раз скопировать их в соответствующий каталог базы данных другого компьютера. Однако прежде необходимо убедиться, что файлы соответствуют MyISAM-таблицам и оба компьютера имеют одинаковую аппаратную архитектуру. Иначе содержимое таблицы на втором компьютере может выглядеть очень странно. Следует также проверить, что в процессе инсталляции файлов на другой компьютер пользователи сервера не пытались получить к ним доступ.