mysqlhotcopy, Копирование баз данных и таблиц MySQL
Утилита mysqlhotcopy представляет собой Perl-сценарий, использующий
SQL-команды LOCK TABLES, FLUSH TABLES и Unix-утилиты cp или scp для
быстрого получения резервной копии базы данных. Пожалуй, это наиболее
быстрый способ копирования базы данных в целом или одиночных таблиц, но он
может работать только на том же компьютере, где расположены каталоги
копируемой базы данных.
mysqlhotcopy db_name [/path/to/new_directory]
mysqlhotcopy db_name_1 ... db_name_n /path/to/new_directory
mysqlhotcopy db_name./regex/
Утилита 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).
Содержание раздела