背景
因工作需要,服务器部署了达梦数据,环境为linux 7虚拟机(RedHat、中标麒麟、CentOS同理);数据安全方面有专业数据库审计软件进行sql执行记录、排查,但是,执行极其复杂的SQL偶尔会导致数据库服务dmserver宕机
本文通过笔记的方式,将追踪导致数据库服务dmserver宕机复杂sql的过程共享出来,供给位参考
故障追踪
利用Coredump文件对故障进行分析:因为达梦数据进程dmserver在故障出现后会将相关错误记录在【安装路径/bin】下,文件名为:****.core,一般为数字格式。使用gdb读取coredump的命令行读取这些.core::
记录当前崩溃线程堆栈:
(gdb) bt
#0 0x00000000007e36a3 in nexp_gen_invocation ()
#1 0x00000000007e764f in nexp_gen_inv_args ()
(gdb)
记录当前崩溃线程号:
(gdb) info threads
前面有*为当前线程,LWP后面为线程号,如上图为2839。