16.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таблицы.Если резервное копирование блокирует экземпляр MySQL (например, с помощью оператора
FLUSH TABLES WITH READ LOCK), отчёты о ходе выполнения не будут отправлены в таблицуmysql.backup_progress, пока экземпляр MySQL не будет разблокирован. -
variable: Индикаторы прогресса отправляются в системную переменнуюbackup_progress.ПредупреждениеСистемная переменная
backup_progressпока не определена для сервера MySQL. Пользователям необходимо создать свой плагин для определения переменной. См. Интерфейс API плагинов MySQL для получения дополнительной информации о пользовательских плагинах.
Если для
--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 (килобайты), либо байты (1MB=1024KB и 1KB=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.