进一步讨论达梦的故障定位与分析

新功能上线的坑 一次达梦数据库故障的排查过程(DB应答码7075、DB应答码524) 达梦数据库集群,DB应答码7075、DB应答码524,HJ_BUF_GLOBAL_SIZE 阅读详情

上一篇遇到的达梦数据库宕库问题,最终分析的结论虽然是操作系统SWAP区耗尽导致,与达梦数据库无关,但是根本原因是什么,以及以后如何规避类似问题,是更为重要的问题。老白在昨晚调整了达梦数据库的健康模型以及操作系统空闲内存过少那个运维经验的触发条件,这些调整能否在今后系统运行的过程中发挥作用,规避类似宕库事件的再次发生吗?

带着这个问题,我们在一个测试环境中继续进行跟踪。我们选择了一个装了MYSQL,Oracle等多个数据库的环境中模拟SWAP耗尽的现象。

很快调整后的模型发挥了作用,当SWAP使用率很高的时候,达梦数据库的健康分明显下降,我们很快捕获到了这个问题。

同时我们也看到达梦出现了runtime error的情况。这些现象都是和昨天下午的那个宕库现象是完全一致的。查看告警界面,内存不足告警的运维经验也发挥作用了,虽然内存不足报警的底线是200M,但是由于SWAP使用率超过了我们设定的85%的阈值,所以运维经验告警已经被推送到告警台上:

几分钟后,观察操作系统,发现SWAP已经耗尽了,但是free内存还有1.4G左右,AVAILABLE的内存有接近2G。

通过“核心操作系统资源”诊断工具,我们可以看出交换空间使用率达到100%。

进一步下钻分析,发现ceph,JAVA,MYSQL等消耗了较多的SWAP空间。

正在分析的时候,我们发现达梦数据库出现了宕库现象。幸运的是,这回我们在message日志里看到了明确的信息,由于SWAP耗尽,oom killer主动杀死了达梦的服务进程dmserver。这就是达梦数据库宕库但是数据库日志中没有任何信息的原因。整个达梦服务进程被直接kill掉了。由于达梦是单进程多线程架构的,一旦服务进程被杀掉,连写日志的机会都没有(Oracle是多进程机制,总有一个进程会有机会写入一些告警信息)。

这次模拟完美的解释了昨天下午的那个宕库事故。LINUX操作系统是真正的幕后杀手。为什么LINUX oom killer会杀掉达梦,而不去杀系统中的ORACLE,MYSQL呢?我们首先需要了解oom killer是如何工作的,oom killer是LINUX 为了确保系统的内存资源不耗尽而设置的一个守护进程,当系统内存不足时,选择oom score分数最高,并且占用内存资源较多的进程,主动杀掉该进程,确保操作系统不会彻底死掉。在本系统中,Oracle由于是多进程模式的,空间使用比较分散,因此Oracle相关进程的oom score并不高,不存在被杀掉的可能。Mysql数据库上面没有什么负载,所以oom score一直在5-8之间徘徊。Dmserver在没有负载时oom score大约在12左右,但是当压测启动后,很快突破100,达到140+,成为本系统中oom score最高的进程。于是oom killer就会首选dmserver了。

搞清楚了oom killer杀人的机制,那么我们下一步就可以设计针对达梦的保护方案了。将dmserver的oom_score_adj设置为-1000后,dmserver的oom_score就永远是0了,于是达梦数据库就不会被杀掉了(对于早期一点的Linux版,将oom_adj设置为-17达到的是同样的效果,在7.4上面直接设置oom_adj为-17,系统自动会将oom_score_adj设置为-1000)。

设置完参数后,我们继续加压,直到服务器连登录都十分缓慢,达梦数据库的性能已经下降了一半以上了,但是oom killer也没有杀掉dmserver,数据库再也不会宕机了。至此,此问题基本解决。

达梦数据库——常见运行日志报错信息记录 达梦数据库运行日志报错信息汇总 阅读详情

相关推荐

一次达梦数据库宕机的分析过程

至此我们的工作并没有完成,由于我们以前在知识上的误区,导致了这次宕机并没有被十分明显的报出来,我们的健康模型与运维经验报警都没有准确的对此次故障进行预警。通过这个故障的分析,我们将调整两个知识库,一个是达梦的健康模型,以前的模型中只关注物理内存空闲比例,而没有关注SWAP的使用率,因此我们必须将SWAP使用率的成分加入到健康模型中。从诊断报告上可以看出,在可能导致宕机故障的时间段内,有一个明显的问题,就是虽然物理内存还有较多空闲,但是操作系统的SWAP使用率比较高,超过95%,甚至出现了100%的现象。

DBAIOps的博客 873

达梦数据库性能分析

