mysql8.0.30一些新增特性和xtrabackup的对应

mysql8.0.30一些新增特性和xtrabackup的对应

  • 问题
  • 解决

问题

应客户需求在给mysql实例进行升级之后,(从8.0.2X升级到8.0.3X),发现不能备份成功,查看日志发现是xtrabackup备份时找不到事务日志ib_logfile0。
经过查看,发现data目录下面确实没有这个文件,导致备份失败。

解决

事务日志对于mysql是必要的,它可以保证mysql故障恢复和write-ahead-log特性,尤其是mysql8.0只支持InnoDB存储引擎。所以xtrabackup在备份的时候找不到事务日志就会失败,这个没法忽略掉。
mysql8.0.30开始,对事务日志做了新特性,如下:

  • 在MySQL 8.0.30中,innodb_redo_log_capacity系统变量控制重做日志文件占用的磁盘空间量。
    可以在启动或运行时使用set GLOBAL语句在选项文件中设置此变量;定义innodb_redo_log_capacity设置时,将忽略innodb log_files_in_group和innodb log_file_size设置,
  • 重做日志文件使用#ib_redoN命名约定,其中N是重做日志的文件号。备用重做日志文件由_tmp后缀表示。日志目录在./data/#innodb_ redo下面。舍弃原来的./data/ib_logfileN的形式

有了以上连个新特性,原来的xtrabackup就不适用了。需要将xtrabackup升级到mysql对应的版本。
在这里说一下,xtrabackup是跟着mysql的版本号走得,所以每次修改mysql版本的时候,都需要更新对应的xtrabackup版本,避免一些意料之外的问题。

你可能感兴趣的:(mysql,数据库,java)