达梦数据库安装后手动配置core路径 调试并查看

📅 2026/7/19 18:19:18 👁️ 阅读次数 📝 编程学习
达梦数据库安装后手动配置core路径 调试并查看

先查看一下系统的core的相关信息

在 Linux 上,所有 core 文件怎么生成、放在哪,由内核参数 kernel.core_pattern 决定。输入

sysctl kernel.core_pattern

可以有好几种输出:

第一种:

/var/coredump/core.%e.%p.%t 是这种普通路径

%e:程序名。
* %p:进程 ID。
* %t:崩溃时间戳

去相应路径下去找就可以

第二种:

输出以 | 开头(交给外部程序处理)

类似于我的输出

内核生成 core 时,不直接写磁盘文件,而是把 core 二进制数据流通过管道,传给后面指定的程序 /usr/libexec/abrt-hook-ccpp。

作用:交由 abrtd(自动崩溃报告工具)处理崩溃转储,自动收集、压缩、归档崩溃日志,而不是裸 core 文件散落在系统。

注意;不同程序运行崩溃产生的core文件不一定在同一个位置。

会不会在同一位置,完全看 kernel.core_pattern

这种 | 开头的情况,所有程序的 core 都由 abrt 统一收集,放在同一个目录:/var/spool/abrt/ 下面,只是每个崩溃事件一个子目录,文件名里会带上程序名、PID 等信息

我们可以修改 kernel.core_pattern的值改为自定义路径

比如:

第一种:

mkdir -p /dmdata/coredump

sysctl -w kernel.core_pattern="/dmdata/coredump -%e-%p-%t"

sysctl -p (这些操作只是临时修改,重启后不会保存)

之后系统中所有程序崩溃时产生的core文件都生成在/dmdata/coredump目录下 只是文件名不同,不会相互覆盖。

第二种:

sysctl -w kernel.core_pattern="core.%e.%p"

没有定义路径。内核就会在进程崩溃时,把 core 文件写到进程的当前工作目录。

我用的绝对路径

检查一下core权限是否打开

ulimit - c

尝试生成一个core文件

先启动数据库服务

查询进程

ps -ef | grep dmserver | grep -v grep

杀死进程

Kill – 6 你的进程号

core文件生成完成

用dmrdc解析