Spec-Zone.ru › MySQL 5.7

4.5.6 mysqlpump — Программа резервного копирования базы данных

  • Синтаксис вызова mysqlpump

  • Обзор параметров mysqlpump

  • Описание параметров mysqlpump

  • Выбор объектов mysqlpump

  • Параллельная обработка mysqlpump

  • Ограничения mysqlpump

Утилита-клиент mysqlpump выполняет резервное копирование, создавая набор SQL-команд, которые можно выполнить, чтобы воспроизвести исходные определения объектов базы данных и данные таблиц. Она экспортирует одну или несколько баз данных MySQL для резервного копирования или переноса на другой сервер SQL.

Функции mysqlpump включают:

  • Параллельная обработка баз данных и объектов внутри баз данных для ускорения процесса экспорта

  • Более точный контроль над тем, какие базы данных и объекты баз данных (таблицы, хранимые программы, учетные записи пользователей) должны быть экспортированы

  • Экспорт учетных записей пользователей в виде команд управления учетными записями (CREATE USER, GRANT), а не как вставки в базу данных системы mysql

  • Возможность создания сжатого вывода

  • Индикатор выполнения (значения являются оценками)

  • Для перезагрузки файла экспорта, более быстрое создание вторичных индексов для таблиц InnoDB путем добавления индексов после вставки строк

mysqlpump требует, как минимум, привилегии SELECT для экспортируемых таблиц, SHOW VIEW для экспортируемых представлений, TRIGGER для экспортируемых триггеров и LOCK TABLES, если не используется опция --single-transaction. Привилегия SELECT на базе данных системы mysql требуется для экспорта определений пользователей. Некоторые параметры могут потребовать других привилегий, как указано в описаниях параметров.

Для перезагрузки файла экспорта необходимо иметь привилегии, необходимые для выполнения содержащихся в нём команд, такие как соответствующие CREATE привилегии для объектов, созданных этими командами.

Примечание

Экспорт, выполненный с использованием PowerShell на Windows с перенаправлением вывода, создаёт файл с кодировкой UTF-16:

mysqlpump [options] > dump.sql

Однако UTF-16 не допускается как кодировка соединения (см. Раздел 10.4, «Наборы символов и сопоставления соединения»), поэтому файл экспорта не загружается корректно. Чтобы обойти эту проблему, используйте параметр --result-file, который создаёт вывод в формате ASCII:

mysqlpump [options] --result-file=dump.sql

Синтаксис вызова mysqlpump

По умолчанию, mysqlpump экспортирует все базы данных (с определёнными исключениями, указанными в Разделе ограничений mysqlpump). Для явного указания этого поведения используйте опцию --all-databases:

mysqlpump --all-databases

Для экспорта одной базы данных или определённых таблиц в этой базе данных, укажите имя базы данных в командной строке, необязательно с последующими именами таблиц:

mysqlpump db_name
mysqlpump db_name tbl_name1 tbl_name2 ...

Для обработки всех имен аргументов как имён баз данных, используйте опцию --databases:

mysqlpump --databases db_name1 db_name2 ...

По умолчанию, mysqlpump не экспортирует определения учетных записей пользователей, даже если экспортируется база данных системы mysql, содержащая таблицы разрешений. Чтобы экспортировать содержимое таблиц разрешений как логические определения в виде команд CREATE USER и GRANT, используйте опцию --users и подавите экспорт всех баз данных:

mysqlpump --exclude-databases=% --users

В предыдущей команде % — это символ подстановки, который соответствует всем именам баз данных для опции --exclude-databases.

mysqlpump поддерживает несколько опций для включения или исключения баз данных, таблиц, хранимых программ и определений пользователей. См. Выбор объектов mysqlpump.

Для перезагрузки файла экспорта выполните содержащиеся в нём команды. Например, используйте клиент mysql:

mysqlpump [options] > dump.sql
mysql < dump.sql

Далее приведено дополнительное описание примеров использования mysqlpump.

Для просмотра списка поддерживаемых опций mysqlpump, введите команду mysqlpump --help.

Обзор параметров mysqlpump

mysqlpump поддерживает следующие параметры, которые можно указать в командной строке или в группах [mysqlpump] и [client] файла параметров. (До версии MySQL 5.7.30 mysqlpump считывал группу [mysql_dump], а не [mysqlpump]. Начиная с версии 5.7.30, [mysql_dump] всё ещё принимается, но устарела.) Дополнительную информацию о файлах параметров, используемых MySQL-программами, можно найти в Разделе 4.2.2.2, «Использование файлов параметров».

Таблица 4.18 Параметры mysqlpump

