Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / MySQL / Администрирование баз данных /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Клиентские сценарии и утилиты MySQL - Программирование от RIN.RU
Клиентские сценарии и утилиты MySQL



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).


mysqlimport, импорт данных из текстовых файлов


Утилита mysqlimport обеспечивает интерфейс командной строки для SQL-оператора LOAD DATA INFILE. Большинство параметров mysqlimport полностью соответствует аналогичным параметрам для оператора LOAD DATA
INFILE
. См. раздел Синтаксис оператора LOAD DATA INFILE.


Утилита mysqlimport вызывается следующим образом:


shell> mysqlimport [параметры] database textfile1 [textfile2 ...]


Для каждого текстового файла, указанного в командной строке, mysqlimport удаляет расширение в каждом имени файла и использует его, чтобы определить, в какую таблицу занести содержимое. Например, файлы с именами 'patient.txt', 'patient.text' и 'patient' должны быть все занесены в таблицу с именем 'patient'.


Утилита mysqlimport поддерживает следующие опции:


-c, --columns=...

Эта опция принимает в качестве аргумента список разделенных запятыми имен полей. Данный список полей используется для создания соответствующей
команды LOAD DATA INFILE, которая затем посылается в MySQL. См. раздел Синтаксис оператора LOAD DATA INFILE.

-C, --compress

Использовать компрессию в связи между клиентом и сервером, если они оба поддерживают сжатие.

-#, --debug[=option_string]

Отслеживать прохождение программы (для отладки).

-d, --delete

Удалить данные из таблицы перед импортированием текстового файла.

--fields-terminated-by=...


--fields-enclosed-by=...


--fields-optionally-enclosed-by=...


--fields-escaped-by=...


--lines-terminated-by=...

Эти опции аналогичны соответствующим операторам для LOAD DATA INFILE. См. раздел Синтаксис оператора LOAD DATA INFILE.

-f, --force

Игнорировать ошибки. Например, если таблица для текстового файла не существует, продолжать обработку остающихся файлов. Без параметра --force утилита mysqlimport прекращает работу при отсутствии таблицы.

--help

Вывести справочную информацию и выйти из программы.

-h host_name, --host=host_name

Импортировать данные в MySQL-сервер на указанном хосте. Значение хоста по умолчанию - localhost.

-i, --ignore

См. описание для параметра --replace.

-l, --lock-tables

Заблокировать все таблицы для записи перед обработкой любых текстовых файлов. Это обеспечивает синхронизацию всех таблиц на сервере.

-L, --local

Читать входящие файлы из клиента. По умолчанию предполагается, что текстовые файлы расположены на сервере при подсоединении к localhost (значение хоста по умолчанию).

-pyour_pass, --password[=your_pass]

Используемый пароль при подключении к серверу. Если аргумент =your_pass не введен, mysqlimport предложит ввести пароль.

-P port_num, --port=port_num

Номер порта TCP/IP, используемого для подсоединения к хосту (применяется при подсоединении к хостам, отличным от localhost, для которого используются сокеты Unix).

-r, --replace

Опции --replace и --ignore управляют обработкой поступающих на вход записей, которые дублируют имеющиеся записи по значениям уникальных ключей. Если задано значение --replace, новые строки заменяют существующие с тем же самым значением уникального ключа. Если задано значение --ignore, входные строки, которые дублируют существующую строку по значению уникального ключа, пропускаются. Если же ни одна из опций не задана, то при обнаружении ключа-дубликата возникает ошибка и остаток текстового файла игнорируется.

-s, --silent

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

-S /path/to/socket, --socket=/path/to/socket

Файл сокета для подсоединения к localhost (значение хоста по умолчанию).

-u user_name, --user=user_name

Имя пользователя MySQL-сервера, используемое при подсоединении к серверу. Значением по умолчанию является имя для входа в Unix.

-v, --verbose

Расширенный режим вывода. Вывод более детальной информации о работе программы.

-V, --version

Вывести информацию о версии и выйти из программы.


Ниже приведен пример листинга программы, использующей утилиту mysqlimport:


$ mysql --version
mysql Ver 9.33 Distrib 3.22.25, for pc-linux-gnu (i686)
$ uname -a
Linux xxx.com 2.2.5-15 #1 Mon Apr 19 22:21:09 EDT 1999 i586 unknown
$ mysql -e 'CREATE TABLE imptest(id INT, n VARCHAR(30))' test
$ ed
a
100 Max Sydow
101 Count Dracula
.
w imptest.txt
32
q
$ od -c imptest.txt
0000000 1 0 0 \t M a x S y d o w \n 1 0
0000020 1 \t C o u n t D r a c u l a \n
0000040
$ mysqlimport --local test imptest.txt
test.imptest: Records: 2 Deleted: 0 Skipped: 0 Warnings: 0
$ mysql -e 'SELECT * FROM imptest' test


+------+---------------+
| id | n |
+------+---------------+
| 100 | Max Sydow |
| 101 | Count Dracula |
+------+---------------+




<<<  НазадВперед  >>>
 1  2  3  4  5  6 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Конфигурирование MySQL

Общие проблемы безопасности и система привилегий доступа MySQL

Управление учетными записями пользователей MySQL

Предотвращение катастроф и восстановление

Справочник по языку администрирования баз данных

Локализация MySQL и использование национальных алфавитов

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

Файлы журналов MySQL

Репликация в MySQL

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь