最近两天自己负责的一个实例频繁出现crash的情况,分析了日志,大致明白了crash的原因,但是没有定位到具体的SQL,也没有找到很好的规避的办法,因此想在mysql出现crash的时候自动将内存堆栈相关的信息保存到core文件,然后通过gdb分析再结合源码来确定导致mysql crash的根本原因。

因为之前在linux下操作过core文件的设置,因此想当然地通过ulimit -c unlimited打开linux的core文件设置,然后喝茶,静静等待core文件的产生。终于等到实例出现crash,但是core文件并没有如期产生。查了下mysql的官方文档,发现还需要通过 --core-file启动或者将core_file配置到配置文件,然后重启实例。如下图的官方文档所示:

这次涉及到实例重启,多少会影响业务,为了谨慎期间,特地找了个测试环境,按照如下配置进行操作:

1、打开linux的core文件配置

ulimit -c unlimited

2、添加mysql的core_file配置(备注:配置在[mysqld]下面),并重启测试实例

3、模拟mysql的crash场景,执行如下命令

kill -SEGV  `pidof mysqld`

操作完成后并未如期出现core文件,通过google发现有人遇到了和我一样的困惑,发现还有几个地方需要设置了,继续测试,这次按照如下步骤进行操作:

1、打开linux的core文件配置

ulimit -c unlimited

2、添加mysql的core_file配置(备注:配置在[mysqld]下面),并重启测试实例

3、配置 suid_dumpable( mysql 通常会以 suid 方式启动)

echo 2 >/proc/sys/fs/suid_dumpable

4、设置core文件存放的目录并且设置完全控制权限

mkdir /data/core && chmod 777 /data/core && echo "/data/core/core" > /proc/sys/kernel/core_pattern

5、模拟mysql的crash场景,执行如下命令

kill -SEGV  `pidof mysqld`

kill操作执行完成后,终于看到了久违的core文件。总结mysql的core文件正确打开方式如下:

1、打开linux的core文件配置

ulimit -c unlimited

2、添加mysql的core_file配置(备注:配置在[mysqld]下面),并重启测试实例

3、配置 suid_dumpable( mysql 通常会以 suid 方式启动)

echo 2 >/proc/sys/fs/suid_dumpable

4、设置core文件存放的目录并且设置完全控制权限

mkdir /data/core && chmod 777 /data/core && echo "/data/core/core" > /proc/sys/kernel/core_pattern

注意:打开core配置后会有如下两个风险

1、磁盘空间可能会满

----因为会将mysql server的所有内存信息导出到core文件中,包括buffer pool中的内容,可能会有几十上百G大小

2、mysql出现crash后启动速度会慢

----因为要导出大量的数据到core文件中,因此启动速度会慢很多。

参考资料:

https://dev.mysql.com/doc/refman/5.5/en/server-options.html#option_mysqld_core-file

https://www.percona.com/blog/2011/08/26/getting-mysql-core-file-on-linux/

mysql core_mysql core文件的正确打开姿势相关推荐

  1. java mail 附件 dat,邮件附件winmail.dat文件的正确打开姿势

    Outlook是一款办公场景中常被使用的邮箱工具.许多用户在用Outlook管理邮箱收发邮件的过程中,会遇到邮件中的附件被打包成winmail.dat格式文件无法打开的情况. 今天将分享邮件附件win ...

  2. 邮件附件winmail.dat文件的正确打开姿势【企业邮箱如何申请】

    Outlook是一款办公场景中常被使用的邮箱工具.许多用户在用Outlook管理邮箱收发邮件的过程中,会遇到邮件中的附件被打包成winmail.dat格式文件无法打开的情况.今天邮箱课堂将分享邮件附件 ...

  3. 索引的正确“打开姿势”

    本文分享自华为云社区<DWS 索引的正确"打开姿势">,原文作者:hoholy . 索引能干什么呢,一言以蔽之:查询加速.常见的索引有下面几种: 1. 常用索引介绍 1 ...

  4. android markdown 框架,Android Studio MarkDown风格README的正确打开姿势

    万事开头难,这是我的第一篇简书,讲一讲我是怎么在AS上安装MarkDown编辑器插件的. 前言 其实吧刚开始我并没有觉得AS自带的文本编辑器有什么不好,README文件也就是记录一些相关信息,也没想着 ...

  5. md文件的正确打开方式

    常常会遇到md格式的文件,默认打开方式是记事本,但是打开后不利于阅读,体验很差. 直到今天才明白,正确打开md文件是一件多么美妙的事情!!! 可以使用**Notepad++**来打开,该软件在编程方面 ...

  6. python word2vec怎么用_小白看Word2Vec的正确打开姿势|全部理解和应用

    有个用心的读者最近做了一篇论文,想知道Word2Vec的相关理论和应用方法,作为一个有强迫症的我,去翻查了大量的文献资料,决定从Word2Vec的上下文来温习一下这个NLP的基础以及做相关的知识体系的 ...

  7. class ts 扩展方法_ts类型声明文件的正确使用姿势

    ts类型声明文件的正确使用姿势 ts声明文件类型 npm install @types/jquery --save-dev 与npm一同发布 解释: package.json 中有 types 字段, ...

  8. win10系统rar文件的正确打开方式

    rar文件怎么打开?基本上所有的windows电脑用户都会有接触到rar文件,特别是我们在传输大文件夹的时候rar文件可以说是必备的.但是最近很多升级到win10系统的用户发现自己的rar文件夹打不开 ...

  9. swf文件的正确打开方式

    软件下载链接在此,可不必看下面的解释 最近在看新东方的英语口语视频教程(<新东方4+1英语口语教程>,也在此向大家推荐一下),可是在播放过程中,老是出现自己跳转到视频的起始位置并暂停的状况 ...

最新文章

  1. STM32-RCC内部总线时钟设置程序详讲
  2. 提升权限_Azure权限提升漏洞
  3. Samsung Pay体验札记:或推支付新浪潮
  4. [SHELL]备份系统文件并邮件发送
  5. java set去重复元素_java List去掉重复元素的几种方式
  6. android放微信@功能,Android仿微信语音消息的录制和播放功能
  7. python 二叉树
  8. Java JDBC中的Statement和PreparedStatement
  9. 上海房屋租赁合同登记备案证明办理流程
  10. vivado安装步骤
  11. 关闭小米系统自动更新通知
  12. 中国工业钩环市场深度研究分析报告
  13. TL431和PC817在开关电源中的工作详解
  14. 虚拟化arm服务器,arm服务器虚拟化(armvm虚拟化搭建手机)
  15. 安卓四大组件之广播组件(Broadcast)
  16. Linux 之log 日志记录
  17. 作为IT行业过来人,我有一些话不得不说
  18. c语言找出一个数组中出现次数最多的那个元素,c语言找出数组中出现次数最多地那个元素...
  19. 牛客网《剑指offer》专栏刷题练习之双指针算法的使用
  20. IT高管和易筋经的故事

热门文章

  1. 黎明觉醒服务器维护怎么办,黎明觉醒无法更新怎么办 黎明觉醒无法更新解决办法...
  2. 2019届华为笔试题(软件卷)
  3. 结对项目-最长单词链
  4. 超级巡警(Anti-Spyware Toolkit)3.0.0
  5. FLIR相机项目属性配置lib文件备份
  6. MATLAB如何对文字进行搜索,基于matlab的文字识别算法
  7. macOS系统添加网络打印机
  8. MyCnCart 专业版 - 【新闻订阅弹出框】及【新闻订阅横幅】
  9. 魂斗罗java设计,你所不知道的《魂斗罗》 设计企划书告诉你神作如何炼成
  10. 最新重庆某公司面试题