Таблица 4.18 Параметры mysqlpump
Название параметра Описание Введено
END_OF_DOCUMENT_MARKER
--add-drop-database Добавить оператор DROP DATABASE перед каждым оператором CREATE DATABASE
--add-drop-table Добавить оператор DROP TABLE перед каждым оператором CREATE TABLE
--add-drop-user Добавить оператор DROP USER перед каждым оператором CREATE USER
--add-locks Окружить каждый дамп таблицы операторами LOCK TABLES и UNLOCK TABLES
--all-databases Сделать дамп всех баз данных
--bind-address Использовать указанный сетевой интерфейс для подключения к MySQL Server
--character-sets-dir Директория, где установлены наборы символов
--complete-insert Использовать полные операторы INSERT, включающие имена столбцов
--compress Сжать всю информацию, передаваемую между клиентом и сервером
--compress-output Алгоритм сжатия вывода
--databases Рассматривать все имена аргументов как имена баз данных
--debug Записать отладочный журнал
--debug-check Вывести отладочную информацию при выходе программы
--debug-info Вывести отладочную информацию, статистику памяти и ЦП при выходе программы
--default-auth Плагин аутентификации для использования
--default-character-set Указать набор символов по умолчанию
--default-parallelism Количество потоков по умолчанию для параллельной обработки
--defaults-extra-file Прочитать файл опций с указанным именем дополнительно к обычным файлам опций
--defaults-file Прочитать только файл опций с указанным именем
--defaults-group-suffix Значение суффикса группы опций
--defer-table-indexes При перегрузке отложить создание индексов до загрузки строк таблицы
--events Сделать дамп событий из экспортированных баз данных
--exclude-databases Базы данных, которые следует исключить из дампа
--exclude-events События, которые следует исключить из дампа
--exclude-routines Процедуры и функции, которые следует исключить из дампа
--exclude-tables Таблицы, которые следует исключить из дампа
--exclude-triggers Триггеры, которые следует исключить из дампа
--exclude-users Пользователей, которые следует исключить из дампа
--extended-insert Использовать синтаксис INSERT для нескольких строк
--get-server-public-key Запросить открытый ключ RSA у сервера 5.7.23
--help Отобразить сообщение справки и выйти
--hex-blob Сделать дамп бинарных столбцов в шестнадцатеричном формате
--host Хост, на котором расположен MySQL сервер
--include-databases Базы данных, которые следует включить в дамп
--include-events События, которые следует включить в дамп
--include-routines Процедуры и функции, которые следует включить в дамп
--include-tables Таблицы, которые следует включить в дамп
--include-triggers Триггеры, которые следует включить в дамп
--include-users Пользователей, которые следует включить в дамп
--insert-ignore Записать INSERT IGNORE вместо операторов INSERT
--log-error-file Добавлять предупреждения и ошибки в указанный файл
--login-path Прочитать опции пути входа из .mylogin.cnf
--max-allowed-packet Максимальная длина пакета для отправки или получения от сервера
--net-buffer-length Размер буфера для TCP/IP и сокетного обмена
--no-create-db Не записывать операторы CREATE DATABASE
--no-create-info Не записывать операторы CREATE TABLE, которые повторно создают каждую экспортируемую таблицу
--no-defaults Не читать файлы опций
--parallel-schemas Указать параллельность обработки схем
--password Пароль для подключения к серверу
--plugin-dir Директория, где установлены плагины
--port Номер порта TCP/IP для подключения
--print-defaults Вывести опции по умолчанию
--protocol Транспортный протокол для использования
--replace Записать операторы REPLACE вместо операторов INSERT
--result-file Направить вывод в указанный файл
--routines Сделать дамп хранимых процедур и функций из экспортированных баз данных
--secure-auth Не отправлять пароли на сервер в старом формате (до 4.1)
--server-public-key-path Имя пути к файлу, содержащему открытый ключ RSA 5.7.23
--set-charset Добавить SET NAMES default_character_set к выводу
--set-gtid-purged Добавлять SET @@GLOBAL.GTID_PURGED к выводу 5.7.18
--single-transaction Экспортировать таблицы в рамках одной транзакции
--skip-definer Исключить пункты DEFINER и SQL SECURITY из операторов CREATE для представлений и хранимых программ
--skip-dump-rows Не делать дамп строк таблиц
--socket Файл Unix-сокет или именованная труба Windows для использования
--ssl Включить шифрование соединения
--ssl-ca Файл, содержащий список доверенных центров сертификации SSL
--ssl-capath Директория, содержащая файлы сертификатов уполномоченных центров сертификации SSL
--ssl-cert Файл, содержащий сертификат X.509
--ssl-cipher Допустимые шифры для шифрования соединения
--ssl-crl Файл, содержащий списки отозванных сертификатов
--ssl-crlpath Директория, содержащая файлы списков отозванных сертификатов
--ssl-key Файл, содержащий ключ X.509
--ssl-mode Требуемое состояние безопасности соединения с сервером 5.7.11
--ssl-verify-server-cert Проверка имени хоста по имени общего домена сертификата сервера
--tls-version Допустимые протоколы TLS для зашифрованных соединений 5.7.10
--triggers Выгрузить триггеры для каждой выгруженной таблицы
--tz-utc Добавить SET TIME_ZONE='+00:00' в файл выгрузки
--user Имя пользователя MySQL, используемое при подключении к серверу
--users Выгрузить учетные записи пользователей
--version Отобразить информацию о версии и завершить работу
--watch-progress Отобразить индикатор выполнения

Описание параметров mysqlpump

  • --help, -?

    Формат командной строки --help

    Отобразить сообщение справки и завершить работу.

  • --add-drop-database

    Формат командной строки --add-drop-database

    Записать оператор DROP DATABASE перед каждым оператором CREATE DATABASE.

  • --add-drop-table

    Формат командной строки --add-drop-table

    Записать оператор DROP TABLE перед каждым оператором CREATE TABLE.

  • --add-drop-user

    Формат командной строки --add-drop-user

    Записать оператор DROP USER перед каждым оператором CREATE USER.

  • --add-locks

    Формат командной строки --add-locks

    Окружить каждый дамп таблицы операторами LOCK TABLES и UNLOCK TABLES. Это приводит к более быстрому выполнению операций вставки при повторном загрузке файла дампа. См. Раздел 8.2.4.1, «Оптимизация операторов INSERT».

    Этот параметр не работает с параллелизмом, так как операторы INSERT из разных таблиц могут быть переставлены, и UNLOCK TABLES после завершения вставки для одной таблицы могут освободить блокировки для таблиц, для которых вставки ещё не завершены.

    Параметры --add-locks и --single-transaction являются взаимоисключающими.

  • --all-databases, -A

    Формат командной строки --all-databases

    Дампить все базы данных (с некоторыми исключениями, указанными в mysqlpump Restrictions). Это поведение по умолчанию, если явно не указано другое.

    Параметры --all-databases и --databases являются взаимоисключающими.

  • --bind-address=ip_address

    Формат командной строки --bind-address=ip_address

    На компьютере с несколькими сетевыми интерфейсами этот параметр используется для выбора интерфейса, который будет использоваться для подключения к серверу MySQL.

  • --character-sets-dir=path

    Формат командной строки --character-sets-dir=dir_name
    Тип Имя каталога

    Каталог, в котором установлены наборы символов. См. Раздел 10.15, «Настройка наборов символов».

  • --complete-insert

    Формат командной строки --complete-insert

    Записать полные операторы INSERT, включающие имена столбцов.

  • --compress, -C

    Формат командной строки --compress[={OFF|ON}]
    Тип Булево
    Значение по умолчанию OFF

    При возможности сжать всю информацию, передаваемую между клиентом и сервером. См. Раздел 4.2.6, «Управление сжатием соединений».

  • --compress-output=algorithm

    Формат командной строки --compress-output=algorithm
    Тип Перечисление
    Допустимые значения

    LZ4

    ZLIB

    По умолчанию mysqlpump не сжимает вывод. Этот параметр задаёт сжатие вывода с использованием указанного алгоритма. Разрешенные алгоритмы: LZ4 и ZLIB.

    Для распаковки сжатого вывода необходимо иметь соответствующую утилиту. Если системные команды lz4 и openssl zlib недоступны, дистрибутивы MySQL с версии 5.7.10 включают утилиты lz4_decompress и zlib_decompress, которые можно использовать для распаковки вывода mysqlpump, сжатого с помощью параметров --compress-output=LZ4 и --compress-output=ZLIB. Дополнительная информация в Разделе 4.8.1, «lz4_decompress — Распаковать сжатый mysqlpump LZ4-выход» и Разделе 4.8.5, «zlib_decompress — Распаковать сжатый mysqlpump ZLIB-выход».

    Альтернативы включают команды lz4 и openssl, если они установлены в вашей системе. Например, lz4 может распаковать LZ4 вывод:

    lz4 -d input_file output_file
    

    ZLIB вывод можно распаковать так:

    openssl zlib -d < input_file > output_file
    
  • --databases, -B

    Формат командной строки --databases

    Обычно mysqlpump рассматривает первое имя в аргументах командной строки как имя базы данных, а последующие имена — как имена таблиц. С этим параметром все имена аргументов рассматриваются как имена баз данных. Операторы CREATE DATABASE включаются в вывод перед каждой новой базой данных.

    Параметры --all-databases и --databases являются взаимоисключающими.

  • --debug[=debug_options], -# [debug_options]

    Формат командной строки --debug[=debug_options]
    Тип Строка
    Значение по умолчанию d:t:O,/tmp/mysqlpump.trace

    Записать журнал отладки. Типичная строка debug_options имеет вид d:t:o,file_name. По умолчанию используется d:t:O,/tmp/mysqlpump.trace.

    Этот параметр доступен только в том случае, если MySQL был скомпилирован с использованием WITH_DEBUG. Выпущенные бинарные файлы MySQL, предоставляемые Oracle, не скомпилированы с использованием этого параметра.

  • --debug-check

    Формат командной строки --debug-check
    Тип Булево
    Значение по умолчанию FALSE

    Вывести информацию для отладки при завершении программы.

    Этот параметр доступен только в том случае, если MySQL был скомпилирован с использованием WITH_DEBUG. Выпущенные бинарные файлы MySQL, предоставляемые Oracle, не скомпилированы с использованием этого параметра.

  • --debug-info, -T

    Формат командной строки --debug-info
    Тип Булево
    Значение по умолчанию FALSE

    Вывести информацию для отладки, а также статистику использования памяти и ЦП при завершении программы.

    Этот параметр доступен только в том случае, если MySQL был скомпилирован с использованием WITH_DEBUG. Выпущенные бинарные файлы MySQL, предоставляемые Oracle, не скомпилированы с использованием этого параметра.

  • --default-auth=plugin

    Формат командной строки --default-auth=plugin
    Тип Строка

    Указание о том, какой плагин проверки подлинности клиента использовать. См. Раздел 6.2.13, «Плагины аутентификации».

  • --default-character-set=charset_name

    Формат командной строки --default-character-set=charset_name
    Тип Строка
    Значение по умолчанию utf8

    Использовать charset_name в качестве кодировки по умолчанию. См. Раздел 10.15, «Настройка кодировок». Если кодировка не указана, mysqlpump использует utf8.

  • --default-parallelism=N

    Формат командной строки --default-parallelism=N
    Тип Целое число
    Значение по умолчанию 2

    Число потоков по умолчанию для каждой очереди параллельной обработки. По умолчанию используется 2 потока.

    Параметр --parallel-schemas также влияет на параллелизм и может быть использован для переопределения значения по умолчанию. Дополнительная информация приведена в mysqlpump Параллельная обработка.

    При использовании --default-parallelism=0 без параметра --parallel-schemas, mysqlpump выполняется как однопоточная программа и не создает очереди.

    При включенном паралеллизме возможна интерлейвция вывода из разных баз данных.

    Примечание

    До MySQL 5.7.11, использование параметра --single-transaction несовместимо с параллелизмом. Для использования --single-transaction отключите параллелизм, установив --default-parallelism в 0 и не используя никакие параметры --parallel-schemas:

    mysqlpump --single-transaction --default-parallelism=0
    
  • --defaults-extra-file=file_name

    Формат командной строки --defaults-extra-file=file_name
    Тип Имя файла

    Прочитать этот файл параметров после глобального файла параметров, но (на Unix) перед пользовательским файлом параметров. Если файл не существует или недоступен, произойдет ошибка. Если file_name не является абсолютным путем, он интерпретируется относительно текущего каталога.

    Дополнительную информацию об этом и других параметрах файла параметров см. в Раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файлов параметров».

  • --defaults-file=file_name

    Формат командной строки --defaults-file=file_name
    Тип Имя файла

    Использовать только указанный файл параметров. Если файл не существует или недоступен, произойдет ошибка. Если file_name не является абсолютным путем, он интерпретируется относительно текущего каталога.

    Исключение: даже с --defaults-file, клиентские программы читают .mylogin.cnf.

    Дополнительную информацию об этом и других параметрах файла параметров см. в Раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файлов параметров».

  • --defaults-group-suffix=str

    Формат командной строки --defaults-group-suffix=str
    Тип Строка

    Читать не только обычные группы параметров, но также группы с обычными именами и суффиксом str. Например, mysqlpump обычно читает группы [client] и [mysqlpump]. Если этот параметр задан как --defaults-group-suffix=_other, mysqlpump также читает группы [client_other] и [mysqlpump_other].

    Дополнительную информацию об этом и других параметрах файла параметров см. в Раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файлов параметров».

  • --defer-table-indexes

    Формат командной строки --defer-table-indexes
    Тип Булево
    Значение по умолчанию TRUE

    В выводе дампа отложить создание индексов таблицы до загрузки строк. Это работает для всех хранилищ данных, но для InnoDB применяется только для вторичных индексов.

    Этот параметр включен по умолчанию; отключить его можно с помощью --skip-defer-table-indexes.

  • --events

    Формат командной строки --events
    Тип Boolean
    Значение по умолчанию TRUE

    Включать события Планировщика событий для дампинга баз данных в выходные данные. Для дампа событий требуются права EVENT для этих баз данных.

    Выходные данные, сгенерированные с использованием --events, содержат операторы CREATE EVENT для создания событий. Однако эти операторы не включают такие атрибуты, как метки времени создания и изменения события, поэтому при перезагрузке событий они создаются с метками времени, равными времени перезагрузки.

    Если вам необходимо, чтобы события создавались с их исходными атрибутами метки времени, не используйте --events. Вместо этого напрямую экспортируйте и загрузите содержимое таблицы mysql.event, используя учетную запись MySQL, которая имеет соответствующие права для базы данных mysql.

    Эта опция включена по умолчанию; используйте --skip-events, чтобы отключить её.

  • --exclude-databases=db_list

    Формат командной строки --exclude-databases=db_list
    Тип String

    Не выполнять дамп баз данных в db_list, что представляет собой список из одного или нескольких имён баз данных, разделённых запятыми. Несколько экземпляров этой опции являются аддитивными. Для получения дополнительной информации см. mysqlpump Object Selection.

  • --exclude-events=event_list

    Формат командной строки --exclude-events=event_list
    Тип String

    Не выполнять дамп баз данных в event_list, что представляет собой список из одного или нескольких имён событий, разделённых запятыми. Несколько экземпляров этой опции являются аддитивными. Для получения дополнительной информации см. mysqlpump Object Selection.

  • --exclude-routines=routine_list

    Формат командной строки --exclude-routines=routine_list
    Тип String

    Не выполнять дамп событий в routine_list, что представляет собой список из одного или нескольких имён подпрограмм (хранимых процедур или функций), разделённых запятыми. Несколько экземпляров этой опции являются аддитивными. Для получения дополнительной информации см. mysqlpump Object Selection.

  • --exclude-tables=table_list

    Формат командной строки --exclude-tables=table_list
    Тип String

    Не выполнять дамп таблиц в table_list, что представляет собой список из одного или нескольких имён таблиц, разделённых запятыми. Несколько экземпляров этой опции являются аддитивными. Для получения дополнительной информации см. mysqlpump Object Selection.

  • --exclude-triggers=trigger_list

    Формат командной строки --exclude-triggers=trigger_list
    Тип String

    Не выполнять дамп триггеров в trigger_list, что представляет собой список из одного или нескольких имён триггеров, разделённых запятыми. Несколько экземпляров этой опции являются аддитивными. Для получения дополнительной информации см. mysqlpump Object Selection.

  • --exclude-users=user_list

    Формат командной строки --exclude-users=user_list
    Тип String

    Не выполнять дамп учётных записей пользователей в user_list, что представляет собой список из одного или нескольких имён учётных записей, разделённых запятыми. Несколько экземпляров этой опции являются аддитивными. Для получения дополнительной информации см. mysqlpump Object Selection.

  • --extended-insert=N

    Формат командной строки --extended-insert=N

    Записывать операторы INSERT с использованием синтаксиса нескольких строк, который включает несколько списков VALUES. Это приводит к созданию меньшего файла дампа и ускоряет вставку при перезагрузке файла.

    Значение параметра указывает количество строк, которые необходимо включить в каждый оператор INSERT. Значение по умолчанию равно 250. Значение 1 создаёт один оператор INSERT на строку таблицы.

  • --get-server-public-key

    Формат командной строки --get-server-public-key
    Введено 5.7.23
    Тип Boolean

    Запросить у сервера открытый ключ, необходимый для обмена паролями на основе пары ключей RSA. Этот параметр применяется к клиентам, которые аутентифицируются с помощью плагина аутентификации caching_sha2_password. Для этого плагина сервер не отправляет открытый ключ, если его не запрашивают. Этот параметр игнорируется для учетных записей, которые не аутентифицируются с помощью этого плагина. Он также игнорируется, если не используется обмен паролями на основе RSA, как это имеет место, когда клиент подключается к серверу с использованием защищенного соединения.

    Если указан --server-public-key-path=file_name и указывает на допустимый файл открытого ключа, он имеет приоритет над --get-server-public-key.

    Для получения информации о плагине caching_sha2_password см. Раздел 6.4.1.4, «Кэширование SHA-2 подключаемой аутентификации».

    Параметр --get-server-public-key был добавлен в MySQL 5.7.23.

  • --hex-blob

    Формат командной строки --hex-blob

    Выполнять дамп бинарных столбцов с использованием шестнадцатеричной нотации (например, 'abc' становится 0x616263). Затронутые типы данных — BINARY, VARBINARY, BLOB типы, BIT, все пространственные типы данных и другие небинарные типы данных при использовании с набором символов binary.

  • --host=host_name, -h host_name

    Формат командной строки --host

    Выполнять дамп данных с сервера MySQL на указанном хосте.

  • --include-databases=db_list

    Формат командной строки --include-databases=db_list
    Тип String

    Выполнять дамп баз данных в db_list, что представляет собой список из одного или нескольких имён баз данных, разделённых запятыми. Дамп включает все объекты в указанных базах данных. Несколько экземпляров этой опции являются аддитивными. Для получения дополнительной информации см. mysqlpump Object Selection.

  • --include-events=event_list

    Формат командной строки --include-events=event_list
    Тип Строка

    Выгрузить события в event_list, представляющем собой список одного или нескольких имён событий, разделённых запятыми. Несколько экземпляров этого параметра суммируются. Для получения дополнительной информации см. Выбор объектов mysqlpump.

  • --include-routines=routine_list

    Формат командной строки --include-routines=routine_list
    Тип Строка

    Выгрузить процедуры в routine_list, представляющем собой список одного или нескольких имён процедур (хранимых процедур или функций), разделённых запятыми. Несколько экземпляров этого параметра суммируются. Для получения дополнительной информации см. Выбор объектов mysqlpump.

  • --include-tables=table_list

    Формат командной строки --include-tables=table_list
    Тип Строка

    Выгрузить таблицы в table_list, представляющем собой список одного или нескольких имён таблиц, разделённых запятыми. Несколько экземпляров этого параметра суммируются. Для получения дополнительной информации см. Выбор объектов mysqlpump.

  • --include-triggers=trigger_list

    Формат командной строки --include-triggers=trigger_list
    Тип Строка

    Выгрузить триггеры в trigger_list, представляющем собой список одного или нескольких имён триггеров, разделённых запятыми. Несколько экземпляров этого параметра суммируются. Для получения дополнительной информации см. Выбор объектов mysqlpump.

  • --include-users=user_list

    Формат командной строки --include-users=user_list
    Тип Строка

    Выгрузить учётные записи пользователей в user_list, представляющем собой список одного или нескольких имён пользователей, разделённых запятыми. Несколько экземпляров этого параметра суммируются. Для получения дополнительной информации см. Выбор объектов mysqlpump.

  • --insert-ignore

    Формат командной строки --insert-ignore

    Записать операторы INSERT IGNORE вместо операторов INSERT.

  • --log-error-file=file_name

    Формат командной строки --log-error-file=file_name
    Тип Имя файла

    Записывать сообщения об ошибках и предупреждения, добавляя их в указанный файл. Если этот параметр не указан, mysqlpump записывает предупреждения и ошибки в стандартный вывод ошибок.

  • --login-path=name

    Формат командной строки --login-path=name
    Тип Строка

    Читать параметры из указанного пути входа в файле параметров входа .mylogin.cnf. «Путь входа» — это группа параметров, содержащая параметры, указывающие, к какому серверу MySQL подключиться и под какой учётной записью авторизоваться. Для создания или изменения файла пути входа используйте утилиту mysql_config_editor. См. Раздел 4.6.6, «mysql_config_editor — Утилита конфигурации MySQL».

    Дополнительную информацию об этом и других параметрах файлов см. в Разделе 4.2.2.3, «Параметры командной строки, влияющие на обработку файлов параметров».

  • --max-allowed-packet=N

    Формат командной строки --max-allowed-packet=N
    Тип Числовой
    Значение по умолчанию 25165824

    Максимальный размер буфера для клиентско-серверного взаимодействия. По умолчанию 24 МБ, максимальный 1 ГБ.

  • --net-buffer-length=N

    Формат командной строки --net-buffer-length=N
    Тип Числовой
    Значение по умолчанию 1047552

    Начальный размер буфера для клиентско-серверного взаимодействия. При создании операторов INSERT с несколькими строками (как при использовании параметра --extended-insert), mysqlpump создаёт строки длиной до N байтов. Если вы используете этот параметр для увеличения значения, убедитесь, что системная переменная сервера MySQL net_buffer_length имеет значение, по крайней мере, такое же большое.

  • --no-create-db

    Формат командной строки --no-create-db

    Запретить операторы CREATE DATABASE, которые могли бы быть включены в вывод.

  • --no-create-info, -t

    Формат командной строки --no-create-info

    Не записывать операторы CREATE TABLE, создающие каждую выгруженную таблицу.

  • --no-defaults

    Формат командной строки --no-defaults

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

    Исключением является файл .mylogin.cnf, который читается всегда, если он существует. Это позволяет указывать пароли более безопасно, чем в командной строке, даже когда используется --no-defaults. Для создания файла .mylogin.cnf используйте утилиту mysql_config_editor. См. Раздел 4.6.6, «mysql_config_editor — Утилита конфигурации MySQL».

    Дополнительную информацию об этом и других параметрах файлов см. в Разделе 4.2.2.3, «Параметры командной строки, влияющие на обработку файлов параметров».

  • --parallel-schemas=[N:]db_list

    Формат командной строки --parallel-schemas=[N:]schema_list
    Тип Строка

    Создать очередь для обработки баз данных в db_list, которая представляет собой список одного или нескольких имён баз данных, разделённых запятыми. Если указано N, очередь использует N потоков. Если N не указано, количество потоков очереди определяется опцией --default-parallelism.

    Несколько экземпляров этой опции создают несколько очередей. mysqlpump также создаёт стандартную очередь для баз данных, не указанных ни в одной опции --parallel-schemas, и для выгрузки пользовательских определений, если опции командной строки их выбирают. Для получения дополнительной информации см. mysqlpump Параллельная обработка.

  • --password[=password], -p[password]

    Формат командной строки --password[=password]
    Тип Строка

    Пароль учётной записи MySQL, используемой для подключения к серверу. Значение пароля необязательно. Если оно не указано, mysqlpump запросит его. Если указано, между --password= или -p и последующим паролем не должно быть пробелов. Если опция пароля не указана, по умолчанию пароль не отправляется.

    Указание пароля в командной строке следует считать небезопасным. Чтобы избежать ввода пароля в командной строке, используйте файл опций. См. Раздел 6.1.2.1, «Руководство для конечных пользователей по безопасности паролей».

    Чтобы явно указать, что пароль отсутствует и что mysqlpump не должен запрашивать его, используйте опцию --skip-password.

  • --plugin-dir=dir_name

    Формат командной строки --plugin-dir=dir_name
    Тип Имя каталога

    Каталог, в котором следует искать плагины. Укажите эту опцию, если опция --default-auth используется для указания плагина аутентификации, но mysqlpump не находит его. См. Раздел 6.2.13, «Подключаемая аутентификация».

  • --port=port_num, -P port_num

    Формат командной строки --port=port_num
    Тип Числовое
    Значение по умолчанию 3306

    Номер порта для подключений TCP/IP.

  • --print-defaults

    Формат командной строки --print-defaults

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

    Дополнительную информацию об этой и других опциях файлов опций см. в Разделе 4.2.2.3, «Опции командной строки, влияющие на обработку файлов опций».

  • --protocol={TCP|SOCKET|PIPE|MEMORY}

    Формат командной строки --protocol=type
    Тип Строка
    Значение по умолчанию [see text]
    Допустимые значения

    TCP

    SOCKET

    PIPE

    MEMORY

    Транспортный протокол для подключения к серверу. Это полезно, когда другие параметры подключения обычно приводят к использованию протокола, отличного от желаемого. Подробности о допустимых значениях см. в Разделе 4.2.5, «Протоколы транспортного подключения».

  • --replace

    Формат командной строки --replace

    Записать команды REPLACE, а не INSERT.

  • --result-file=file_name

    Формат командной строки --result-file=file_name
    Тип Имя файла

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

    Эта опция должна использоваться в Windows, чтобы предотвратить преобразование символов новой строки \n в \r\n последовательности возврат каретки/новая строка.

  • --routines

    Формат командной строки --routines
    Тип Булево
    Значение по умолчанию TRUE

    Включить хранимые процедуры (процедуры и функции) для перечисляемых баз данных в выводе. Эта опция требует привилегии SELECT для таблицы mysql.proc.

    Вывод, полученный с помощью --routines, содержит команды CREATE PROCEDURE и CREATE FUNCTION для создания процедур. Однако эти команды не включают такие атрибуты, как временные метки создания и изменения процедур, поэтому при повторном загрузке процедуры создаются с временными метками, равными времени загрузки.

    Если вам необходимо, чтобы процедуры создавались с исходными атрибутами временных меток, не используйте --routines. Вместо этого выгрузите и перезагрузите содержимое таблицы mysql.proc напрямую, используя учётную запись MySQL с соответствующими привилегиями для базы данных mysql.

    Эта опция включена по умолчанию; используйте --skip-routines, чтобы отключить её.

  • --secure-auth

    Формат командной строки --secure-auth

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

    Эта опция устарела; ожидается, что она будет удалена в будущих выпусках MySQL. Она всегда включена, и попытка её выключения (--skip-secure-auth, --secure-auth=0) приводит к ошибке.

  • --server-public-key-path=file_name

    Формат командной строки --server-public-key-path=file_name
    Введено 5.7.23
    Тип Имя файла

    Путь к файлу в формате PEM, содержащему копию открытого ключа клиента, необходимую серверу для обмена паролями на основе пары ключей RSA. Этот параметр применяется к клиентам, которые аутентифицируются с помощью плагина аутентификации sha256_password или caching_sha2_password. Этот параметр игнорируется для учетных записей, которые не аутентифицируются с помощью одного из этих плагинов. Он также игнорируется, если обмен паролями на основе RSA не используется, как в случае, когда клиент подключается к серверу с использованием защищённого соединения.

    Если указан --server-public-key-path=file_name и он указывает на действительный файл открытого ключа, он имеет приоритет над --get-server-public-key.

    Для sha256_password этот параметр применяется только в том случае, если MySQL был скомпилирован с использованием OpenSSL.

    Сведения о плагинах sha256_password и caching_sha2_password см. в Разделе 6.4.1.5, «SHA-256 Pluggable Authentication» и Разделе 6.4.1.4, «Caching SHA-2 Pluggable Authentication».

    Параметр --server-public-key-path был добавлен в MySQL 5.7.23.

  • --set-charset

    Формат командной строки --set-charset

    Запишите SET NAMES default_character_set в выходные данные.

    Этот параметр включён по умолчанию. Чтобы отключить его и подавить оператор SET NAMES, используйте --skip-set-charset.

  • --set-gtid-purged=value

    Формат командной строки --set-gtid-purged=value
    Введено 5.7.18
    Тип Перечисление
    Значение по умолчанию AUTO
    Допустимые значения

    OFF

    ON

    AUTO

    Этот параметр позволяет управлять информацией о глобальных идентификаторах транзакций (GTID), записываемой в файл дампа, указав, нужно ли добавить оператор SET @@GLOBAL.gtid_purged в выходные данные. Этот параметр также может вызвать запись в выходные данные оператора, отключающего двоичное протоколирование во время перезагрузки файла дампа.

    Следующая таблица показывает допустимые значения параметров. Значение по умолчанию — AUTO.

    Значение Описание
    OFF Не добавлять оператор SET в выходные данные.
    ON Добавить оператор SET в выходные данные. Если GTID не включены на сервере, произойдет ошибка.
    AUTO Добавить оператор SET в выходные данные, если GTID включены на сервере.

    Параметр --set-gtid-purged оказывает следующее воздействие на двоичное протоколирование при перезагрузке файла дампа:

    • --set-gtid-purged=OFF: SET @@SESSION.SQL_LOG_BIN=0; не добавляется в выходные данные.

    • --set-gtid-purged=ON: SET @@SESSION.SQL_LOG_BIN=0; добавляется в выходные данные.

    • --set-gtid-purged=AUTO: SET @@SESSION.SQL_LOG_BIN=0; добавляется в выходные данные, если GTID включены на сервере, который вы резервируете (то есть, если AUTO равно ON).

    Этот параметр был добавлен в MySQL 5.7.18.

  • --single-transaction

    Формат командной строки --single-transaction

    Этот параметр устанавливает режим изоляции транзакций на REPEATABLE READ и отправляет оператор START TRANSACTION SQL-запроса на сервер перед дампом данных. Он полезен только с транзакционными таблицами, такими как InnoDB, потому что тогда он сохраняет состояние базы данных в момент выдачи START TRANSACTION без блокировки каких-либо приложений.

    При использовании этого параметра следует помнить, что только таблицы InnoDB сохраняются в согласованном состоянии. Например, любые таблицы MyISAM или MEMORY, считанные при использовании этого параметра, могут все ещё измениться.

    Во время выполнения дампа с параметром --single-transaction для обеспечения валидного файла дампа (правильных данных таблиц и координат двоичного журнала) ни одно другое подключение не должно использовать следующие операторы: ALTER TABLE, CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE. Согласованный доступ не изолирован от этих операторов, поэтому их использование над таблицами, которые дампятся, может привести к тому, что SELECT, выполняемый mysqlpump для получения содержимого таблиц, вернёт некорректное содержимое или завершится ошибкой.

    Параметры --add-locks и --single-transaction являются взаимоисключающими.

    Примечание

    До MySQL 5.7.11 использование параметра --single-transaction взаимоисключалось с параллелизмом. Чтобы использовать --single-transaction, отключите параллелизм, установив --default-parallelism в 0 и не используя экземпляры --parallel-schemas:

    mysqlpump --single-transaction --default-parallelism=0
    
  • --skip-definer

    Формат командной строки --skip-definer
    Тип Булево
    Значение по умолчанию FALSE

    Исключить DEFINER и SQL SECURITY из операторов CREATE для представлений и хранимых программ. Файл дампа, при перезагрузке, создаст объекты, использующие значения по умолчанию DEFINER и SQL SECURITY. См. Раздел 23.6, «Управление доступом к хранимым объектам».

  • --skip-dump-rows, -d

    Формат командной строки --skip-dump-rows
    Тип Булево
    Значение по умолчанию FALSE

    Не сохранять строки таблиц.

  • --socket=path, -S path

    Формат командной строки --socket={file_name|pipe_name}
    Тип Строка

    Для подключений к localhost — используемый файл Unix-соккета или, в Windows, имя именованной пайплайны.

    В Windows этот параметр применяется только в том случае, если сервер был запущен с включённой переменной системы named_pipe для поддержки именованных подключений к пайплайнам. Кроме того, пользователь, производящий подключение, должен быть членом группы Windows, указанной переменной системы named_pipe_full_access_group.

  • --ssl*

    Параметры, начинающиеся с --ssl, указывают, использовать ли шифрование при подключении к серверу, и где найти ключи и сертификаты SSL. См. Параметры командной строки для шифрованных подключений.

  • --tls-version=protocol_list

    Формат командной строки --tls-version=protocol_list
    Введено 5.7.10
    Тип Строка
    Значение по умолчанию (≥ 5.7.28) TLSv1,TLSv1.1,TLSv1.2
    Значение по умолчанию (≤ 5.7.27)

    TLSv1,TLSv1.1,TLSv1.2 (OpenSSL)

    TLSv1,TLSv1.1 (yaSSL)

    Разрешенные протоколы TLS для шифрованных подключений. Значение представляет собой список одного или нескольких имён протоколов, разделённых запятыми. Протоколы, которые можно указать для этого параметра, зависят от библиотеки SSL, используемой при компиляции MySQL. Подробности см. в разделе 6.3.2, «Протоколы и шифры TLS шифрованного подключения».

    Этот параметр был добавлен в MySQL 5.7.10.

  • --triggers

    Формат командной строки --triggers
    Тип Булево
    Значение по умолчанию TRUE

    Включать триггеры для каждой дублируемой таблицы в выводе.

    Этот параметр включен по умолчанию; используйте --skip-triggers для его отключения.

  • --tz-utc

    Формат командной строки --tz-utc

    Этот параметр позволяет TIMESTAMP столбцам дублироваться и перезагружаться между серверами в разных часовых поясах. mysqlpump устанавливает временную зону подключения в UTC и добавляет SET TIME_ZONE='+00:00' в файл дампа. Без этого параметра, TIMESTAMP столбцы дублируются и перезагружаются в часовых поясах, локальных для исходного и целевого серверов, что может привести к изменению значений, если серверы находятся в разных часовых поясах. --tz-utc также защищает от изменений из-за перехода на летнее время.

    Этот параметр включен по умолчанию; используйте --skip-tz-utc для его отключения.

  • --user=user_name, -u user_name

    Формат командной строки --user=user_name
    Тип Строка

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

  • --users

    Формат командной строки --users
    Тип Булево
    Значение по умолчанию FALSE

    Дублировать учетные записи пользователей в виде логических определений в форме CREATE USER и GRANT инструкций.

    Определения пользователей хранятся в таблицах разрешений в базе данных mysql системной базе данных. По умолчанию mysqlpump не включает таблицы разрешений в дампы базы данных mysql. Чтобы сохранить содержимое таблиц разрешений в виде логических определений, используйте параметр --users и подавляйте все дампы базы данных:

    mysqlpump --exclude-databases=% --users
    
  • --version, -V

    Формат командной строки --version

    Отобразить информацию о версии и выйти.

  • --watch-progress

    Формат командной строки --watch-progress
    Тип Булево
    Значение по умолчанию TRUE

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

    Этот параметр включен по умолчанию; используйте --skip-watch-progress для его отключения.

