yum update
我有一个相对较大的数据库(> 500 GB),昨晚运行了一个升级mysql-community-server
。
从那时起,MySQL 服务器已经处于“服务器正在关闭”状态 16 个小时了:
# service mysqld status
Redirecting to /bin/systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/mysqld.service.d
└─override.conf
Active: deactivating (stop-sigterm) since Mon 2020-07-20 01:18:28 CEST; 14h ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Main PID: 8318 (mysqld)
Status: "Server shutdown in progress"
CGroup: /system.slice/mysqld.service
└─8318 /usr/sbin/mysqld
另外,mysqld
现在 CPU 使用率持续达到 300%。
有问题吗?还是这只是数据库太大造成的结果?有什么方法可以让我了解剩余时间,或者查看服务器实际在做什么?
我能做些什么来加快这个过程吗?
供参考,该服务器是 6 核 Xeon,配备 128GB RAM 和 NVMe 驱动器,因此速度相当快。
有足够的可用磁盘空间和空闲 RAM。
# free -m
total used free shared buff/cache available
Mem: 128889 88292 11189 2225 29407 37145
Swap: 16381 5168 11213
更新:现在已经过去 72 小时了。什么都没有改变。
答案1
看起来是已知错误发生这种情况的原因是因为您在升级之前没有停止数据库并且某些查询正在运行。
更多详细信息请访问Percona 文章
尝试使用命令行实用程序麦托普看看发生了什么。但您提到您无法访问数据库,请尝试使用 root 用户。如果可能,请备份数据库,如果无法备份,在更糟糕的情况下,您可以尝试使用以下命令修复数据库MySQL 文档
在此回答建议这可能与您服务器上的时间设置有关。
要获取有关卡住进程的信息,您可以使用lsof -c mysqld
应该给您提示。
systemctl reboot
不要终止 mysqld 进程,而是尝试通过命令或重新启动服务器shutdown -r now
,不要将其拔出。