OBserver崩溃后生成的core核心转储文件怎么进行安装和排查

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

1、执行lsblk

2、执行lscpu | grep Architecture 提供下结果

3、需要回传下gdb core文件后的信息,获取方法如下:

一、登录对应主机,执行如下命令,发我们下结果:

cat /proc/sys/kernel/core_pattern

二、安装debuginfo方法

  1. 确认版本号,例如OB包的版本号是:oceanbase-ce-4.2.2.0-100010012024022719,那么对应的debuginfo包是:oceanbase-ce-debuginfo-4.2.2.0-100010012024022719.el7.x86_64.rpm 还需对应x86或者arm
  2. 安装方式

yum install 或 rpm -ivh debuginfo包名

3、安装包地址

4.请确认相同版本debuginfo是否安装成功,再进行下面信息收集(这点很重要!!!)
a.执行rpm -qa | grep oceanbase(确认是否同版本),在/home/admin/oceanbase目录下执行下面命令

readelf -S bin/observer | grep -E ‘symtab|debug_info’

[36] .debug_info PROGBITS 0000000000000000 33bc3a37

[42] .symtab SYMTAB 0000000000000000 650685e0

debuginfo提供调试信息,缺少它将看不到行号

symtab提供符号信息,缺少它将看不到函数名

如果gdb加载过程提示了读取observer.debug,则代表正常

5、建议使用gdb 9.1版本(尽量gdb版本>=7.10)

6、debuginfo RPM 包抽取 observer.debug

  1. 直接使用安装的方式。

sudo rpm -ivh rpm包名称

安装后,observer.debug 在/usr/lib/debug/home/admin/oceanbase/bin/observer.debug

如果之前安装过其他版本的debuginfo, 最后安装的替换之前安装的文件。

  1. 不安装,直接抽取的方式如下:

通过命令获取observer.debug 的路径。

sudo rpm2cpio rpm包名称 |cpio -t |grep observer.debug

返回路径如下:

./usr/lib/debug/home/admin/oceanbase/bin/observer.debug

获取路径后,通过命令

sudo rpm2cpio rpm包名称 |sudo cpio -idv ./usr/lib/debug/home/admin/oceanbase/bin/observer.debug

命令执行需要时间,执行后,observer.debug 在当前执行命令的目录下的 /usr/lib/debug/home/admin/oceanbase/bin 目录下

然后将observer.debug copy 到如下目录。

/usr/lib/debug/home/admin/oceanbase/bin/ 或 /home/admin/oceanbase/bin

获取gdb信息:

gdb /home/admin/oceanbase/bin/observer core文件名称

–在进入交互界面之后

set logging file /home/admin/oceanbase/gdb-output

set logging on

set pagination off

set print pretty on

set print elements 0
相关指令:

bt

bt full

disas

info r

info thread

set logging off

quit

之后将gdb-output文件回传