今天用xtrabackup工具完整备份mysql数据库的时候出现“./ib_logfile0 is of different”错误,具体的日志信息如下:
我第一时间查询了百度和谷歌都没有找见相对应的答案。决定从错误日志入手,上面的日志提示说:mysql数据库inondb的日志文件的大小和mysql配置文件设置的innodb日志文件大小不一致而导致的。
首先查看一下mysql数据库innodb的日志文件的大小,发现innodb的日志文件的大小为5242880字节,即日志文件为5M。
紧接着查看一下mysql配置文件设置设置的innodb日志文件的大小,发现为16M,确实二者不一致。
要想让mysql innodb的日志文件的大小和mysql配置文件设置的innodb日志文件的大小一致真的很简单,即修改mysql配置文件innodb_log_file_size = 5M即可。
在重新备份,在备份的时候出现下面的错误,提示说重新建立了一个logfile2日志文件,在此备份的时候又出现“InnoDB: Error: log file ./ib_logfile2 is of different size 0 0 bytes”。
怎么在备份的时候会多出来一个日志文件(logfile2)呢?再次修改mysql配置文件,指定日志文件的数量为2,之前innodb_log_files_in_group = 3,在备份的时候xtrabackup会根据mysql配置选项和日志文件做对比。
最后终于备份成功了,xtrabackup在备份数据库的时候出现的类似于“./ib_logfile0 is of different”主要原因是mysql日志配置选项和mysql日志文件大小不一致造成的,可以通过修改mysql的配置文件解决此类问题。