有两个选项可以控制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 Enterprise Backup 8.0.15 及更早版本:如果备份锁定了 MySQL 实例(例如,通过发出
FLUSH TABLES WITH READ LOCK
语句),则在解锁 MySQL 实例之前,进度报告不会传递到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:它表示压缩比的滑动平均值,它是为每个被压缩的数据块定义的
(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
类型 数字 默认值 2
最小值 1
最大值 100000
单元 第二