用过 xtrabackup 工具的 innobackupex 脚本备份数据的人可能会注意到,–apply-log 处理过的备份数据里有两个文件说明该备份数据对应的 binlog 的文件名和位置。但有时这俩文件说明的位置可能会不同。
经过实验和询问 Percona 公司,结论如下:
1 对于纯 InnoDB 操作,备份出来的数据中上述两个文件的内容是一致的
2 对于 InnoDB 和非事务存储引擎混合操作,xtrabackup_binlog_info 中所示的 position 应该会比 xtrabackup_pos_innodb 所示的数值大。此时应以 xtrabackup_binlog_info 为准;而后者和 apply-log 时 InnoDB recovery log 中显示的内容是一致的,只针对 InnoDB 这部分数据

另外,今天发现 InnoBASE/MySQL/Oracle 公司出品的 MySQL Enterprise Backup(原 InnoDB Hot Backup)中 innobackup 脚本备份出来的数据也有类似的问题。这其实是由于热拷贝时 InnoDB 表和非事务表分别复制的时间差引起的。