Выборка объектов mysqlpump

mysqlpump имеет набор параметров включения и исключения, позволяющих фильтровать несколько типов объектов и гибко управлять тем, какие объекты дублировать:

  • --include-databases и --exclude-databases применяются к базам данных и всем объектам внутри них.

  • --include-tables и --exclude-tables применяются к таблицам. Эти параметры также влияют на триггеры, связанные с таблицами, если не указаны параметры, специфичные для триггеров.

  • --include-triggers и --exclude-triggers применяются к триггерам.

  • --include-routines и --exclude-routines применяются к хранимым процедурам и функциям. Если параметр процедуры совпадает с именем хранимой процедуры, он также совпадает с именем хранимой функции с тем же именем.

  • --include-events и --exclude-events применяются к событиям планировщика событий.

  • --include-users и --exclude-users применяются к учетным записям пользователей.

Любой параметр включения или исключения можно задать несколько раз. Эффект является аддитивным. Порядок этих параметров не имеет значения.

Значение каждого параметра включения и исключения — это список имён соответствующего типа объектов, разделённых запятыми. Например:

--exclude-databases=test,world
--include-tables=customer,invoice

В именах объектов допускаются символы подстановки:

  • % соответствует любой последовательности нуля или более символов.

  • _ соответствует любому одиночному символу.

Например, --include-tables=t%,__tmp соответствует всем именам таблиц, начинающимся с t, и всем именам таблиц длиной в пять символов, заканчивающимся на tmp.

Для пользователей имя, указанное без части хоста, интерпретируется с подразумеваемым хостом %. Например, u1 и u1@% эквивалентны. Это то же самое эквивалентность, которое применяется в MySQL в целом (см. раздел 6.2.4, «Указание имён учётных записей»).

Параметры включения и исключения взаимодействуют следующим образом:

  • По умолчанию, без параметров включения или исключения, mysqlpump дублирует все базы данных (с некоторыми исключениями, указанными в ограничениях mysqlpump).

  • Если заданы параметры включения в отсутствие параметров исключения, дублируются только объекты, указанные как включённые.

  • Если заданы параметры исключения в отсутствие параметров включения, дублируются все объекты, кроме тех, которые указаны как исключённые.

  • Если заданы параметры включения и исключения, не дублируются все объекты, указанные как исключённые и не указанные как включённые. Все остальные объекты дублируются.

Если требуется дамп нескольких баз данных, можно задать имена таблиц, триггеров и процедур в определенной базе данных, указав имя базы данных перед именем объекта. Следующая команда создает дампы баз данных db1 и db2, но исключает таблицы db1.t1 и db2.t2:

mysqlpump --include-databases=db1,db2 --exclude-tables=db1.t1,db2.t2

Следующие параметры предлагают альтернативные способы указания баз данных для дампа:

  • Параметр --all-databases создает дампы всех баз данных (с определенными исключениями, указанными в mysqlpump Restrictions). Он эквивалентен отсутствию каких-либо параметров объектов (по умолчанию действие mysqlpump заключается в создании дампов всего).

    --include-databases=% похож на --all-databases, но выбирает все базы данных для дампа, даже те, которые являются исключениями для --all-databases.

  • Параметр --databases заставляет mysqlpump рассматривать все аргументы имени как имена баз данных для дампа. Он эквивалентен параметру --include-databases, который указывает те же базы данных.

mysqlpump Параллельная обработка

mysqlpump может использовать параллелизм для достижения одновременной обработки. Можно выбрать параллелизм между базами данных (для создания дампов нескольких баз данных одновременно) и внутри баз данных (для создания дампов нескольких объектов из данной базы данных одновременно).

По умолчанию mysqlpump настраивает одну очередь с двумя потоками. Можно создать дополнительные очереди и контролировать количество потоков, назначенных каждой из них, включая очередь по умолчанию:

  • --default-parallelism=N определяет количество потоков по умолчанию, используемых для каждой очереди. При отсутствии этого параметра, N равно 2.

    Очередь по умолчанию всегда использует количество потоков по умолчанию. Дополнительные очереди используют количество потоков по умолчанию, если не указано иное.

  • --parallel-schemas=[N:]db_list настраивает очередь обработки для создания дампов баз данных, перечисленных в db_list, и необязательно указывает, сколько потоков используется в очереди. db_list — это список имен баз данных, разделенных запятыми. Если аргумент параметра начинается с N:, очередь использует N потоков. В противном случае, количество потоков очереди определяется параметром --default-parallelism.

    Несколько экземпляров параметра --parallel-schemas создают несколько очередей.

    Имена в списке баз данных могут содержать те же символы-подстановок % и _, поддерживаемые для фильтрации параметров (см. mysqlpump Object Selection).

mysqlpump использует очередь по умолчанию для обработки баз данных, не указанных явно с помощью параметра --parallel-schemas, и для создания дампов пользовательских определений, если параметры команды их выбирают.

В общем случае, при использовании нескольких очередей mysqlpump использует параллелизм между наборами баз данных, обрабатываемыми очередями, для одновременного создания дампов нескольких баз данных. Для очереди, использующей несколько потоков, mysqlpump использует параллелизм внутри баз данных для одновременного создания дампов нескольких объектов из данной базы данных. Исключения могут возникать; например, mysqlpump может блокировать очереди, пока получает от сервера списки объектов в базах данных.

При включенном параллелизме выходные данные из разных баз данных могут быть перемешаны. Например, операторы INSERT из нескольких таблиц, создаваемых параллельно, могут быть перемешаны; операторы не записываются в определенном порядке. Это не влияет на перезагрузку, поскольку операторы вывода квалифицируют имена объектов с именами баз данных или предваряются операторами USE, как требуется.

Зерно параллелизма — один объект базы данных. Например, отдельную таблицу нельзя создавать в дампе параллельно с использованием нескольких потоков.

Примеры:

mysqlpump --parallel-schemas=db1,db2 --parallel-schemas=db3

mysqlpump создает очередь для обработки db1 и db2, другую очередь для обработки db3 и очередь по умолчанию для обработки всех других баз данных. Все очереди используют два потока.

mysqlpump --parallel-schemas=db1,db2 --parallel-schemas=db3
          --default-parallelism=4

Это то же самое, что и предыдущий пример, за исключением того, что все очереди используют четыре потока.

mysqlpump --parallel-schemas=5:db1,db2 --parallel-schemas=3:db3

Очередь для db1 и db2 использует пять потоков, очередь для db3 использует три потока, а очередь по умолчанию использует два потока по умолчанию.

В качестве специального случая, при использовании --default-parallelism=0 и отсутствии параметра --parallel-schemas, mysqlpump выполняется как однопотоковый процесс и не создает очередей.

Примечание

До MySQL 5.7.11 использование параметра --single-transaction несовместимо с параллелизмом. Чтобы использовать --single-transaction, отключите параллелизм, установив --default-parallelism в 0 и не используя параметр --parallel-schemas:

mysqlpump --single-transaction --default-parallelism=0

mysqlpump Ограничения

mysqlpump по умолчанию не создает дампы схемы INFORMATION_SCHEMA, performance_schema, ndbinfo или sys. Чтобы создать дампы этих схем, укажите их явно в командной строке. Также вы можете указать их с помощью параметра --databases или --include-databases.

mysqlpump не создает дампы операторов InnoDB CREATE TABLESPACE.

mysqlpump создает дампы учетных записей пользователей в логической форме, используя операторы CREATE USER и GRANT (например, когда вы используете параметр --include-users или --users). По этой причине дампы системной базы данных mysql по умолчанию не включают таблицы разрешений, содержащие определения пользователей: user, db, tables_priv, columns_priv, procs_priv или proxies_priv. Чтобы создать дамп любых таблиц разрешений, укажите базу данных mysql, а затем имена таблиц:

mysqlpump mysql user db ...

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/mysqlpump.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API