Seal^_^头像
关注
DM 数据库集群数据守护集群:构建高可用灾备架构的实战指南封面图

DM 数据库集群数据守护集群:构建高可用灾备架构的实战指南

一、DM 数据库集群数据守护集群概述

1.1 什么是 DM 数据库集群数据守护集群

DM 数据库集群数据守护集群 (DM Data Watch) 是达梦数据库为了保证数据安全性和业务连续性而提供的一种高可用解决方案。它通过将主库的日志实时同步到备库,实现数据的冗余备份。当主库发生故障时,数据守护集群能够自动将备库切换为主库,继续对外提供服务,从而最大程度降低停机时间。

1.2 数据守护集群的核心组件

DM 数据库集群数据守护集群主要由四个核心组件构成,各司其职:

  1. (主库 Primary) 负责处理业务系统的读写请求,并生成归档日志发送给备库。
  2. (备库 Standby) 接收主库发送的归档日志并重演,保持与主库数据的一致性。备库通常处于 MOUNT 或 OPEN 状态提供只读服务。
  3. (守护进程 dmwatcher) 部署在数据库节点上,负责监控主备库的运行状态。当检测到故障时,dmwatcher 会自动触发故障切换流程。
  4. (监视器 dmmonitor) 部署在独立节点上,用于全局监控集群状态,接收故障切换通知,并支持手动执行集群管理命令。

1.3 数据守护集群的工作原理

DM 数据库集群数据守护集群的核心在于日志同步与状态监控。主库在执行事务后,通过 MAL 系统将 Redo 日志发送给备库;备库接收日志后进行重演,实现数据同步。守护进程持续收集各节点状态,监视器汇总全局信息。

发送 Redo 日志日志重演同步监控状态监控状态全局监控与切换控制发生故障自动选举与切换提升为新主库

主库 Primary

备库 Standby

守护进程 dmwatcher

监视器 dmmonitor

业务重连

二、DM 数据库集群数据守护集群部署准备

2.1 环境规划与架构设计

在部署 DM 数据库集群数据守护集群前,需进行严密的网络与节点规划。

  1. 节点规划:主库节点 (IP 192.168.1.10,主机名 dm1),备库节点 (IP 192.168.1.11,主机名 dm2),监视器节点 (IP 192.168.1.12,主机名 dm3)。
  2. 端口规划:数据库对外服务端口 5236,MAL 通信端口 5237,守护进程通信端口 5238。
  3. 存储规划:主备库各自分配独立的存储,确保 I/O 性能。

2.2 系统参数与依赖配置

为确保 DM 数据库集群数据守护集群稳定运行,需优化操作系统内核参数。

  1. 修改 /etc/security/limits.conf 文件,提升用户进程和文件句柄限制:
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft nproc 65536
dmdba hard nproc 65536
  1. 关闭防火墙与 SELinux,避免端口通信被拦截:
systemctl disable firewalld --now
setenforce 0

2.3 DM 数据库软件安装

在主库、备库和监视器节点上安装达梦数据库软件。

  1. 创建安装用户和用户组:
groupadd dinstall
useradd -g dinstall -m -d /home/dmdba dmdba
  1. 解压安装镜像并挂载,切换至 dmdba 用户执行静默安装:
su - dmdba
./DMInstall.bin -i
  1. 安装完成后,按照提示使用 root 用户执行脚本初始化环境变量。

三、DM 数据库集群数据守护集群配置实战

3.1 主库配置与备份还原

主库配置是 DM 数据库集群数据守护集群搭建的第一步,需完成实例初始化与参数调整。

  1. 使用 dminit 工具初始化主库实例:
./dminit PATH=/dmdata DB_NAME=DM instance_name=GRP1_RT_01 PORT_NUM=5236
  1. 修改主库 dm.ini 参数,启用 MAL 和归档功能:
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 1
ENABLE_OFFLINE_TS = 2
  1. 配置 dmmal.ini 文件,定义主备库的 MAL 通信链路:
[MAL_INST1]
MAL_INST_NAME = GRP1_RT_01
MAL_HOST = 192.168.1.10
MAL_PORT = 5237
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 192.168.1.11
MAL_PORT = 5237
  1. 启动主库至 MOUNT 状态,使用 dmbackup 工具进行全量在线备份,并将备份文件传输至备库节点。

3.2 备库与守护进程配置

备库需基于主库备份还原,并与主库保持参数一致。

  1. 在备库节点使用 dmrestore 工具恢复数据:
./dmrestore INI=/dmdata/DM/dm.ini FILE=/backup/db.bak
  1. 修改备库 dm.ini 文件,将 instance_name 修改为 GRP1_RT_02
  2. 配置备库的 dmarch.ini,设置实时归档目标为主库:
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_RT_01
  1. 在主备节点分别配置 dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_PORT = 5238
INST_OGUID = 453332
INST_INI = /dmdata/DM/dm.ini

3.3 监视器配置与集群启动验证

监视器配置与集群的有序启动是确保 DM 数据库集群数据守护集群生效的关键。

  1. 在监视器节点配置 dmmonitor.ini
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
MON_HOST = 192.168.1.12
MON_PORT = 5238
MON_OGUID = 453332
  1. 按照规范顺序启动集群服务:

(1) 以 MOUNT 方式启动主库,执行 SP_SET_OGUID(453332); 并切换到 OPEN 状态。

(2) 以 MOUNT 方式启动备库,执行 SP_SET_OGUID(453332); 并切换到 OPEN 状态。

(3) 启动主备节点的守护进程 dmwatcher。

(4) 启动监视器节点的 dmmonitor。

  1. 在监视器命令行中输入 show 命令,检查集群状态。当看到主库状态为 PRIMARY 且备库状态为 STANDBY,守护进程状态为 OPEN,说明 DM 数据库集群数据守护集群部署成功。

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/qq_41840843/article/details/163785280

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--