前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >GreatSQL通过错误日志信息判断数据库实例是如何关闭的

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

作者头像
老叶茶馆
发布2023-09-14 15:09:54
发布2023-09-14 15:09:54
25700
代码可运行
举报
运行总次数:0
代码可运行

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。

背景概述

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

问题复现

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

1.正常关闭shutdown

代码语言:javascript
代码运行次数:0
运行
复制
mysql> shutdown;

查看错误日志

代码语言:javascript
代码运行次数:0
运行
复制
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命令关闭实例

代码语言:javascript
代码运行次数:0
运行
复制
shell> ps -ef | grep mysqld
shell> kill 22803 17012

查看错误日志

代码语言:javascript
代码运行次数:0
运行
复制
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关闭数据库实例

代码语言:javascript
代码运行次数:0
运行
复制
shell> ps -ef | grep mysqld
shell> kill -9 11803 18712

查看错误日志

代码语言:javascript
代码运行次数:0
运行
复制
# 错误日志中不会显示任何信息

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

4.主机reboot/shutdown

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

代码语言:javascript
代码运行次数:0
运行
复制
shell> reboot

查看错误日志

代码语言:javascript
代码运行次数:0
运行
复制
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.主机异常断电

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

代码语言:javascript
代码运行次数:0
运行
复制
# 对主机做断电操作

查看错误日志

代码语言:javascript
代码运行次数:0
运行
复制
# 错误日志中不会显示任何信息

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

总结

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 :)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-08 07:00,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老叶茶馆 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景概述
  • 问题复现
  • 1.正常关闭shutdown
  • 2.kill关闭
  • 3.kill -9 关闭
  • 4.主机reboot/shutdown
  • 5.主机异常断电
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档