守护进程“独辟蹊径”

news2024/9/22 10:04:44

守护进程“独辟蹊径”

  • 一、前言
  • 二、实际运用
    • 2.1 知识介绍
    • 2.2 单机库场景应用
      • 2.2.1 配置dmwatcher.ini
      • 2.2.2 注册后台守护服务
      • 2.2.3 配置dmmal.ini
      • 2.2.4 配置归档和守护OGUID
      • 2.2.5 开启mal
      • 2.2.6 启动守护
      • 2.2.7 测试dmserver异常退出
  • 三、总结

DM技术交流QQ群:940124259

一、前言

面对24小时不间断的业务系统,如遇到数据库进程异常退出(某个特殊bug触发)或OOM killer,是否能快速自动恢复服务?为此给我们带来了一些思考,DM8数据库是否有像MySQL数据库的守护进程mysql_safe进程保护机制?只能自己写脚本实时监测数据库状态和进程是否异常,便立即处理?
答案:达梦数据库有提供类似于mysql_safe的数据守护机制,因此完全没必要费心思自己编写脚本。


二、实际运用

2.1 知识介绍

达梦数据库提供一种数据守护集群的技术,利用dmwatcher守护进程实时监测数据库状态和进程,能够自动拉起dmserver进程并重新打开数据库,继续对外提供服务。虽然数据守护主要运用于数据库守护集群,但它也可以变型运用于单机数据库,为单机库提供实例保护和自我恢复功能。

守护进程核心参数说明dmwatcher.ini
在这里插入图片描述

2.2 单机库场景应用

数据库版本:1-2-192-2023.05.17-190669-20033-ENT
数据守护版本:v4.0

2.2.1 配置dmwatcher.ini

[LOCAL_DW_DMLOG]     # 守护组标识名称(个人习惯:LOCAL_DW_实例名),不超过16个字符即可。
DW_MODE=MANUAL       # 手工模式(单机库)
DW_TYPE=LOCAL        # 本地守护(单机库)
INST_ERROR_TIME=10   # 实例故障认定时间阀值
INST_OGUID=20231230  # 目标实例的守护唯一标识
INST_INI=/dmdata/DMLOG/dm.ini   # 数据库实例dm.ini路径
INST_STARTUP_CMD=/opt/dmdbms/bin/dmserver  # 自拉起命令或服务脚本
INST_AUTO_RESTART=1   # 自动拉起开关     

将dmwatcher.ini放在config_path路径下
在这里插入图片描述
在这里插入图片描述

2.2.2 注册后台守护服务

注意:root账户执行脚本注册。注册脚本位于数据库软件的安装主目录script下。
/opt/dmdbms/script/root/dm_service_installer.sh -t watcher_ini /dmdata/DMLOG/dmwatcher.ini -p DMLOG

systemctl list-unit-files |grep DmW

在这里插入图片描述

2.2.3 配置dmmal.ini

配置文件统一存放于config_path路径。config_path查看方法见2.2.1

MAL_CHECK_INTERVAL = 5        # 链路检测间隔时间,单位秒。 
MAL_CONN_FAIL_INTERVAL = 5    # 链路连接异常认定时长,单位秒。

[MAL_INST0]
mal_inst_name=DMLOG           # 实例名,必须于dm.ini文件中参数instance_name取值相同。
mal_inst_host=192.168.1.120   # 对外提供数据库服务的实例地址。
mal_inst_port=5236            # 对外提供数据库服务的实例端口。
mal_inst_dw_port=7236         # 守护进程监测本地实例的监听端口,故障认定、状态检测
mal_host=192.168.1.120        # 内部链路监听地址。
mal_port=8236                 # 内部链路监听端口。
mal_dw_port=9236              # 本地守护进程监听端口,远程守护/监听器相互之间通讯端口

在这里插入图片描述

2.2.4 配置归档和守护OGUID

注意:
1)如果数据库已经开启归档,可省略本步骤。
2)归档空间上限space_limit设定根据实际情况。
3)如果不想因开启归档占用磁盘空间,可以忽略alter database add archivelog 步骤,它会产生一个大小为0的dmarch.ini配置文件(空内容),则以后数据库是不会实际产生任何归档日志的输出,但归档的开关对于实例守护是关键步骤,动作必做。

比如:我的测试环境单机库dmarch.ini
在这里插入图片描述

-- 配置归档和OGUID
SQL> alter database mount ;
SQL> SP_SET_OGUID(20231230);
SQL> alter database add archivelog 'type=local, dest=/dmdata/DMLOG/dmarch,file_size=128, space_limit=10240';
SQL> alter database archivelog ;
SQL> alter database open ;

确认查看数据库是否开启归档,两种方法
1)select arch_mode from v$database;
2)show parameter arch_ini

