17.3 Использование журналов резервного копирования MySQL Enterprise Backup
Помимо вывода сообщений MySQL Enterprise Backup в поток stderr и файл журнала, прогресс и история каждого резервного копирования также записываются в таблицы mysql.backup_progress и mysql.backup_history на серверах, с которых выполнялось резервное копирование (чтобы пропустить обновление этих двух таблиц, используйте опцию --no-history-logging с командой резервного копирования).
Таблица backup_progress
Каждая строка в таблице backup_progress записывает изменение состояния или сообщение от выполняемого задания резервного копирования. Таблица backup_progress содержит следующие столбцы:
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)
Таблица backup_progress имеет формат InnoDB.
Вот несколько способов использования информации в таблице backup_progress:
Используйте значение
backup_idдля запроса всей информации для различных этапов одной операции резервного копирования и для поиска соответствующей строки в таблицеbackup_historyдля того же резервного копирования (строка записывается в таблицуbackup_historyтолько после завершения резервного копирования).Проверьте столбец
tool_nameдля получения полной команды mysqlbackup, которая инициировала резервное копирование, включая все использованные опции.Используйте значения
error_codeиerror_messageдля отслеживания любых ошибок, которые произошли, и для проверки, следует ли завершить операцию резервного копирования из-за серьезных ошибок.Используйте значения
current_timeиcurrent_stateдля отслеживания прогресса операции. Они также позволяют измерить, сколько времени занимает каждый этап резервного копирования, что помогает планировать будущие резервные копии.
Таблица backup_history
Каждая строка в таблице backup_history записывает подробности одного завершенного резервного копирования, созданного командой mysqlbackup. Таблица backup_history содержит следующие столбцы:
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, ошибка в фазе apply-log команды backup-and-apply-log не отражается в таблице backup_history. Всегда важно проверять вывод mysqlbackup, чтобы убедиться, что операция завершилась полностью без ошибок.
Вот информация о некоторых столбцах таблицы backup_history и способы использования этой информации:
Столбец
tool_nameзаписывает полную команду mysqlbackup, которая инициировала резервное копирование, включая все использованные опции.Вы можете использовать значение
end_lsnпоследнего резервного копирования в качестве начального значения LSN для следующего инкрементного резервного копирования, указав его с помощью опции--start-lsn. (Альтернативой указанию начального значения LSN для инкрементного резервного копирования является использование опции--incremental-base).Столбец
binlog_posпоказывает позицию двоичного журнала до тех пор, пока события журнала не были охвачены резервным копированием. Поскольку таблицаbackup_historyранее имела формат CSV, который не может напрямую регистрировать значенияNULL, если ведение двоичного журнала отключено, в столбец вносится значение-1; то же самое относится и к другим столбцам для регистрации значенийNULL.Значение для
backup_type— это одно изFULL,PARTIAL,DIFFERENTIAL,INCREMENTALилиTTS.Значение для
backup_format— это одно изIMAGE(для резервных копий в одном файле) илиDIRECTORY(для резервных копий в каталоге).Используйте значения, показывающие параметры резервного копирования, такие как
mysql_data_dir,innodb_data_home_dirиbackup_destination, чтобы убедиться, что резервные копии используют правильные исходные и целевые каталоги.Значение для
exit_state— это либоSUCCESS, либоFAILURE. Еслиexit_stateравноSUCCESS, аlast_errorравно'NO_ERROR', операция резервного копирования прошла успешно; если это не так, см.last_errorиlast_error_codeдля последней ошибки операции. Чтобы получить полный список ошибок для этой операции резервного копирования, перейдите к таблицеbackup_progress.
© 2025 Oracle
Licensed under the GPLv2 License.