'阻塞信息',s.sess_id SId,t.wait_for_id ZSTId,s.sql_text ZSSql,s.user_name ZSUser,s.clnt_host,s.appname,s.clnt_ip,'被阻塞信息',s2.sess_id SId,t.id BZSId,s2.sql_text BZSSql,s2.user_name BZSUser,s2.clnt_host,s2.appname,s2.clnt_ip。开启:SP_SET_PARA_VALUE(1,'SVR_LOG',1);

BShu666的博客 1565

达梦数据守护集群之主库故障分析

本文第2章介绍主库故障、备库接管的执行流程,介绍了接管需要满足哪些条件;第3章模拟了达梦数据守护集群的主库故障,记录了故障分析过程。

limintjhn8820的博客 1760

达梦数据库,结束进程;

达梦

1398

AURIX-TC3xx-GTM详解六-DPLL(Digital PLL Module)-寄存器1-DPLL寄存器

主要有下图这些寄存器2、

m0_69929716的博客 440

WRF和WPS模型在Ubuntu系统上的安装与常见问题解决指南

本文详细介绍了在Ubuntu系统上安装WRF和WPS模型的完整教程,涵盖系统环境配置、依赖库安装、源代码编译以及常见问题的解决方案。重点解决了WPS编译中intmath.f文件的修改、环境变量设置和编译器兼容性等关键难点,帮助用户高效部署气象研究与预报模型。

weixin_29213525的博客 382

索引引发故障案例(二)

1、索引的开销 设置索引并行引起的风波 drop table t purge; create table t as select * from dba_objects where object_id is not null; alter table T modify object_id not null; insert into t select * from t; insert into t select * from t; insert into t select * from t; inser...

qq_22083251的博客 447

如何在VSCode中无缝集成Azure OpenAI GPT-5-codex?保姆级配置教程

本文详细介绍了在VSCode中无缝集成Azure OpenAI GPT-5-codex的完整配置教程,涵盖环境准备、Azure资源创建、本地配置、VSCode插件安装及高级定制。通过Codex CLI和config.toml文件配置,开发者可快速实现AI辅助编程,大幅提升代码生成、错误诊断和文档编写效率。

weixin_29268637的博客 557

达梦数据库杀死执行中SQL

达梦数据库查询当前正在执行的sql查看正在执行的语句终止正在执行的语句 查看正在执行的语句 select * from v$sessions where state = 'ACTIVE'; 终止正在执行的语句 call sp_close_session(140126061834680);

anyview93的博客 2280

软件设计师考试下午题代码部分详解:23种设计模式全面解析

软件设计师考试的下午题通常会考察设计模式的应用,这部分内容既是重点也是难点。本文将系统地介绍考试中常见的23种设计模式,通过详细代码示例和通俗易懂的讲解,帮助考生掌握这些核心知识点,提高应试能力。概念:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。适用场景:系统要独立于产品的创建、组合和表示时;系统要由多个产品系列中的一个来配置时。@Override@Override@Override@Override// 产品族A@Override。

4万+

C/C++小宇宙代码(完整代码)

C语言实现小宇宙的完整代码。

AIGC 2523

达梦数据库性能问题分析及优化

数据库优化,SQL优化,问题分析排查

liuyanwei1024的博客 9770

智能车复工日记【3】:图像处理——基本扫线和基本特征提取和十字补线

目录前言基本扫线(除了进入环岛状态或者坡道或者十字路口的普通扫线)基本数据和初步特征进一步特征提取1、计算并且显示前n行左右线各丢失数目(不break和break的都有)2、计算左右线方差(以右线为例)【a】计算右线曲率(选三个点:r_start、中点、break点)【b】如果右线曲率在一定的范围,就进行右线拟合,从空白行开始计算斜率,否则则从0行开始计算 前言 图像大小185*70,通过扫线获取.........

hanhan的博客 3万+

电标协数据库运维团体标准研讨会成功召开,云和恩墨以深厚积累深度参与标准研制

公司以“数据驱动,成就未来”为使命,致力于将创新的数据技术产品和解决方案带给全球的企业和组织,帮助客户构建安全、高效、敏捷且经济的数据环境,持续增强客户在数据洞察和决策上的竞争优势,实现数据驱动的业务创新和升级发展。作为国内数据库智能管理领域的领军企业,云和恩墨受邀参会,与金仓、电子标准院、虚谷、华为云、达梦等企事业单位及专家一道,深度参与标准草案的研讨与制定工作,以技术积淀赋能标准制定,为标准的科学性与实用性注入创新动能。自成立以来,云和恩墨专注于数据技术领域,根据不断变化的市场需求,创新研发了系列。

weixin_54551388的博客 111

2026年美赛数学建模竞赛 MCM B题:使用太空电梯系统建立月球殖民地 问题一 月球殖民地材料运输的三种场景建模 详细解题思路和代码

