news 2026/8/30 20:03:44

达梦DW主备环境搭建

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
达梦DW主备环境搭建


一、搭建环境
1、数据准备
通过备份恢复,准备数据环境

2、配置主库 GRP1_RT_01(dmmal、dmwatch、dmmonitor等配置文件手动建立)

2.1 配置 dm.ini

##实例名,建议使用“组名_守护环境_序号”的命名方式,总长度不能超过16INSTANCE_NAME = GRP1_RT_01 PORT_NUM = 32141##数据库实例监听端口DW_INACTIVE_INTERVAL = 60##接收守护进程消息超时时间ALTER_MODE_STATUS = 0##不允许手工方式修改实例模式/状态/OGUIDENABLE_OFFLINE_TS = 2##不允许备库OFFLINE表空间MAL_INI = 1##打开MAL系统ARCH_INI = 1##打开归档配置RLOG_SEND_APPLY_MON = 64##统计最近64次的日志发送信息

2.2 配置 dmmal.ini

MAL_CHECK_INTERVAL = 5##MAL链路检测时间间隔MAL_CONN_FAIL_INTERVAL = 5##判定MAL链路断开的时间[MAL_INST1]MAL_INST_NAME = GRP1_RT_01##实例名,和dm.ini中的INSTANCE_NAME一致MAL_HOST = 192.168.0.141##MAL系统监听TCP连接的IP地址MAL_PORT = 61141##MAL系统监听TCP连接的端口MAL_INST_HOST = 192.168.1.131##实例的对外服务IP地址MAL_INST_PORT = 32141##实例的对外服务端口,和dm.ini中的PORT_NUM一致MAL_DW_PORT = 52141##实例本地的守护进程监听TCP连接的端口MAL_INST_DW_PORT = 33141##实例监听守护进程TCP连接的端口[MAL_INST2]MAL_INST_NAME = GRP1_RT_02 MAL_HOST = 192.168.0.142 MAL_PORT = 61142 MAL_INST_HOST = 192.168.1.132 MAL_INST_PORT = 32142 MAL_DW_PORT = 52142 MAL_INST_DW_PORT = 33142

2.3 配置 dmarch.ini

[ARCHIVE_REALTIME]ARCH_TYPE = REALTIME##实时归档类型ARCH_DEST = GRP1_RT_02##实时归档目标实例名[ARCHIVE_LOCAL1]ARCH_TYPE = LOCAL##本地归档类型ARCH_DEST =/dm/data/DAMENG/arch##本地归档文件存放路径ARCH_FILE_SIZE = 128##单位Mb,本地单个归档文件最大值ARCH_SPACE_LIMIT = 0##单位Mb,0表示无限制,范围1024~2147483647M

2.4 配置 dmwatcher.ini

[GRP1]DW_TYPE = GLOBAL##全局守护类型DW_MODE = AUTO##自动切换模式DW_ERROR_TIME = 10##远程守护进程故障认定时间INST_RECOVER_TIME = 60##主库守护进程启动恢复的间隔时间INST_ERROR_TIME = 10##本地实例故障认定时间INST_OGUID = 453331##守护系统唯一OGUID值INST_INI =/dm/data/DAMENG/dm.ini##dm.ini配置文件路径INST_AUTO_RESTART = 1##打开实例的自动启动功能INST_STARTUP_CMD =/dm/bin/dmserver##命令行方式启动RLOG_SEND_THRESHOLD = 0##指定主库发送日志到备库的时间阈值,默认关闭RLOG_APPLY_THRESHOLD = 0##指定备库重演日志的时间阈值,默认关闭

2.5、启动主库

以 Mount 方式启动主库

./dmserver/dm/data/DAMENG/dm.inimount

注意事项:一定要以Mount方式启动数据库实例,否则系统启动时会重构回滚表空间,生成Redo日志;并且,启动后应用可能连接到数据库实例进行操作,破坏主备库的数据一致性。数据守护配置结束后,守护进程会自动Open数据库。

2.6、设置 OGUID

启动命令行工具 DIsql,登录主库设置 OGUID 值。

SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);sp_set_oguid(453331);SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);

注意:系统通过OGUID值确定一个守护进程组,由用户保证OGUID值的唯一性,并确保数据守护系统中,数据库、守护进程和监视器配置相同的OGUID值。

2.7、修改数据库模式

启动命令行工具 DIsql,登录主库修改数据库为 PRIMARY 模式

SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);ALTER DATABASE PRIMARY;SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);

3、配置备库 GRP1_RT_02

3.1 配置 dm.ini

在 DW_S1 机器上配置备库的实例名为 GRP1_RT_02,dm.ini 参数修改如下:

##实例名,建议使用“组名_守护环境_序号”的命名方式,总长度不能超过16INSTANCE_NAME = GRP1_RT_02 PORT_NUM = 32142##数据库实例监听端口DW_INACTIVE_INTERVAL = 60##接收守护进程消息超时时间ALTER_MODE_STATUS = 0##不允许手工方式修改实例模式/状态/OGUIDENABLE_OFFLINE_TS = 2##不允许备库OFFLINE表空间MAL_INI = 1##打开MAL系统ARCH_INI = 1##打开归档配置RLOG_SEND_APPLY_MON = 64##统计最近64次的日志重演信息

