20.12 Параметры отчёта о ходе выполнения резервного копирования
Существуют два варианта управления функцией отчёта о ходе выполнения mysqlbackup: --show-progress и --progress-interval:
-
--show-progress[={stderr|stdout|file:FILENAME|fifo:FIFONAME|table|variable}]Формат командной строки --show-progress[=destinations]Тип Перечисление Допустимые значения stderrstdoutfile:FILENAMEfifo:FIFONAMEtablevariableЭтот параметр указывает mysqlbackup периодически выводить краткие отчёты о ходе выполнения, известные как индикаторы прогресса.
Аргумент параметра определяет место назначения, куда отправляются индикаторы прогресса:
-
stderr: Индикаторы прогресса отправляются в поток стандартных ошибок. Отчёт вставлен в сообщение INFO mysqlbackup с отметкой времени. Например:130607 12:22:38 mysqlbackup: INFO: Progress: 191 of 191 MB; state: Completed
stdout: Индикаторы прогресса отправляются в поток стандартного вывода. После каждого индикатора прогресса печатается единственный символ новой строки.file:FILENAME: Индикаторы прогресса отправляются в файл. Каждый новый отчёт о ходе выполнения перезаписывает файл, и он содержит самый последний индикатор прогресса, после которого следует один символ новой строки.-
fifo:FIFONAME: Индикаторы прогресса отправляются в FIFO файловой системы. После каждого индикатора прогресса печатается единственный символ новой строки.ПредупреждениеЕсли нет процесса, считывающего FIFO, процесс mysqlbackup зависает в конце выполнения.
table: Индикаторы прогресса отправляются в таблицуmysql.backup_progress. Это требует подключения к серверу MySQL и, следовательно, работает только при резервном копировании работающего экземпляра MySQL. mysqlbackup сначала добавляет одну строку отчёта о ходе выполнения в таблицуmysql.backup_progress, а затем обновляет строку с последним индикатором прогресса. Индикатор прогресса хранится в столбцеcurrent_statusтаблицы.-
variable: Индикаторы прогресса отправляются в системную переменнуюbackup_progress.ПредупреждениеСистемная переменная
backup_progressещё не определена для сервера MySQL. Пользователям необходимо создать собственный плагин для определения переменной. Для получения дополнительной информации о пользовательских плагинах см. Интерфейс программирования приложений MySQL Plugin API.
Если для параметра
--show-progressне указан аргумент, индикаторы прогресса отправляются вstderr.Индикаторы прогресса можно отправить на несколько мест, указав параметр
--show-progressнесколько раз в командной строке. Например, следующая командная строка отображает ход выполнения команды резервного копирования вstderrи в файл, названныйmeb_output:mysqlbackup --show-progress --show-progress=file:meb_output --backup-dir=/full-backup backupИндикаторы прогресса — это короткие строки, показывающие, как далеко продвинулось выполнение операции mysqlbackup. Индикатор прогресса состоит из одного или нескольких счётчиков, измеряющих ход выполнения операции. Например:
Progress: 100 of 1450 MB; state: Copying .ibd files
Это показывает, что до сих пор скопировано или обработано 100 мегабайт из 1450 мегабайт, и mysqlbackup в настоящее время копирует файлы данных InnoDB (
.ibdфайлов).Строка индикатора прогресса начинается с
Progress:, за которой следуют один или несколько счётчиков, измеряющих прогресс. Если присутствует несколько счётчиков, они разделены точкой с запятой. К разным типам счётчиков относятся:-
Счётчик общего объёма данных: он всегда является первым счётчиком в индикаторе прогресса. Он имеет формат:
DATA of TOTAL UNIT
DATA и TOTAL — целые беззнаковые десятичные числа, а UNIT — либо MB (мегабайты), KB (килобайты), либо байты (1 МБ = 1024 КБ и 1 КБ = 1024 байта).
Счётчик общего объёма данных имеет два немного разных значения в зависимости от операции mysqlbackup:
-
Количество скопированных или обработанных данных и общее количество данных, которые необходимо скопировать или обработать в ходе операции mysqlbackup. Например:
Progress: 200 of 1450 MB
Когда операция выполняется, например, для
backup, индикатор означает, что 200 МБ скопировано из 1450 МБ. Но когда операция выполняется, например, дляvalidateилиincremental, это означает, что обработано 200 МБ из 1450 МБ. -
Общее количество скопированных или обработанных данных и оценка общего количества, которое будет скопировано к концу операции. Оценка обновляется в соответствии с данными на сервере по мере выполнения команды.
Для некоторых операций, таких как
backup, невозможно точно определить количество данных, которые будут скопированы или обработаны в начале выполнения. Поэтому счётчик общего объёма данных показывает приблизительный объём общих данных для резервного копирования. Оценка обновляется в процессе выполнения команды. Например:Progress: 200 of 1450 MB
следуют:
Progress: 200 of 1550 MB
после добавления 100 МБ данных на сервер.
В случае успешной операции окончательный индикатор прогресса отображает фактическое количество скопированных данных в конце операции.
-
-
Счётчик сжатия: он указывает скользящее среднее значение коэффициента сжатия, которое определяется для каждого блока данных, сжатых как
(orig_size - compressed_size) / orig_size. Например:compression: 40%
Это означает, что после сжатия данные занимают на 40% меньше места (вычислено как среднее по последним 10 блокам данных).
Счётчик сжатия включён в индикатор прогресса, если для операции mysqlbackup включен параметр
--compress. Значение счётчика сжатия не определено до тех пор, пока не будет сжато не менее 10 блоков данных. Неопределённое значение счётчика обозначается '-' в счётчике:compression: -
-
Счётчик состояния: это краткое описание основного шага, который в настоящее время выполняет команда. Например:
state: Copying InnoDB data
state: Waiting for locks
state: Copying system tablespace
state: Copying .ibd files
state: Copying non-InnoDB data
state: Completed
Вот несколько примеров индикаторов прогресса с разными счётчиками:
Progress: 300 of 1540 MB; state: Waiting for locks
Progress: 400 of 1450 MB; state: Copying InnoDB data: compression: 30%
Точный набор счётчиков, включённых в индикатор прогресса, зависит от команды и используемых для неё параметров.
-
-
--progress-interval=SECONDSФормат командной строки --progress-interval=SECONDSТип Числовой Значение по умолчанию 2Минимальное значение 1Максимальное значение 100000Единица измерения секунда Интервал между отчётами о ходе выполнения в секундах. Значение по умолчанию — две секунды. Наименьший интервал — 1 секунда, а наибольший разрешённый интервал — 100000 секунд.
© 2025 Oracle
Licensed under the GPLv2 License.