原创获取MySQL crash 时的core file

Posted 数据库技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原创获取MySQL crash 时的core file相关的知识,希望对你有一定的参考价值。

最近有台服务器的mysql经常crash,为了进一步定位问题,开启了mysql core file功能,开启步骤如下,供参考

 

【开启步骤】

1、 my.cnf文件中增加2个配置选项

[mysqld]

core_file

[mysqld_safe]

core-file-size=unlimited

2、修改系统参数,配置suid_dumpable

echo 1 >/proc/sys/fs/suid_dumpable

3、重启mysql服务,配置生效

service mysql restart

 

【生成core file】

1、模拟mysql crash的场景,kill –SEGV

2、mysql crash后,生成core file的时间取决于mysql占用的内存大小

测试环境生成21G的core file,花费约3分钟左右,期间mysql进程存在,但 mysql服务无法响应。这种情况下会发生MHA切换。

3、生成core file期间,不能手工kill mysql进程,否则会导致产生的core file被截断,无法正常分析,core dump结束后,mysql会自动重启

 

4、core file生成后,可以用gdb来分析

 

 

【需注意的问题】

1、 需要为生成core file的目录预留足够大的磁盘空间,默认路径会生成在数据目录下,文件大小参考mysql占用的内存大小

2、 生成core file会延长mysql crash自动恢复的时间

 
 

以上是关于原创获取MySQL crash 时的core file的主要内容,如果未能解决你的问题,请参考以下文章

C++ crash 堆栈信息获取

mysql/mariadb怎样生成core文件

在 Core Data 中获取数据时的 performBackgroundTask 故障错误

mysql/mariadb怎样生成core文件

crash处理core文件

案例分享:如何通过JVM crash 的日志和core dump定位和分析Instrument引起的JVM crash