3.2 配置 dmmal.ini

配置 MAL 系统,各主备库的 dmmal.ini 配置必须完全一致,MAL_HOST 使用内部网络 IP,MAL_PORT 与 dm.ini 中 PORT_NUM 使用不同的端口值,MAL_DW_PORT 是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口,配置如下:

MAL_CHECK_INTERVAL = 5##MAL链路检测时间间隔MAL_CONN_FAIL_INTERVAL = 5##判定MAL链路断开的时间[MAL_INST1]MAL_INST_NAME = GRP1_RT_01##实例名,和dm.ini中的INSTANCE_NAME一致MAL_HOST = 192.168.0.141##MAL系统监听TCP连接的IP地址MAL_PORT = 61141##MAL系统监听TCP连接的端口MAL_INST_HOST = 192.168.1.131##实例的对外服务IP地址MAL_INST_PORT = 32141##实例的对外服务端口,和dm.ini中的PORT_NUM一致MAL_DW_PORT = 52141##实例对应的守护进程监听TCP连接的端口MAL_INST_DW_PORT = 33141##实例监听守护进程TCP连接的端口[MAL_INST2]MAL_INST_NAME = GRP1_RT_02 MAL_HOST = 192.168.0.142 MAL_PORT = 61142 MAL_INST_HOST = 192.168.1.132 MAL_INST_PORT = 32142 MAL_DW_PORT = 52142 MAL_INST_DW_PORT = 33142

3.3 配置 dmarch.ini

[ARCHIVE_REALTIME]ARCH_TYPE = REALTIME##实时归档类型ARCH_DEST = GRP1_RT_01##实时归档目标实例名[ARCHIVE_LOCAL1]ARCH_TYPE = LOCAL##本地归档类型ARCH_DEST =/dm/data/DAMENG/arch##本地归档文件路径ARCH_FILE_SIZE = 128##单位Mb,本地单个归档文件最大值ARCH_SPACE_LIMIT = 0##单位Mb,0表示无限制,范围1024~2147483647M

3.4 修改 dmwatcher.ini 配置守护进程,配置为全局守护类型,使用自动切换模式。

[GRP1]DW_TYPE = GLOBAL##全局守护类型DW_MODE = AUTO##自动切换模式DW_ERROR_TIME = 10##远程守护进程故障认定时间INST_RECOVER_TIME = 60##主库守护进程启动恢复的间隔时间INST_ERROR_TIME = 10##本地实例故障认定时间INST_OGUID = 453331##守护系统唯一OGUID值INST_INI =/dm/data/DAMENG/dm.ini##dm.ini配置文件路径INST_AUTO_RESTART = 1##打开实例的自动启动功能INST_STARTUP_CMD =/dm/bin/dmserver##命令行方式启动RLOG_APPLY_THRESHOLD = 0##指定备库重演日志的时间阈值,默认关闭

3.5 启动备库

以 Mount 方式启动备库

./dmserver/dm/data/DAMENG/dm.inimount

3.6 设置 OGUID

启动命令行工具 DIsql,登录备库设置 OGUID 值为 453331

SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);sp_set_oguid(453331);SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);

3.7 修改数据库模式

如果当前数据库不是 Normal 模式,需要先修改 dm.ini 中 ALTER_MODE_STATUS 值为 1,允许修改数据库模式,修改 STANDBY 模式成功后再改回为 0。如果是 Normal 模式,请忽略下面的第 1 步和第 3 步。

SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);//第1步 alter database standby;//第2步 SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);//第3步

4、配置监视器

4.1 配置单实例监视器

修改 dmmonitor.ini 配置确认监视器,其中 MON_DW_IP 中的 IP 和 PORT 和 dmmal.ini 中的 MAL_HOST 和 MAL_DW_PORT 配置项保持一致。

MON_DW_CONFIRM = 1##确认监视器模式MON_LOG_PATH =/dm/data/log##监视器日志文件存放路径MON_LOG_INTERVAL = 60##每隔60s定时记录系统信息到日志文件MON_LOG_FILE_SIZE = 32##每个日志文件最大32MMON_LOG_SPACE_LIMIT = 0##不限定日志文件总占用空间[GRP1]MON_INST_OGUID = 453331##组GRP1的唯一OGUID值##以下配置为监视器到组GRP1的守护进程的连接信息,以“IP:PORT”的形式配置##IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORTMON_DW_IP = 192.168.0.141:52141 MON_DW_IP = 192.168.0.142:52142

4.2 配置多实例监视器

各实例的 MON_ID 应与某一个实例配置项中的 MON_INST_ID 相同,各实例的 MON_NAME 与对应的监视器实例名相同。dmmonitor.ini 配置文件中的内容如下:

MON_LOG_PATH =/dm/data/log MON_LOG_INTERVAL = 60 MON_LOG_FILE_SIZE = 32 MON_LOG_SPACE_LIMIT = 0 MON_DW_CONFIRM = 1 MON_INST_NUM = 3#实例总个数MON_HB_INTERVAL = 60#通信心跳校验间隔MON_BRO_INTERVAL = 100#raft协议中实例通信心跳间隔MON_VOTE_INTERVAL = 100#raft协议中基础投票间隔MON_ID = 1#当前监视器在监视器系统中的IDMON_MID = 45614#当前监视器系统的唯一标识MON_NAME = MON1#监视器名[GRP1]MON_INST_OGUID = 453331 MON_DW_IP = 192.168.0.141:52141 MON_DW_IP = 192.168.0.142:52142[MON1]#监视器实例信息MON_HOST = 192.168.0.143#MON1监视器所在IPMON_PORT = 8339#MON1监视器监听端口MON_INST_ID = 1#监视器实例在监视器系统中的IDMON_VOTE_PRIORITY = 3#监视器实例成为LEADER的优先级[MON2]MON_HOST = 192.168.0.144#MON2监视器所在IPMON_PORT = 8340#MON2监视器监听端口MON_INST_ID = 2#监视器实例在监视器系统中的IDMON_VOTE_PRIORITY = 2#监视器实例成为LEADER的优先级[MON3]MON_HOST = 192.168.0.145#MON3监视器所在IPMON_PORT = 8341#MON3监视器监听端口MON_INST_ID = 3#监视器实例在监视器系统中的IDMON_VOTE_PRIORITY = 1#监视器实例成为LEADER的优先级

5、启动守护进程

启动各个主备库上的守护进程:

./dmwatcher/dm/data/DAMENG/dmwatcher.ini

守护进程启动后,进入 Startup 状态,此时实例都处于 Mount 状态。守护进程开始广播自身和其监控实例的状态信息,结合自身信息和远程守护进程的广播信息,守护进程将本地实例 Open,并切换为 Open 状态。

6、启动监视器

启动监视器命令:

./dmmonitor/dm/data/dmmonitor.ini

执行show,查看主备状态信息

二、主备常用操作
1、主备切换操作

1.1、登录执行choose switchover GRP1

1.2、切换switchover GRP1.GRP1_RT_02

2、主备环境启停顺序操作

以下为停止环境顺序,启动顺序相反

1) 先关闭确认监视器,防止自动接管

2)关闭主库守护进程

3)关闭备库守护进程

DM相关更多技术分享可查看https://eco.dameng.com网址

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/30 20:02:25

语音转文本模型落地实时语音交互:从原理到工程实践

在做实时语音交互类项目时,最让人头疼的问题通常不是“录音”,而是“录音明明很清楚,转成文字之后却乱七八糟”。模型选型、音频格式、流式传输、延迟控制、断句策略……任何一个环节出了问题,整个交互体验都会崩掉。近期 Gemini …

作者头像 李华
网站建设 2026/8/30 20:02:04

Windows平台Poppler预编译包:开箱即用的PDF处理利器部署与实战指南

简介:本资源是为Windows平台开发者准备的Poppler 24.07.0预编译二进制包,适用于PDF解析、渲染与文本提取等C/C项目集成,尤其适合需快速调用pdftocairo、pdftoppm、pdftotext等命令行工具或链接libpoppler库的中高级开发场景。压缩包共480个文…

作者头像 李华
网站建设 2026/8/30 20:00:44

Stable Diffusion模型服务化:基于BentoDiffusion的生产级部署实践

在 AI 图像生成落地时,Stable Diffusion 这类模型真正的瓶颈往往不在模型效果,而在交付链路。模型跑在 notebook 里能出图,但要变成一个可以被业务系统调用、支持并发、能上 GPU 集群的 HTTP 服务,还需要解决模型加载、依赖隔离、…

作者头像 李华
网站建设 2026/8/30 19:59:21

移动端单词查找与字母重排工具:词典组织、算法与性能优化实战

单词查找和字母重排(word-finder / anagram solver)是一个看起来特别小的功能,但对经常玩填字游戏、Scrabble、Wordle 这类字母游戏的人来说,它是真正的高频工具。这个项目把“输入一组字母—找出所有能组成的单词—按词长或得分排…

作者头像 李华
网站建设 2026/8/30 19:52:17

数学建模实战方法论:从题干解构到LaTeX-代码-论文闭环

简介:本资源是面向2025年山东省数学建模竞赛G题参赛团队的全流程解决方案,专为冲刺“妈妈杯”高奖项、急需高质量参考与快速落地的本科生队伍设计。内容覆盖解题思路解析、双语言(Python/MATLAB)可运行代码、规范论文(…

作者头像 李华
网站建设 2026/8/30 19:47:43

大模型应用演示翻车?从工程准备到稳定交付的避坑指南

大多数写过 AI 应用的人,都见过那个安静到让人发慌的瞬间。会议室里,Agent 应该调用工具完成下单,屏幕上却不断弹出同一个错误;生成式搜索应该给出答案,结果输出了一段和问题完全无关的文本。演示者一边点鼠标一边解释…

作者头像 李华