4.8.6 mysqlhotcopy, Копирование баз данных и таблиц MySQL
4.8.6 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).