Опубликован: 16.04.2007 | Доступ: свободный | Студентов: 5320 / 857 | Оценка: 4.18 / 4.08 | Длительность: 16:03:00
Лекция 5:

Сценарии и утилиты MySQL

Чаще всего утилита mysqldump используется для получения резервной копии всех баз данных.

mysqldump -opt database > backup-file.sql

Можно, наоборот, прочитать этот файл на MySQL-сервере посредством команды:

mysql database < backup-file.sql

или

mysql -e "source /patch-to-backup/backup-file.sql" database

Данная утилита достаточно часто используется и для переноса информации из базы данных на другой MySQL-сервер:

mysqldump -opt database | mysql -host=remote-host -C database

Вполне возможно получить дамп нескольких баз данных с помощью одной команды:

mysqldump -databases database1 [database2 ...] > my_databases.sql

Если необходим дамп всех баз данных, можно использовать:

mysqldump -all-databases > all_databases.sql

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 поддерживает следующие опции:

  • -u, -user=#

    Имя пользователя для входа в базу данных.

  • -p, -password=#

    Используемый пароль при подсоединении к серверу.

  • -P, -port=#

    Номер порта, используемого для подсоединения к локальному серверу.

  • -S, -socket=#

    Номер сокета, используемого для подсоединения к локальному серверу.

  • -keepold

    Не удалять предыдущий результат (только что переименованный) после выполнения команды.

  • -q, -quiet

    Выводить только сообщения об ошибках.

  • -debug

    Разрешить отладку.

  • -n, -dryrun

    Сообщать о действиях без их выполнения.

  • -regexp=#

    Копировать все базы данных с именами, встречающимися в функции regexp.

  • -checkpoint=#

    Внести проверочную запись в предусмотренную таблицу базы данных.

  • -flushlog

    Записать на диск данные журналов из буфера, как только все таблицы заблокируются.

  • -tmpdir=#

    Временная директория (вместо /tmp ).

А также некоторые другие. Более полное описание данного сценария можно посмотреть в документации по языку программирования Perl.

Сценарий mysqlhotcopy берет информацию для групп [client] и [mysqlhotcopy] из файлов опций.

Для выполнения программы mysqlhotcopy необходимы доступ для записи в директорию, куда будет помещена копия, и привилегия выполнения команды SELECT для копируемых таблиц и команды RELOAD для MySQL-сервера (чтобы выполнить FLUSH TABLES ).

Александра Каева
Александра Каева
Дмитрий Черепенин
Дмитрий Черепенин

Какого года данный курс?