在日常生活中,当数据库服务器异常中断生成core文件时,通过core文件可以查出当时中断是如何造成的并且通过dmrdc工具可以分析出中断的SQL语句。
1.gdb读取core文件
gdb ./dmserver core.2731
记录当前所有崩溃线程堆栈:
(gdb) thread apply all bt
记录当前崩溃线程堆栈:
(gdb) bt
记录当前崩溃线程号:
(gdb) info threads
前面有*为当前线程,LWP后面为线程号,如上图为2839。
2.通过dmrdc工具生成SQL语句
./dmrdc sfile=core.2731
SQL语句(从dmrdc的结果中找对应的2839线程号,!#%&*^$@[线程号2839]):
!#%&*^$@[2839]CREATE OR REPLACE PACKAGE BODY...................略略略...
至此导致数据库宕机的SQL语句就找出来了,与厂家进行沟通优化或升级就欧克。
评论已关闭