为了确保备份数据的完整性,MySQL Enterprise Backup 提供了一个
validate
命令,用于在备份创建或传输到另一个系统后通过其数据页的校验和值来验证备份。
mysqlbackup [STD-OPTIONS]
[--backup-dir=PATH][--backup-image=IMAGE]
[MESSAGE-LOGGING-OPTIONS]
[PROGRESS-REPORT-OPTIONS]
[CLOUD-STORAGE-OPTIONS]
validate
验证备份未损坏、未被截断或损坏。此操作验证备份中每个数据页的校验和值。
为了避免在损坏太严重的文件上花费过多的时间和资源,mysqlbackup在发现超过二十个损坏的页面后停止验证 .ibd 文件,而是继续处理下一个文件。在这种情况下,该操作的摘要不会给出损坏页面的完整计数,而只会说“至少有 20 个页面已损坏。”
该操作还具有以下限制:
如果在备份期间数据目录中有任何
.ibd
文件或.sdi
文件丢失,或者在备份完成后已从备份中删除,则该validate
操作将无法检测到问题。如果备份已因从其中的任何 .ibd 文件中删除或截断页面而损坏,则该
validate
操作将无法检测到问题。对于任何备份目录,该操作只能验证其中的 InnoDB 数据文件(
ibdata*
和*.ibd
文件)。.sdi
未检测到 备份目录中其他文件类型的问题(例如, 文件损坏)。仅适用于 MySQL Enterprise Backup 8.0.20 及更早版本: 在
validate
操作期间,如果mysqlbackup遇到任何加密的 InnoDB 表空间,它会发出警告然后跳过它们。
以下是用于验证备份映像的示例命令:
mysqlbackup -uroot --backup-image=/logs/fullimage.mi validate
高级:这是一个用于验证备份目录的示例命令:
mysqlbackup -uroot --backup-dir=/logs/backupext validate
有关该
validate
命令的更多用法示例,请参阅
第 4.2.3 节 “验证备份”