русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Mysqldump, получение дампов данных и структуры таблицы


Дата добавления: 2015-07-09; просмотров: 522; Нарушение авторских прав


Данная утилита позволяет получить дамп ("моментальный снимок") содержимого базы данных или совокупности баз для создания резервной копии или пересылки данных на другой SQL-сервер баз данных (не обязательно MySQL-сервер). Дамп будет содержать набор команд SQL для создания и/или заполнения таблиц.

Если же резервная копия создается на сервере, то вместо описываемой утилиты следует использовать mysqlhotcopy.

shell> mysqldump [OPTIONS] database [tables]или mysqldump [OPTIONS] -databases [OPTIONS] DB1 [DB2 DB3...]или mysqldump [OPTIONS] -all-databases [OPTIONS]

Если не указывать имена таблиц или использовать параметры -databases или -all-databases, то будет получен дамп базы данных в целом (соответственно — всех баз данных).

Перечень опций, поддерживаемых вашей конкретной версией утилиты mysqldump, можно получить, выполнив команду mysqldump -help.

Следует иметь в виду, что утилита mysqldump, используемая без опций -quick или -opt, перед тем, как сделать дамп результата выборки информации, загрузит весь результат в память. Это может создать проблемы при получении дампа большой базы данных.

Учтите, что не следует применять параметры -opt или -e, если вы собираетесь использовать для получения дампа новую копию программы mysqldump, а затем воспроизводить его на очень старом MySQL-сервере.

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

· -add-locks

Добавить команды LOCK TABLES перед выполнением и UNLOCK TABLE после выполнения каждого дампа таблицы (для ускорения доступа к MySQL).

· -add-drop-table

Добавить команду DROP TABLE перед каждой командой CREATE TABLE.

· -A, -all-databases

Произвести дамп всех баз данных. Аналогично опции -databases с указанием всех баз данных.

· -a, -all

Включить все опции создания объектов, специфичные для MySQL.

· -allow-keywords

Разрешить создавать имена столбцов, которые совпадают с ключевыми словами. Отсутствие конфликтов обеспечивается прибавлением имени таблицы в качестве префикса к имени каждого столбца.



· -c, -complete-insert

Использовать полные команды INSERT (с именами столбцов).

· -C, -compress

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

· -B, -databases

Выполнить дамп нескольких баз данных. Обратите внимание на разницу в применении: в этом случае таблицы не указываются. Все имена аргументов рассматриваются как имена баз данных. Оператор USE db_name; включается в вывод перед каждой новой базой данных.

· -delayed

Использовать команду INSERT DELAYED при вставке строк.

· -e, -extended-insert

Использовать команду INSERT с новым многострочным синтаксисом (повышает компактность и быстродействие операторов ввода).

· -#, -debug[=option_string]

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

· -help

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

· -fields-terminated-by=... , -fields-enclosed-by=... , -fields-optionally-enclosed-by=... , · -fields-escaped-by=... , -lines-terminated-by=...

Эти опции используются совместно с параметром -T и имеют то же самое значение, что и соответствующие операторы для LOAD DATA INFILE.

· -F, -flush-logs

Записать на диск данные системного журнала из буфера MySQL-сервера перед началом выполнения дампа.

· -f, -force,

Продолжать даже при получении ошибки SQL при выполнении дампа таблицы.

· -h, -host=..

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

· -l, -lock-tables.

Заблокировать все таблицы перед началом выполнения дампа. Таблицы блокируются оператором READ LOCAL, чтобы разрешить параллельные записи для MyISAM-таблиц. Следует отметить, что при выполнении дампа совокупности баз данных опция -lock-tables блокирует таблицы каждой базы по отдельности. Таким образом, использование этого параметра не гарантирует, что таблицы будут логически непротиворечивы в пределах этих баз данных. В различных базах данных при выполнении дампа таблицы могут находиться в совершенно разных состояниях.

· -K, -disable-keys

Добавляет выражение /*!40000 ALTER TABLE tb_name DISABLE KEYS */; и /*!40000 ALTER TABLE tb_name ENABLE KEYS */; в выводе результата. Это ускорит загрузку данных на сервер MySQL 4.0, так как индексы создаются после внесения всех данных.

· -n, -no-create-db

В выводе результата выражение CREATE DATABASE /*!32312 IF NOT EXISTS*/ db_name; будет отсутствовать. Данная строка будет добавлена в любом случае при использовании опций -databases или -all-databases.

· -t, -no-create-info

Не записывать информацию о создании таблицы (команда CREATE TABLE).

· -d, -no-data

Не записывать информацию из строк таблицы. Это очень полезно для получения дампа структуры таблицы!

· -opt

То же, что и -quick -add-drop-table -add-locks -extended-insert -lock-tables. Должно дать наиболее быстрый дамп для чтения на MySQL-сервере.

· -pyour_pass, -password[=your_pass]

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

· -P port_num, -port=port_num

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

· -protocol=(TCP | SOCKET | PIPE | MEMORY)

Для указания протокола соединения, который надлежит использовать. Новшество в MySQL 4.1.0.

· -q, -quick

Выводить дамп непосредственно на стандартный вывод stdout без буферизации запроса. Для этого используется функция mysql_use_result().

· -Q, -quote-names

Взять в кавычки имена таблиц и столбцов без символов '`'.

· -r, -result-file=...

Прямой вывод указанного файла. Этот опцию следует использовать в MS DOS, так как она предотвращает преобразование символа новой строки '\n' в последовательность '\n\r' (новая строка + возврат каретки).

· -single-transaction

Данная опция выдает SQL-команду BEGIN перед выполнением дампа данных с сервера. Наиболее часто используется с InnoDB-таблицамии и уровнем изоляции транзакций READ_COMMITTED, так как именно в этом режиме можно получить дамп с непротиворечивым состоянием базы данных после выполнения команды BEGIN без блокирования каких-либо приложений. Используя эту опцию, необходимо помнить, что при выполнении дампа только транзакционные таблицы будут находиться в непротиворечивом состоянии, т.е. некоторые MyISAM- или HEAP-таблицы при использовании данной опции могут все же изменить свое состояние.

Опция -single-transaction добавлена в версии 4.0.2. Она является взаимоисключающей по отношению к опции -lock-tables, так как команда LOCK TABLES уже принимает открытую транзакцию.

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

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

· -tables

Перекрывает параметр -databases (-B).

· -T, -tab=path-to-some-directory

Для каждой заданной таблицы создает файл table_name.sql, содержащий SQL CREATE команды для создания таблицы, и файл table_name.txt с данными таблицы. Файл .txt имеет формат в соответствии с параметрами -fields-xxx и -lines-xxx. Примечание: этот параметр работает только при условии, что утилита mysqldump запущена на том же компьютере, что и демон mysqld, причем пользователь/группа, запустившие данный поток mysqld (обычно это пользователь mysql и группа mysql), должны иметь право создавать/записывать файл по указанному адресу.

· -u user_name, -user=user_name

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

· -O var=option, -set-variable var=option

Установить значения переменных. Доступные для использования переменные перечислены ниже. В MySQL 4.0 просто используйте -var=option.

· -v, -verbose

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

· -V, -version

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

· -w, -where='where-condition'

Выполнить дамп только выбранных записей. Обратите внимание, что кавычки обязательны.

"-where=user='jimf'" "-wuserid>1" "-wuserid<1"· -X, -xml

Представляет дамп базы данных в виде XML.

· -x, -first-slave

Блокирует все таблицы во всех базах данных.

· -O net_buffer_length=#, where # < 16M

При создании многострочных операторов ввода (как и в случаях применения параметров -extended-insert или -opt) утилита mysqldump будет создавать строки длиной вплоть до указанной в net_buffer_length. При увеличении значения этой переменной необходимо также убедиться в том, что в MySQL-сервере для переменной max_allowed_packet указано значение, большее, чем величина net_buffer_length.

Чаще всего утилита 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


<== предыдущая лекция | следующая лекция ==>
Использование mysqlcheck для сопровождения и аварийного восстановления таблиц. | Mysqlhotcopy, копирование баз данных и таблиц MySQL


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.32 сек.