达梦core文件分析

达梦core文件分析步骤

配置系统生成core文件的路径
vim /etc/sysctl.conf 

kernel.core_pattern = /dmdata/core.%p

执行sysctl -p使配置生效

vim /etc/security/limits.conf

dmdba  soft      core       unlimited

dmdba  hard      core       unlimited

ulimit -c 查看用户生成core文件的大小限制

检查core文件输出路径cat /proc/sys/kernel/core_pattern,检查显示的目录空间是否足够,空间需要大于1.5倍物理内存大小;

检查系统能否生成core,且产生的文件在指定目录,可以通过新建测试实例,手动kill -s 11

一、数据库版本信息

select id_code

二、coredump文件信息

Coredump文件名:
Coredump文件大小:
Coredump文件产生时间:
 

三、Coredump文件崩溃线程堆栈信息及SQL语句

提供gdb读取coredump的命令行截图:
这里要切换到达梦安装目录bin下面执行 cd /hoem/dmdba/dmdbms/bin
gdb ./dmserver core.1211864
上面可以看出,core文件是由达梦应用程序产生的
记录当前崩溃线程堆栈:
(gdb) bt
记录当前崩溃线程号:
(gdb) info threads           
前面有*为当前线程,LWP后面为线程号,如上图为4033973
上面是在非安装bin目录下执行,打印信息的时候后面有很多? 查询具体信息需要在bin目录执行,如下所示

thread apply all bt     记录当前所有崩溃线程堆栈

 

四、Coredump文件所有线程堆栈信息及所有的SQL语句

cd /home/dmdba/dmdbms/bin
./dmrdc sfile=/dmdata/core.1211864 dfile=result74.txt
五  根据生成的文件查看结果
cat result74.txt 
(从dmrdc的结果中找步骤3对应的4033973线程号,!#%&*^$@[线程号]):   单独执行SQL语句是否可重现问题:

 

6  如果不是由达梦sql产生的core文件,则result.txt不会生成任何内容,如下这种

 

posted @ 2022-07-25 15:35  fangzpa  阅读(1025)  评论(0编辑  收藏  举报