17.3 使用 MySQL 企业备份日志

MySQL Enterprise Backup 除了将消息输出到 stderr流和日志文件之外,每次备份的进度和历史记录也会记录到备份服务器上的 mysql.backup_progressmysql.backup_history表中(要跳过更新两个表,请使用 --no-history-loggingbackup 命令的选项).

backup_progress桌子

表中的每一行都backup_progress记录了状态更改或来自正在运行的备份作业的消息。该 backup_progress表包含以下列:

Press CTRL+C to copy
mysql> DESCRIBE mysql.backup_progress; +---------------+---------------+------+-----+----------------------+--------------------------------------------------+ | Field | Type | Null | Key | Default | Extra | +---------------+---------------+------+-----+----------------------+--------------------------------------------------+ | id | int | NO | PRI | NULL | auto_increment | | backup_id | bigint | NO | MUL | NULL | | | tool_name | varchar(4096) | NO | | NULL | | | error_code | int | NO | | NULL | | | error_message | varchar(4096) | NO | | NULL | | | current_time | timestamp(3) | NO | | CURRENT_TIMESTAMP(3) | DEFAULT_GENERATED on update CURRENT_TIMESTAMP(3) | | current_state | varchar(200) | NO | | NULL | | +---------------+---------------+------+-----+----------------------+--------------------------------------------------+ 7 rows in set (0.00 sec)

对于 MySQL Enterprise Backup 8.0.19 及更高版本:backup_progress表为 InnoDB 格式。

对于 MySQL Enterprise Backup 8.0.18 及更早版本:backup_progress表为 CSV 格式。可以用mysql.CSV客户端查询表,也可以用应用程序或脚本 解析对应的

以下是一些使用 backup_progress表中信息的方法:

  • 使用该backup_id值查询单个备份操作的不同阶段的所有信息,并在表中找到同一备份的对应行 (该行 仅在备份完成后 backup_history写入表中)。backup_history

  • 检查触发备份 tool_name的完整 mysqlbackup命令的列,包括使用的所有选项。

  • 使用error_codeerror_message值跟踪已发生的任何错误,并查看备份操作是否应因任何严重错误而终止。

  • 使用current_timecurrent_state值来跟踪操作的进度。它们还允许您测量备份的每个阶段需要多长时间,这有助于您规划未来的备份。

backup_history桌子

表中的每一行都记录了由mysqlbackup命令backup_history生成的一个完整备份的详细信息 。该 表包含以下列: backup_history

Press CTRL+C to copy
mysql> mysql> DESCRIBE mysql.backup_history; +---------------------------+---------------+------+-----+---------------------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------------------+---------------+------+-----+---------------------+-------+ | backup_id | bigint(20) | NO | PRI | NULL | | | tool_name | varchar(4096) | NO | | NULL | | | start_time | timestamp | NO | | 0000-00-00 00:00:00 | | | end_time | timestamp | NO | | 0000-00-00 00:00:00 | | | binlog_pos | bigint(20) | NO | | NULL | | | binlog_file | varchar(255) | NO | | NULL | | | compression_level | int(11) | NO | | NULL | | | engines | varchar(100) | NO | | NULL | | | innodb_data_file_path | varchar(2048) | NO | | NULL | | | start_lsn | bigint(20) | NO | | NULL | | | end_lsn | bigint(20) | NO | | NULL | | | backup_type | varchar(50) | NO | | NULL | | | backup_format | varchar(50) | NO | | NULL | | | mysql_data_dir | varchar(2048) | NO | | NULL | | | innodb_data_home_dir | varchar(2048) | NO | | NULL | | | innodb_log_group_home_dir | varchar(2048) | NO | | NULL | | | backup_destination | varchar(4096) | NO | | NULL | | | lock_time | double(7,3) | NO | | NULL | | | exit_state | varchar(10) | NO | | NULL | | | last_error | varchar(4096) | NO | | NULL | | | last_error_code | int(11) | NO | | NULL | | | start_time_utc | bigint(20) | NO | | NULL | | | end_time_utc | bigint(20) | NO | | NULL | | | consistency_time_utc | bigint(20) | NO | | NULL | | | meb_version | varchar(20) | NO | | 0.0.0 | | | server_uuid | varchar(36) | NO | | NULL | | +---------------------------+---------------+------+-----+---------------------+-------+ 26 rows in set (0.01 sec)
警告

因为成功的备份总是记录在 表中,命令阶段的 backup_history失败 不会反映在表中。检查mysqlbackup的输出以查看操作是否完全完成而没有错误 总是很重要的 。apply-logbackup-and-apply-logbackup_history

以下是有关 backup_history表格某些列的信息,以及使用这些信息的一些方法:

  • tool_name列记录了触发备份的完整 mysqlbackup命令,包括使用的所有选项。

  • 您可以使用选项end_lsn指定最新备份的值作为下一次增量备份的起始 LSN 值 --start-lsn。(为增量备份指定起始 LSN 值的替代方法是使用该 --incremental-base选项)。

  • binlog_pos列给出了二进制日志的位置,直到日志事件已被备份覆盖。因为以前的backup_history表是csv格式,不能 NULL直接注册值,所以如果不开启binary logging,-1则在列中输入一个值;这同样适用于用于记录NULL值的其他列。

  • 的 值为、、 或 backup_type之一 。 FULLPARTIALDIFFERENTIALINCREMENTALTTS

  • 的值backup_formatIMAGE(对于单文件备份)或 DIRECTORY(对于目录备份)之一。

  • 使用显示备份设置的值(例如 mysql_data_dirinnodb_data_home_dirbackup_destination)确认备份使用的是正确的源目录和目标目录。

  • 的 值为exit_state或 。如果is 和 is ,则备份操作成功;如果不是这种情况,请参阅 和 以获取最新的操作错误。要检索该备份操作的完整错误列表,请转至该表。 SUCCESSFAILUREexit_stateSUCCESSlast_error'NO_ERROR'last_errorlast_error_codebackup_progress