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

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

时间:2023-07-19 10:45:07浏览次数:35  
标签:数据库 GreatSQL 实例 kill 关闭 mysqld 日志

背景概述

在一次客户的数据库实例连接不上了,需要我们排查一下原因,通过查看数据库实例进程已经不存在了,在错误日志中没有发现其他报错信息,发现有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,实例,kill,关闭,mysqld,日志
From: https://www.cnblogs.com/greatsql/p/17564934.html

相关文章

  • CLV620 高速读取条码调试实例
    ​ ​ 第一部分:现场问题描述 客户反馈SICKCLV620在低速下读取没有问题,在高速下大概3m/s以上就无法正常读取。客户要求实际速度在6m/s的应用场合。 现场观察现象确实如此,但原因却不是。 难点: 1,客户反馈的问题误导了排查思路; 2,现场条码质量较差无法满足实......
  • python日志记录代码
    Python日志记录的实现步骤为了帮助这位刚入行的小白实现Python日志记录代码,我们将按照以下步骤进行操作。这些步骤将指导他从头开始创建一个基本的日志记录系统。我们首先给出这些步骤的概述,然后逐一介绍每一个步骤的细节以及相应的代码。步骤概述步骤描述1导入loggin......
  • go语言读取docker容器的日志
    使用DockerSDK:要使用DockerSDK来读取Docker容器的日志,您需要安装DockerSDK并使用其提供的函数进行操作。安装DockerSDK:goget-ugithub.com/docker/docker获取容器ID#短IDdockerpsCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAM......
  • shell脚本-Nginx访问日志分析
    shell脚本-Nginx访问日志分析1.原理可以通过/usr/local/nginx/logs/access.log文件-查看nginx的日志[root@localhostscripts]#tail-f/usr/local/nginx/logs/access.log192.168.70.1-[17/Jul/2023:17:35:21+0800]"GET/HTTP/1.1"200173833"-""Mozilla......
  • 比赛日志(模拟赛)
    2023.7.15ABC310主要是翻译的问题,读题读了很久。A了C题就结束了。2023.7.15CF885Div.2还是翻译的问题,读题读了很久。C题有点难,这场比赛不好。题面废话贼几把多。赛后解决了翻译问题。......
  • python日志调试
    1.日志logging.debug():最低级别,用于小细节,通常用于在诊断问题时,才会关心谢谢消息logging.info():用于记录程序中一般事件的信息,或确认一切工作正常logging.warning():用于表示可能的问题,它不会阻止程序的工作,但将来可能会logging.error():用于记录错误,它导致程序做某事失败logg......
  • react项目中使用redux的实例
    当在React项目中使用Redux,你需要安装redux和react-redux库。下面是一个简单的示例,展示了如何在React项目中集成Redux:1.安装依赖库:npminstallreduxreact-redux2.创建Reduxstore:在项目的根目录下,创建一个名为store.js的文件,并编写以下代码:点击查看代码import{createSto......
  • Oracle重做、归档日志
    日志文件oracle日志文件分为两种:重做日志文件(redo),或者称为“在线重做日志”归档日志文件(arch),或者称为“归档重做日志”在线重做日志文件全称:OnlineRedoLogFile。用来记录数据发生事务transaction的信息以及Oracle内部行为引起的数据库变化信息。在数据库恢复时,可以从......
  • Oracle密码文件、警告日志文件、跟踪文件
    密码文件oracle用于验证sysdba权限的二进制文件。警告日志文件警告日志文件是用来记录oracle数据库系统在运行期间的各种信息:oracle实例打开和关闭、建立表空间、增加数据文件等记录。警告日志文件名一般为:alert_<ORACLE_SID>.log。[oracle@swq~]$find/data-name"alert......
  • 19.实例方法,类方法,静态方法
    python实例方法,类方法,静态方法目录python实例方法,类方法,静态方法实例方法类方法静态方法案例参考资料实例方法只能被被实例对象调用第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法方法内部可以传类的属性和方法类方法实......