core文件及分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

core⽂件及分析
如果数据库服务异常中断可按照以下步骤排查:
①查询数据库⽇志,排查错误。

②查询机器重启记录,看是否被重启。

(last reboot)
③在达梦数据库bin⽬录下查看core⽂件分析(关于core⽂件以下有介绍)。

检查core⽂件是否打开:ulimit -a
阻⽌core⽂件⽣成:ulimit -c 0
在/etc/profile加⼊以下语句禁⽌core⽂件产⽣
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1
在.bash_profile加⼊以下语句允许core⽂件产⽣
ulimit -c unlimited
查看proc/sys/kernel/core_uses_pid⽂件中是否添加pid作为扩展,开启为1,不开启为0。

修改/proc/sys/kernel/core_pattern⽂件,设置core⽂件保存的位置和⽂件名
例如:将产⽣的core⽂件存放到/corefile⽬录下,⽂件名为core-命令名-pid-时间戳
echo "/corefile/core-%e-%p-%t" >/proc/sys/kernel/core_pattern
测试使⽤core⽂件
①使⽤ps -ef|grep dmserver查出dmserver的进程。

通过kill -11杀掉该进程,在达梦安装bin⽬录下会产⽣core⽂件。

②在bin⽬录下输⼊ gdb -c core.4941⽤gdb分析core⽂件,可以看到进程4941的达梦服务是被信号11终⽌的。

③输⼊bt,显⽰当前的函数调⽤栈的所有信息
④gdb常⽤命令:
where --查看程序出问题的地⽅
break <⾏数> --在该⾏设⽴断点
info break --显⽰断点信息
run --运⾏GdbDebug
pwd --显⽰当前所在⽬录
backtrace --打印当前的函数调⽤栈的所有信息
1. ⼿动⽣成core⽂件
[dmdba@localhost bin]$ cd /opt/dmdbms/bin
[dmdba@localhost bin]$ ps ax|grep dmserver
122928 /opt/dmdbms/bin/dmserver /opt/dmdbms/data/DAMENG/dm.ini -noconsole [dmdba@localhost bin]$ gdb dmserver
···
2. gdb分析core⽂件
[dmdba@localhost bin]$ cd /opt/dmdbms/bin
[dmdba@localhost bin]$ gdb dmserver core.122928
···
3. dmrdc分析core⽂件
[dmdba@localhost bin]$ cd /opt/dmdbms/bin
[dmdba@localhost bin]$ ./dmrdc sfile=core.122928
然后会在bin⽬录下⽣成core_tmp.122928,该⽂件中存储着所有正在执⾏的SQL,可以根据core中最⼩的lwp号,来确定是哪条SQL卡住了。

相关文档
最新文档