如果运输系统不能完美工作(例如,系绳摆动、火箭失败、电梯故障等),你的解决方案在多大程度上会发生变化?技术可行性:三种方案在技术上都是可行的,但挑战不同 经济性:混合方案在长期视角下最具成本效益 时间效率:并行运输可以显著缩短总建设时间环境影响:太空电梯的环境优势明显,混合方案可平衡需求风险分散:混合方案提供了天然的风险分散机制

YOLO 617

拿下华为性格测试!

华为性格测试指南

weixin_41171614的博客 5279

互联网职能坐标系:OD、PM、RD等角色的真实战场与协作逻辑

在互联网工程实践中,OD、PM、RD、FE等代号并非简单缩写,而是代表一套深度耦合的职能坐标系——它定义了职责边界、协作接口与技术决策权。其底层原理源于软件交付链路中的角色分工演化:从需求输入、架构设计、代码实现到质量保障,每个节点都需对齐技术约束与业务目标。这类职能体系的技术价值在于提升跨角色协同效率、降低系统性交付风险,并支撑高并发、信创适配、AB测试等典型工程场景。本文基于华为OD机试、PM Skills、RD图等高频热词,解析各角色在真实项目中的输入输出、卡点应对与能力跃迁路径,帮助工程师跳出岗位标

weixin_33805992的博客 359

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

达梦数据库自杀问题,达梦数据库异常宕机,达梦数据自动关闭

虽然有一些 halt 可以通过简单处理后(比如授权过期)立即恢复服务,但有一些也是我们需要非常留意的,特别是内存校验失败、数据文件校验失败相关的信息,这种一般也是一些语句在操作时出现内存泄露或者写溢出等导致,我们需要结合数据库异常时生成的 core 文件进行分析,才能最终确认问题的症结。这种情况下导致的进程中止,**我们需要检查数据库运行日志,搜索 halt 相关的内容 **,在 halt 内容附近会记录 halt 的详细原因,比如授权过期、文件不完整、内存被污染等。最常见的是 OOM KILL,

道友 4609

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

达梦数据库查看当前执行的查询并杀死session

查看 select * from v$sessions where state = ‘ACTIVE’; call sp_close_session(140621539969704); call sp_close_session(140622614317128); call sp_close_session(140621854887848);

皓月如我的专栏 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

达梦数据库使用常见错误及解决方案(MySQL)

若不想修改 SQL 语句,可以通过以下方法解决: 方法 1:修改 dm.ini 的 compatible_mode 参数为 4,来兼容 MySQL 语法,修改参数后需要重启数据库服务。方法 2: 非 mysql 兼容模式下(即 COMPATIBLE_MODE 不等于 4),修改 GROUP_OPT_FLAG(动态会话级)参数包含 1 取值,即支持查询项不是 GROUP BY 表达式。

evalsys的博客 1万+

达梦数据库单实例数据库故障恢复

一.文件损坏 1.undo日志损坏 1)优先选择“备份+归档”恢复,从实例日志获取故障时间; 2)无备份归档情况下,选择跳过ROLL.DBF启动数据库临时启动数据库(危险操作,可能破 坏事务的原子性) 修改dm.ini参数PSEG_RECV=0 2.redo日志损坏 1)优先选择“备份+归档”恢复,从实例日志获取故障时间; 2)无备份归档的情况下,可以选择替换redo日志临时...

qq_53070413的博客 1049

达梦主备集群故障模拟

ps -ef|grep dmserver kill -9 杀死后等待一段时间,发现数据库进程又有了,说明守护进程将DM1自动拉起,但是由于监视器是 关闭状态,因此主备库不会切换,DM1仍然为主库。从监视器可以看见DM2主库状态为ERROR状态,且由于守护进程也被杀死,因此DM2无法启动 自动接管后,DM1又变为了主库,可供正常使用。监视器可以看见如下信息,自动接管,将DM1启动,并将原来的备库DM2切换为主库,切换后正常运行。监视器可以看见,DM2实例不会被自动拉起,因为DM2的守护进程被杀死。

qq_56170987的博客 804

DM数据事务管理

DM数据事务管理

xiaoke_2013的博客 1589

【技术实操】银河高级服务器操作系统实例分享,达梦数据库服务器 oom 问题分析

【技术实操】银河高级服务器操作系统实例分享,达梦数据库服务器 oom 问题分析。

银河麒麟操作系统的博客 1541

达梦运维初期常见错误

环境描述:操作系统:银河麒麟10(kylin-v10-sp3)达梦数据库版本:dm8更多常见问题请参考官方文档。

weixin_52513368的博客 2397

达梦:内存相关参数

需要注意的是,以上推荐值仅为参考,实际设置时需要根据数据库的具体情况、服务器的硬件配置和业务需求进行综合考虑和调整。在调整参数后,建议进行性能测试,观察数据库的性能变化,以确保参数设置的合理性。

喝醉酒的小白 3941
上一篇: 一次达梦数据库宕机的分析过程
下一篇: 聊聊KingbaseES的可观测性能力加强
DBAIOps社区
博客等级 码龄3年 970粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值