在这里插入图片描述

2.2.5 开启mal

通常情况下,单机库是没开启mal内部链路。

-- 修改此静态参数后,重启数据库才能生效
SQL> ALTER SYSTEM SET 'MAL_INI' = 1 SPFILE;
SQL> SELECT SF_GET_PARA_VALUE(1,'MAL_INI'), INSTANCE_NAME, OGUID FROM V$INSTANCE;

su - dmdba
DmServiceDMLOG restart

2.2.6 启动守护

su - dmdba
DmWatcherSerivceDMLOG start
ps -ef | grep dmw

2.2.7 测试dmserver异常退出

通过kill模拟dmserver异常故障,dmwatcher守护进程会自动拉起dmserver服务。

在这里插入图片描述

在这里插入图片描述


三、总结

  • 1)达梦的数据守护集群分不同时期的版本,现最常用的是数据守护4.0,不同版本的配置细节则不同,请根据实际版本正确配置。
  • 2)被守护数据库实例oguid和守护进程配置的oguid必须一致。
  • 3)本环境的测试版本数据地守护4.0,必须开启归档模式(满足归档开启就行【可能未具体配置归档参数】)和MAL链路(4个端口配置不可缺少【mal_inst_port/mal_inst_dw_port/mal_port/mal_dw_port】),这两个配置是守护的前提条件。
  • 4)对于数据库实例的故障认定时长(inst_error_time/mal_conn_fail_interval),根据自己的实际容忍时长而定,一般5秒左右足够。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1353962.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

alibabaCloud学习笔记01(小滴课堂)

微服务架构常见的核心组件 讲解业务微服务架构常见解决方案 讲解AlibabaCloud核心组件介绍 创建数据库。 建表: 添加数据: 再建个用户库: 建表: 插入数据: 创建订单库: 建表: 创建项目&#x…

【ikbp】数据可视化DataV

天天查询一些数据,希望来一个托拉拽的展示,部署体验一下可视化大屏 快速搭建快速查询实时更新简单易用 启动服务 数据可视化 静态查询 配置数据 过滤数据 分享

目标检测-One Stage-RetinaNet

文章目录 前言一、RetinaNet的网络结构和流程二、RetinaNet的创新点Balanced Cross EntropyFocal Loss 总结 前言 根据前文目标检测-One Stage-YOLOv2可以看出YOLOv2的速度和精度都有相当程度的提升,但是One Stage目标检测模型仍存在一个很大的问题: 前…

计算机组成原理-总线操作和定时(同步定时方式 异步定时方式 半同步通信 分离式通信)

文章目录 总览总线传输的四个阶段同步定时方式读命令小结 异步定时方式半同步通信分离式通信小结 总览 总线传输的四个阶段 同步定时方式 读命令 总线传输分为多个时钟周期 首先CPU在T1阶段发出地址信息,此时地址线信号改变 CPU在T2阶段发出读命令,此时…

【Fastadmin】系统配置自定义键值组件

目录 1.修改config表的extend字段为text类型,否则会出现长度不足报错 2.添加配置 3.参考代码 图1代码: 图2代码: 图3代码: html部分: js部分:assets/js/general/config.js 参考文档: FastAdmin是一…

循环与基础函数

循环与函数 1.循环的三种方式2.循环的中断与空语句3.函数的定义与使用4.参数的作用域5.指针6.总结 1.循环的三种方式 我们最熟悉的循环为for和while,这两种循环方式在Python系列介绍过。在C中,循环的基本逻辑同Python是类似的。c中while循环的语法如下&…

词嵌入位置编码的实现(基于pytorch)

背景介绍 在transformers架构当中,对于词向量的输入需要加上原本词对应的位置信息,作为输入到模型中训练的input,那具体的位置编码如何实现呢?本篇博客就跟大家一起分享一下对应的步骤 位置编码的公式 对于词向量的位置编码的方…

C++上位软件通过LibModbus开源库和西门子S7-1200/S7-1500/S7-200 PLC进行ModbusTcp 和ModbusRTU 通信

前言 一直以来上位软件比如C等和西门子等其他品牌PLC之间的数据交换都是大家比较头疼的问题,尤其是C上位软件程序员。传统的方法一般有OPC、Socket 等,直到LibModbus 开源库出现后这种途径对程序袁来说又有了新的选择。 Modbus简介 Modbus特点 1 &#…

Navicat、Microsoft SQL Server Management Studio设置ID自增

