注册
达梦数据库core文件以及dmrdc工具的使用
专栏/培训园地/ 文章详情 /

达梦数据库core文件以及dmrdc工具的使用

您需要来点红豆嘛 2024/04/24 1141 0 0
摘要

1.core文件介绍
Core dump文件是进程异常时的一个快照,保存了进程异常时的内存、寄存器、堆栈等数据。core过程持续时间取决于进程申请内存大小和磁盘性能,对于一些对服务中断时间极为敏感的系统,需要评估是否需要开启coredump配置。进程生成的core文件大小是当时的进程使用的内存大小,数据库作为基础软件,一般使用内存较大,故生成的core文件也会比较大,需要提前规划好core路径并预留足够的磁盘空间。
2.数据库core异常分类
2.1服务端主动core
在数据库日志中会有dm_sys_halt的日志打印,内容附近会记录详细的问题原因,常见的异常情况如授权信息过期、文件完整性信息、内存是否污染信息、数据页校验信息等。
2.2因未知异常原因导致的core
数据库触发bug在没有任何提示的情况下突然终止运行,数据库日志不会打印具体错误信息,一般会在操作系统日志中出现segment fault类信息打印,我们可以在系统日志中搜索dm_或dmserver找到对应线程异常信息。
2.3服务人员手动进行core
我们会遇到数据库出现问题,不能很快定位问题,但因为现场环境我们需要第一时间恢复业务,此时为了后续我们进行问题排查,我们就需要手动把数据库进程coredump,记录下进程当前的内存信息。
kill -11 pid 或 kill –sigsegv pid

3.设置core文件生成
3.1开启core文件
1.临时生效
ulimit -c unlimited
image.png
2.永久生效
/etc/security/limits.conf
dmdba soft core unlimited
dmdba hard core unlimited
image.png
3.2设置名称和路径
1默认生成路径
可执行文件的同一路径下默认生成名字:默认命名为core,新的core文件会覆盖旧的core文件。

2.临时生效方法
设置pid作为文件扩展名:
echo “1”> /proc/sys/kernel/core_uses_pid
或 sysctl -w kernel.core_uses_pid=1
image.png
通过配置/proc/sys/kernel/core_pattern文件设置core文件生成路径和文件名称格式:
echo "/opt/core-%e-%p-%t" > /proc/sys/kernel/core_pattern
sysctl -w kernel.core_pattern=/opt/core-%e-%p-%t
重启服务器后修改重置
image.png

3.永久生效方法
需要修改/etc/sysctl.conf添加配置:
kernel.core_pattern = /opt/core-%e-%p-%t
kernel.core_uses_pid = 1
通过命令sysctl –p /etc/sysctl.conf进行生效
image.png
重启
image.png
4.验证生成效果
执行循环sql
image.png
杀数据库进程
image.png
查看core文件生成情况
image.png
4.dmrdc工具使用
执行生成可读文件命令
./dmrdc SFILE=/data/core-dmserver-1451-1669912724 DFILE=./core-dmserver-1451-1669912724.tmp
image.png
查看SQL
image.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服