有两个选项可以控制mysqlbackup的进度报告功能:
--show-progress
和
--progress-interval
:
--show-progress
[={stderr|stdout|file:FILENAME|fifo:FIFONAME|table|variable}]
命令行格式 --show-progress[=destinations]
类型 枚举 有效值 stderr
stdout
file:FILENAME
fifo:FIFONAME
table
variable
该选项指示mysqlbackup定期输出称为其操作进度指示器的简短进度报告。
该选项的参数控制进度指示器发送到的目的地:
stderr
:进度指示器被发送到标准错误流。该报告嵌入在带有时间戳的mysqlbackup INFO 消息中。例如: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 实例(例如,通过发出一条语句),则在 MySQL 实例解锁之前
FLUSH TABLES WITH READ LOCK
,进度报告不会传递到表中。mysql.backup_progress
variable
:进度指示器被发送到系统变量backup_progress
。警告backup_progress
尚未为 MySQL 服务器定义 系统变量 。用户需要创建自己的插件来定义变量。有关用户插件的更多信息,请参阅 MySQL 插件 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
这表明到目前为止已经复制或处理了总共1450兆字节中的100兆字节, mysqlbackup当前正在复制InnoDB数据文件(
.ibd
files)。进度指示器字符串以 开头
Progress:
,后跟一个或多个测量进度的仪表。如果存在多个仪表,则它们以分号分隔。不同类型的仪表包括:总数据表:它始终是进度指示器中的第一个表。它的格式为:
DATA of TOTAL UNIT
DATA和TOTAL 是无符号十进制整数, UNIT是 MB(兆字节)、KB(千字节)或字节(1MB=1024KB 和 1KB=1024 字节)。
根据mysqlbackup 操作的不同,total data meter 有两个略有不同的含义:
复制或处理的数据量以及mysqlbackup操作 要复制或处理的数据总量 。例如:
Progress: 200 of 1450 MB
例如,当操作为 时,
backup
指示器表示从 1450MB 中复制 200MB。但是当操作是针对,例如,validate
orincremental
时,这意味着从 1450MB 中处理了 200MB。复制或处理的数据总量以及操作结束时将复制的总量的估计值。随着命令执行的进行,估计总数会根据服务器上的数据进行更新。
对于诸如
backup
之类的某些操作,无法在执行开始时准确知道将复制或处理多少数据。因此,总数据表显示备份总数据的估计量。估计在命令执行期间更新。例如:Progress: 200 of 1450 MB
其次是:
Progress: 200 of 1550 MB
当在服务器上添加 100MB 的数据时。
如果操作成功,最终进度指示器会显示操作结束时复制的实际数据量。
Compression meter: It indicates the sliding average of the compression ratio, which is defined for each block of data that is compressed as
(orig_size - compressed_size) / orig_size
. For example:compression: 40%
This means that after compression, the data takes 40% less space (calculated as an average over the last 10 data blocks).
The compression meter is included in the progress indicator if the
--compress
option is enabled for the mysqlbackup operation. The value of the compression meter is undefined until at least 10 data blocks have been compressed. The undefined meter value is denoted by the '-' in the meter:compression: -
State meter: It is a short description of the major step the command is currently executing. For example:
state: Copying InnoDB data
state: Waiting for locks
state: Copying system tablespace
state: Copying .ibd files
state: Copying non-InnoDB data
state: Completed
Here are some examples of progress indicators with different meters:
Progress: 300 of 1540 MB; state: Waiting for locks
Progress: 400 of 1450 MB; state: Copying InnoDB data: compression: 30%
The exact set of meters included in the progress indicator depends on the command and the options used for it.
-
Command-Line Format --progress-interval=SECONDS
Type Numeric Default Value 2
Minimum Value 1
Maximum Value 100000
Unit second Interval between progress reports in seconds. Default value is two seconds. The shortest interval is 1 second and the longest allowed interval is 100000 seconds.