一、Navicat中mysql数据库设置Id自增 (1)第一步 (2)第二步 二、Microsoft SQL Server Management Studio中Sqlservice数据库Id自增 (1)第一步 (2)第二步 (3&#xff09…

RuoYi-Cloud-Plus使用minio进行文件上传图片后无法预览解决_修改minio配置minio桶权限---SpringCloud工作笔记198

在文件管理的位置,发现刚刚上传的图片文件,会显示 预览图片失败 后来经过多方查看,发现是minio的配置的问题 可以从这里: 可以看到首先登录RuoYi-Cloud-Plus系统然后,打开文件管理页面可以看到,当上传了图片文件以后 显示文件展示中,文件预览失败,那么这个时候,去修改minio的配…

element中Table表格控件实现单选功能、多选功能、两种分页方式

目录 1、Table表格控件实现单选功能2、Table控件和Pagination控件实现多选和两种分页方式方法一&#xff1a;使用slice方法方法二&#xff1a;多次调用接口 1、Table表格控件实现单选功能 <template><div><!-- highlight-current-row 是否要高亮当前行 -->…

IMU用于无人机故障诊断

最近&#xff0c;来自韩国的研究团队通过开发以IMU为中心的数据驱动诊断方法&#xff0c;旨在多旋翼飞行器可以自我评估其性能&#xff0c;即时识别和解决推进故障。该方法从单纯的常规目视检查跃升为复杂的诊断细微差别&#xff0c;标志着无人机维护的范式转变。 与依赖额外传…

Elasticsearch:如何使用 Elasticsearch 进行排序

虽然你在唱这首歌时可能会想象圣诞老人&#xff0c;但欧洲民间传说&#xff0c;尤其是阿尔卑斯地区的民间传说&#xff0c;有两个传奇人物圣尼古拉斯和坎普斯。 象征着慷慨和善良的圣尼古拉斯&#xff0c;在 12 月 6 日 为乖巧的孩子们带来礼物和欢乐&#xff01; 相比之下&…

ROS 传感器—相机的使用

在ROS中&#xff0c;相机作为一种重要的传感器设备被广泛应用于机器人视觉、导航定位、目标检测与识别等多种场景。 ROS提供了一系列工具和接口来支持不同类型的相机&#xff0c;包括USB摄像头、GigE Vision相机、FireWire相机以及深度相机&#xff08;如Kinect或Intel RealSe…

gRCP - 面向未来的第二代 RPC 技术,解析 HTTP2.0 和 Protobuf

目录 一、gRCP - 面向未来的第二代 RPC 技术 1.1、gRPC 简介 1.1.1、gRPC 是个啥&#xff1f; 1.1.2、gRPC 核心设计思路 1.1.3、gRPC 和 ThriftRPC 区别 1.1.4、为什么使用 gRPC&#xff1f;&#xff08;好处&#xff09; 1.2、HTTP2.0 协议 1.2.1、回顾 HTTP1.0 和 H…

LeetCode 2807. 在链表中插入最大公约数

给你一个链表的头 head &#xff0c;每个结点包含一个整数值。 在相邻结点之间&#xff0c;请你插入一个新的结点&#xff0c;结点值为这两个相邻结点值的 最大公约数 。 请你返回插入之后的链表。 两个数的 最大公约数 是可以被两个数字整除的最大正整数。 示例 1&#xf…

高防ip适合防御网站和游戏类的攻击吗?

​  作为站长&#xff0c;要学会并承受得住网站外来攻击的压力&#xff0c;尤其是所属为 DDoS 攻击高发行业的网站类业务及游戏行业&#xff0c;是很容易被竞争对手或者一些伪黑客爱好者盯上的。 加上&#xff0c;有些站长并没有提前了解&#xff0c;就盲目进军了这两个行业&…

imgaug库指南(一):从入门到精通的【图像增强】之旅

文章目录 引言imgaug简介安装和导入imgaug代码示例imgaug的强大之处和用途小结结尾 引言 在深度学习和计算机视觉的世界里&#xff0c;数据是模型训练的基石&#xff0c;其质量与数量直接影响着模型的性能。然而&#xff0c;获取大量高质量的标注数据往往需要耗费大量的时间和…

关于“Python”的核心知识点整理大全59

目录 19.3.2 将数据关联到用户 1. 修改模型Topic models.py 2. 确定当前有哪些用户 3. 迁移数据库 注意 19.3.3 只允许用户访问自己的主题 views.py 19.3.4 保护用户的主题 views.py views.py 19.3.6 将新主题关联到当前用户 views.py 往期快速传送门&#x1f44…

鸿鹄工程项目管理系统源码:Spring Boot带来的快速开发与部署体验

随着企业规模的不断扩大和业务的快速发展&#xff0c;传统的工程项目管理方式已经无法满足现代企业的需求。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性&#xff0c;企业需要借助先进的数字化技术进行转型。本文将介绍一款采用Spring CloudSpring BootMybat…