CORE文件介绍
core文件是在程序异常崩溃时生成的文件,它包含了程序在崩溃瞬间的内存状态信息,主要是用来调试和分析问题。我们可以使用调试器工具(如GDB)来分析core文件,以便定位和解决问题。
CORE文件的配置
开启core文件生成:
编辑/etc/security/limits.conf添加以下内容
dmdba soft core unlimited
dmdba hard core unlimited
指定core文件生成目录(生成目录空间要大于服务器内存):
编辑/etc/sysctl.conf添加以下内容
kernel.core_pattern = /路径/core-%e-%p-%s
CORE文件分析
当数据库异常宕机后会在指定路径生成core文件
1)gdb读取core文件,在数据库安装目录bin下执行
gdb ./dmserver /home/dmdba/core/core-dmserver-10765-8
2)定义存储堆栈的文件名
set logging file /home/dmdba/core/core_240418.txt
3)开始向文件中写入
set logging on
4)记录当前所有崩溃线程堆栈
thread apply all bt
一直回车,直到没有新内容输出。
5)关闭向文件中写入
set logging off
6)记录当前崩溃线程堆栈
bt
7)记录当前崩溃线程号
info threads
同样回车到没有新内容输出
前面有*为当前线程,LWP后面为线程号,如上图为10765,quit退出gdb。
8)dmrdc工具生成tmp文件,在tmp文件中找到对应对应崩溃线程号的sql
./dmrdc sfile= /home/dmdba/core/core-dmserver-10765-8
执行完成后,在core目录下会生成一个tmp文件
找到具体sql后,手动在数据库中执行,确认是否的确是该sql引发数据库异常宕机。
码字不易,多多支持。