MySQL 8.0 Redo 归档
简介
MySQL 的 REDO 日志归档功能在 8.0.17 版本后发布,目的是为了解决使用 MySQL 热备工具比如 mysqlbackup 、xtrabackup 等备份 REDO 日志的速度慢于业务生成 REDO 日志的速度而导致的备份数据不一致问题(未及时备份的 RRDO 日志被提前覆盖写入!)。
MySQL 的 REDO 日志归档功能开启非常简单,只需对参数 innodb_redo_log_archive_dirs 简单设置即可。
1 | set persist innodb_redo_log_archive_dirs='redo_archive1:/redo_mysql/3306' |
其中 redo_archive1 是一个标签,可以随便起名字;/redo_mysql/3306 用来指定 REDO 日志归档存放的位置。
目录权限问题
我在使用的过程中,遇到几个细节问题:
1. REDO 日志归档的目录权限、属主等一定要设置正确,要不然可能会有以下几种错误输出 (MySQL 客户端提示错误,热备工具可能提示警告!):
错误1:ERROR 3844 (HY000): Redo log archive directory '/redo_mysql/3306' does not exist or is not a directory
前期需要创建的目录与相关权限设定如下:
1 2 3 4 5 | # 归档目录得提前建! [root@ytt-pc ~]# mkdir -p /redo_mysql/3306 # 设置归档目录访问权限,只允许属主完全访问。 [root@ytt-pc ~]# chmod -R 700 /redo_mysql/3306/ |