GreatSQL通过错误日志信息判断数据库实例是如何关闭的

这篇具有很好参考价值的文章主要介绍了GreatSQL通过错误日志信息判断数据库实例是如何关闭的。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景概述

在一次客户的数据库实例连接不上了,需要我们排查一下原因,通过查看数据库实例进程已经不存在了,在错误日志中没有发现其他报错信息,发现有shutdown的字样出现,怀疑是某个用户手动关闭了实例。我们通过以下测试,发现是由于用户关闭了主机所导致的。

问题复现

本次测试基于GreatSQL 8.0.32-24,通过以下测试了解不同情况下关闭数据库实例后错误日志会记录哪些信息,之后可以通过错误日志中的信息了解到数据库实例是如何被关闭的。

1.正常关闭shutdown

mysql> shutdown;

查看错误日志

2023-04-24T18:41:16.491010+08:00 504 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.0.32-24).
2023-04-24T18:41:28.657637+08:00 0 [System] [MY-010910] [Server] /greatsql/svr/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.32-24)  MySQL Community Server - GPL.

可以看到正常关闭实例时,会显示是由哪个数据库用户执行的shutdown命令:SHUTDOWN from user root

2.kill关闭

通过kill命令关闭实例

shell> ps -ef | grep mysqld
shell> kill 22803 17012

查看错误日志

2023-04-24T18:42:30.910121+08:00 0 [System] [MY-013172] [Server] Received SHUTDOWN from user <via user signal>. Shutting down mysqld (Version: 8.0.32-24).
2023-04-24T18:42:32.201306+08:00 0 [System] [MY-010910] [Server] /greatsql/svr/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.32-24)  MySQL Community Server - GPL.

可以看到通过kill命令关闭实例会显示 SHUTDOWN from user <via user signal>,不会显示具体执行kill 的操作系统用户

3.kill -9 关闭

通过kill -9关闭数据库实例

shell> ps -ef | grep mysqld
shell> kill -9 11803 18712

查看错误日志

# 错误日志中不会显示任何信息

如果数据库实例进程不存在,并且错误日志信息中没有明显的数据库实例关闭的信息,可考虑数据库实例是通过 kill -9 关闭的

4.主机reboot/shutdown

通过正常关闭主机,从而导致数据库实例关闭

shell> reboot

查看错误日志

2023-04-24T18:46:51.021426+08:00 0 [System] [MY-013172] [Server] Received SHUTDOWN from user <via user signal>. Shutting down mysqld (Version: 8.0.32-24).
2023-04-24T18:46:53.774795+08:00 0 [System] [MY-010910] [Server] /greatsql/svr/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.32-24)  MySQL Community Server - GPL.

可以看到通过正常关闭主机导致数据库实例关闭会显示 SHUTDOWN from user <via user signal>,不会显示具体执行关闭主机的的操作系统用户

5.主机异常断电

通过模拟主机异常断电,从而导致数据库实例关闭

# 对主机做断电操作

查看错误日志

# 错误日志中不会显示任何信息

如果数据库实例进程不存在,并且错误日志信息中没有明显的数据库实例关闭的信息,可考虑数据库实例是由于主机异常断电关闭的。

总结

1.正常关闭数据库实例时,错误日志中会记录是由那个数据库用户关闭的,如 SHUTDOWN from user root

2.通过 kill 命令关闭数据库实例以及关闭主机(reboot/shutdown)导致数据库实例关闭,错误日志中会记录 SHUTDOWN from user <via user signal>,可通过history命令查看是否执行过 kill 操作或关闭主机的操作

3.通过kill -9 命令关闭数据库实例以及主机异常断电导致数据库实例关闭,错误日志中不会记录导致数据库实例关闭的信息,可通过history命令查看是否执行过 kill -9 操作


Enjoy GreatSQL 😃

关于 GreatSQL

GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。

相关链接: GreatSQL社区 Gitee GitHub Bilibili

GreatSQL社区:

社区博客有奖征稿详情:https://greatsql.cn/thread-100-1-1.html

GreatSQL通过错误日志信息判断数据库实例是如何关闭的

技术交流群:

微信:扫码添加GreatSQL社区助手微信好友,发送验证信息加群

GreatSQL通过错误日志信息判断数据库实例是如何关闭的文章来源地址https://www.toymoban.com/news/detail-581263.html

到了这里,关于GreatSQL通过错误日志信息判断数据库实例是如何关闭的的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包