Mariabackup备份MariaDB副本库时卡在Read redo log up to LSN循环求解决
MariaDB副本服务器使用mariabackup全量备份陷入循环的问题
操作场景与执行命令
在主从架构的MariaDB环境中,对副本服务器执行全量备份,使用命令:
mariabackup --backup --target-dir=/backup/ --user=backup --password=backup --host=192.168.xxx.xxx
异常现象
命令持续循环输出重复日志内容,无法完成备份:
2023-06-09 13:51:10 0 [Note] InnoDB: Read redo log up to LSN=1625600 [00] 2023-06-09 13:51:10 >> log scanned up to (1625437) [00] 2023-06-09 13:51:11 >> log scanned up to (1625437) [00] 2023-06-09 13:51:12 >> log scanned up to (1625437) [00] 2023-06-09 13:51:13 >> log scanned up to (1625437) [00] 2023-06-09 13:51:14 >> log scanned up to (1625437) [00] 2023-06-09 13:51:15 >> log scanned up to (1625437) [00] 2023-06-09 13:51:16 >> log scanned up to (1625437) [00] 2023-06-09 13:51:17 >> log scanned up to (1625437) [00] 2023-06-09 13:51:18 >> log scanned up to (1625437) [00] 2023-06-09 13:51:19 >> log scanned up to (1625437) [00] 2023-06-09 13:51:20 >> log scanned up to (1625437) [00] 2023-06-09 13:51:21 >> log scanned up to (1625437) [00] 2023-06-09 13:51:22 >> log scanned up to (1625437) [00] 2023-06-09 13:51:23 >> log scanned up to (1625437) [00] 2023-06-09 13:51:24 >> log scanned up to (1625437) 2023-06-09 13:51:25 0 [Note] InnoDB: Read redo log up to LSN=1625600 [00] 2023-06-09 13:51:25 >> log scanned up to (1625437) [00] 2023-06-09 13:51:26 >> log scanned up to (1625437) [00] 2023-06-09 13:51:27 >> log scanned up to (1625437) [00] 2023-06-09 13:51:28 >> log scanned up to (1625437) [00] 2023-06-09 13:51:29 >> log scanned up to (1625437) [00] 2023-06-09 13:51:30 >> log scanned up to (1625437) [00] 2023-06-09 13:51:31 >> log scanned up to (1625437) [00] 2023-06-09 13:51:32 >> log scanned up to (1625437) [00] 2023-06-09 13:51:33 >> log scanned up to (1625437) [00] 2023-06-09 13:51:34 >> log scanned up to (1625437) [00] 2023-06-09 13:51:35 >> log scanned up to (1625437) [00] 2023-06-09 13:51:36 >> log scanned up to (1625437) [00] 2023-06-09 13:51:37 >> log scanned up to (1625437) [00] 2023-06-09 13:51:38 >> log scanned up to (1625437) [00] 2023-06-09 13:51:39 >> log scanned up to (1625437)
多次尝试均出现相同问题。
服务器进程状态
在副本服务器执行show processlist,可见备份连接处于sleep状态,同时存在以下InnoDB后台进程:
1 system user NULL Daemon NULL InnoDB purge worker NULL 0.000 2 system user NULL Daemon NULL InnoDB purge coordinator NULL 0.000 3 system user NULL Daemon NULL InnoDB purge worker NULL 0.000 4 system user NULL Daemon NULL InnoDB purge worker NULL 0.000 5 system user NULL Daemon NULL InnoDB shutdown handler NULL 0.000
解决思路建议
- 检查副本复制状态:执行
show slave status\G,确认Slave_IO_Running和Slave_SQL_Running是否为Yes,排查是否存在复制延迟或报错。 - 处理InnoDB shutdown进程:
InnoDB shutdown handler进程存在说明数据库可能处于异常关闭流程中,尝试正常重启MariaDB服务,确保进程完全退出后再启动。 - 验证备份权限:确认
backup用户拥有RELOAD、LOCK TABLES、REPLICATION CLIENT权限,同时/backup/目录需具备读写权限。 - 修复LSN不一致问题:日志中显示读取的redo log LSN与扫描到的LSN不匹配,可尝试在副本执行
FLUSH TABLES WITH READ LOCK后再启动备份,或检查InnoDB日志文件是否损坏。 - 调整备份参数:添加
--no-lock参数测试(仅适用于只读副本),或指定--innodb-log-file-size匹配数据库配置,避免日志扫描异常。 - 排查资源瓶颈:确认
/backup/目录所在磁盘有足够空间,检查服务器CPU、内存、IO资源是否充足,是否因资源不足导致备份进程停滞。
内容的提问来源于stack exchange,提问作者Stefano P.
相关产品推荐
相关产品推荐

