16.12 进度报告选项

有两个选项可以控制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数据文件(.ibdfiles)。

    进度指示器字符串以 开头 Progress:,后跟一个或多个测量进度的仪表。如果存在多个仪表,则它们以分号分隔。不同类型的仪表包括:

    • 总数据表:它始终是进度指示器中的第一个表。它的格式为:

      DATA of TOTAL UNIT

      DATATOTAL 是无符号十进制整数, UNIT是 MB(兆字节)、KB(千字节)或字节(1MB=1024KB 和 1KB=1024 字节)。

      根据mysqlbackup 操作的不同,total data meter 有两个略有不同的含义:

      • 复制或处理的数据量以及mysqlbackup操作 要复制或处理的数据总量 。例如:

        Progress: 200 of 1450 MB

        例如,当操作为 时, backup指示器表示从 1450MB 中复制 200MB。但是当操作是针对,例如, validateor incremental时,这意味着从 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.

  • --progress-interval=SECONDS

    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.