mysqlhotcopy, Копирование баз данных и таблиц MySQL
Утилита mysqlhotcopy представляет собой Perl-сценарий, использующий
SQL-команды LOCK TABLES, FLUSH TABLES и Unix-утилиты cp или scp для
быстрого получения резервной копии базы данных. Пожалуй, это наиболее
быстрый способ копирования базы данных в целом или одиночных таблиц, но он
может работать только на том же компьютере, где расположены каталоги
копируемой базы данных.
Утилита mysqlhotcopy поддерживает следующие опции:
-?, --help
Показать окно справки и выйти из программы.
-u, --user=#
Имя пользователя для входа в базу данных.
-p, --password=#
Используемый пароль при подсоединении к серверу.
-P, --port=#
Номер порта, используемого для подсоединения к локальному серверу.
-S, --socket=#
Номер сокета, используемого для подсоединения к локальному серверу.
--allowold
Не делать прерывания, если объект уже существует (переименовать в it_old).
--keepold
Не удалять предыдущий результат (только что переименованный) после
выполнения команды.
--noindices
Не включать обширные индексные файлы в копию, чтобы сделать дубликат
меньше по размеру и более быстрым. Индексы можно реконструировать позже с
помощью команды myisamchk -rq.
--method=#
Метод копирования (cp или scp).
-q, --quiet
Выводить только сообщения об ошибках.
--debug
Разрешить отладку.
-n, --dryrun
Сообщать о действиях без их выполнения.
--regexp=#
Копировать все базы данных с именами, встречающимися в функции regexp.
--suffix=#
Суффикс для имен скопированных баз данных.
--checkpoint=#
Внести проверочную запись в предусмотренную таблицу базы данных.
--flushlog
Записать на диск данные журналов из буфера, как только все таблицы
заблокируются.
--tmpdir=#
Временная директория (вместо `/tmp').
Более полное описание данного сценария можно посмотреть в документации по
языку программирования Perl.
Сценарий mysqlhotcopy берет информацию для групп [client] и [mysqlhotcopy]
из файлов опций.
Для выполнения программы mysqlhotcopy необходимы доступ для записи в
директорию, куда будет помещена копия, и привилегия выполнения команды
SELECT для копируемых таблиц и команды RELOAD для MySQL-сервера (чтобы
выполнить FLUSH TABLES).