GBase 8a
运维管理
文章

gbase 8a 麒麟操作系统core日志不生成解决办法。

发表于2024-04-26 19:31:4035次浏览1个评论

一、问题现象

麒麟V10-SP1 上gbase 8a 数据库异常重启后,搜索不到对应的core文件。

二、问题分析

  1. 检查core文件配置/proc/sys/kernel/core_pattern未修改,即代表生成的core文件会保存在/var/lib/systemd/coredump目录。
  2. 查看ulimit -a参数,显示core file size 为unlimited。

  3. 检查系统message日志。存在core文件生成日志,但是被截断。

  4. coredumpctl info查看,系统在/var/lib/systemd/coredump路径已经生成了一个core压缩文件,PID和message日志中的相对应。但是状态是(inaccessible , truncated)不可访问。


     

  5. 查看系统core文件systemd-timpfiles规则,/var/lib/systemd/coredump下面的core文件只保留三天。

三、问题分析

重启不是第一次发生,在前一次重启的时候修改过ulimit 中的core相关参数,将其值从102400修改至unlimited,但是并未重启gbase数据库服务,导致core生成参数不对数据库生效。必须在编辑参数后,重新切换gbase用户再执行gcluster_service all restart 才会数据库生效。所以core日志显示被截断。而core 文件无法找到为/var/lib/systemd/coredump下文件在三天后会被systemd-tmpfiles-clean服务自动清除。

四、解决方案

  1. 编辑/etc/security/limits.conf,增加如下行:

    *               soft    core            unlimited

  2. 编辑/etc/systemd/coredump.conf,修改如下参数

    ProcessSizeMax=20G

    ExternalSizeMax=20G

  3. 编辑/usr/lib/tmpfiles.d/systemd.conf,修改文件保存时间为90天

    d /var/lib/systemd/coredump 0755 root root 90d

  4. 重启相关服务使参数生效

    su - root 
    systemctl restart systemd-tmpfiles-clean.service
    systemctl daemon-reload
    systemctl restart systemd-coredump.socket
    su - gbase 
    gcluster_service all restart 

 

评论

登录后才可以发表评论
用户头像
levvel发表于 3个月前
观点很新颖!