当 MariaDB 在关闭期间卡住(等待 page_cleaner)时如何修复?

当 MariaDB 在关闭期间卡住(等待 page_cleaner)时如何修复?

我在 Arch Linux (Manjaro) 上运行 MariaDB (v 10.3.13)。过去几个月它运行正常,但现在出现了一些问题。当我尝试重新启动计算机时,它卡在

A stop job is running for MariaDB 10.3.13 database server

所需时间每分钟都会增加,直到最终超时(大约 20 分钟后)。

当我尝试使用以下命令重新启动/停止 MariaDB 时,手动停止 MariaDB 也会卡住

sudo systemctl stop/restart mariadb

然后正在播放sudo systemctl status mariadb节目

/usr/bin/mysqld (initiated by: unknown): Normal shutdown
Event Scheduler: Purging the queue. 0 events
InnoDB: FTS optimize thread exiting.
InnoDB: Starting shutdown...
InnoDB: Dumping buffer pool(s) to /var/lib/mysql/ib_buffer_pool
InnoDB: Buffer pool(s) dump completed at 190402 20:31:01
InnoDB: Waiting for page_cleaner to finish flushing of buffer pool 

InnoDB: Waiting for page_cleaner to finish flushing of buffer pool每分钟都会添加一行。

有没有办法重置 MariaDB?或者有办法获取有关问题的更多信息?

附言:我最近通过软件包管理器安装了一些更新,之后第一次注意到了这个问题。

更新:

当我卸载、重启并重新安装 MariaDB 时,我可以停止/重启 MariaDB 而不会出现问题,并且关机也不会出现问题。但再次启动后,我又回到了上述问题。

答案1

经过几个小时的努力,我终于解决了这个问题。

罪魁祸首是timedatectl set-local-rtc 1Win10 双启动的时间设置()。

由于最近的时间变更,时钟出现混乱。(状态日志条目sudo systemctl status mariadb是 1 小时后)

环境

timedatectl set-local-rtc 0

重新启动即可解决。

答案2

您还可以TimeoutSec=300从 mysql 启动服务配置文件中将超时值从(5 分钟)更改并减少到较低的值:

vi /usr/lib/systemd/system/mariadb.service

### after editing timout value in above config file you can apply it by using:
systemctl daemon-reload

笔记: 这不是一个解决办法或此问题的解决方案。它只是减少服务终止超时值。您应该考虑根据操作系统和服务上的情况或导致此问题的错误找到正确的解决方案,并在问题解决后将超时恢复为其默认建议值。

相关内容