注册
数据库挂库core文件分析
专栏/培训园地/ 文章详情 /

数据库挂库core文件分析

小辉辉 2024/04/08 1355 2 0
摘要

core文件相关配置

1.1查看core文件是否开启

Core file size 为0代表关闭core文件,unlimited代表开启core文件。
开启core文件以后,代表进程异常以后,会生成core文件。
使用ulimit -a 查看core文件信息。
image.pngimage.png

1.2临时关闭core文件配置。

[root@localhost ~]# ulimit -c 0
以下是参数
image.png
永久生效
image.png

1.3 core文件的名称和路径配置

默认生成路径:输入可执行文件运行命令的同一路径下
默认生成名称:默认命名为core,新的core文件会覆盖旧的core文件
设置pid作为文件扩展名:
[root@localhost ~]#echo "1">/proc/sys/kernel/core_uses_pid或者sysctl -w kernel.core_uses_pid=1
image.png
修改临时生效core文件路径
[root@localhost ~]#mkdir /corefile
[root@localhost ~]#chmod 777 /corefile
[root@localhost ~]#echo "/corefile/%e.core.%p">/proc/sys/kernel/core_pattern
[root@localhost ~]#sysctl -w kernel.core_pattern=/corefile/core-%e-%p-%t
image.png
永久生效需要配置/etc/sysctl.conf文件
[root@localhost ~]#echo "kernel.core_pattern=/corefile/%e.core.%p" >> /etc/sysctl.conf

1.4验证core文件配置是否生效

执行kill -11 进程号会生成core文件,例如:
Kill -11 4166
image.pn## 二级标题g
查看进程异常终止生成的core文件
image.png

1.5 dmrdc工具

对于数据库产生的core文件,dm提供dmrdc工具进行core文件的分析读取,此工具可以提取出core文件中的完整sql语句
image.png

1.6 gdb工具

image.png
操作如下:
1.使用gdb打印堆栈信息
[dmdba@localhost bin]$ gdb dmserver /corefile/core-dmserver-4166-1669464222
image.png
2.通过gdb命令info thr获取thread 1对应线程号,一般为前面带*号的线程是导致挂库的线程。
image.png
3.查找出dmrdc解析文件中对应线程号的sql。
4.把堆栈信息发给总部专家分析。

1.7 获取完整的堆栈

当遇到数据库异常中止问题,我们需要及时收集信息反馈给研发进行问题定位,其中包括core文件的完整堆栈
1.使用gdb调式core文件
gdb dmserver core-dmserver-xxxxxx
2.设置堆栈输出文件名称
set logging file gdb_1125.log
3.开启记录功能
set logging on
4.打印所有线程堆栈
Thread apply all bt
5.关闭记录
set loggin off

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服