DM8在CentOS7搭建两节点实时主备集群
任务1. 在一台服务器上部署两个节点的实时主备集群2. 完成实时主备集群的配置与部署3. 进行同步测试4. 进行主备切换测试5. 模拟主机故障验证备机自动接管能力6. 恢复故障主机将其重新加入集群7.进行TPCC测试一、前期准备1.1 规划机器名IP地址库名实例名PORT_NUMMAL_INST_DW_PORTMAL_HOSTMAL_PORTMAL_DW_PORT主库192.168.200.254DAVEDAVE1523633141192.168.200.2546114152141备库192.168.201.47DAVEDAVE2523733142192.168.201.476114252142监视器192.168.201.471.2 安装DM8DM8在CentOS上的安装过程可参考这篇文章达梦数据库DM8——Centos7安装部署和基本操作-CSDN博客#安装路径 /home/dmdba/dmdbms1.3 路径准备# 创建数据目录和归档目录 mkdir -p /data/dmdata1 /data/dmdata2 /data/dmarch1 /data/dmarch2 /data/dmbackup /data/dmlog二、搭建实时集群2.1 初始化实例注意初始化实例的时候必须要设置SYSDBA和SYSAUDITOR的密码2.1.1主库初始化实例# 主库初始化实例命令 # PATH: 数据库文件存放路径 # DB_NAME: 数据库名称 # INSTANCE_NAME: 实例名称 # PORT_NUM: 数据库监听端口 # SYSDBA_PWD: SYSDBA用户密码 # SYSAUDITOR_PWD: SYSAUDITOR用户密码 ./dminit PATH/data/dmdata1 DB_NAMEDAVE INSTANCE_NAMEDAVE1 PORT_NUM5236 SYSDBA_PWDDameng123 SYSAUDITOR_PWDDameng1232.1.2 备库初始化实例# 备库初始化实例命令 # PATH: 数据库文件存放路径 # DB_NAME: 数据库名称 # INSTANCE_NAME: 实例名称 # PORT_NUM: 数据库监听端口与主库不同 # SYSDBA_PWD: SYSDBA用户密码 # SYSAUDITOR_PWD: SYSAUDITOR用户密码 ./dminit PATH/data/dmdata2 DB_NAMEDAVE INSTANCE_NAMEDAVE2 PORT_NUM5237 SYSDBA_PWDDameng123 SYSAUDITOR_PWDDameng1232.2 启动主库数据库使用dmserver 启动数据库在DM 数据库第一次必须正常启动完成初始化的动作# 启动主库数据库服务 # /data/dmdata1/DAVE/dm.ini: 主库配置文件路径 ./dmserver /data/dmdata1/DAVE/dm.ini2.3 设置主库为归档方式克隆一个窗口设置主库为归档方式。-- 设置数据库为归档模式 SQL alter database mount; -- 将数据库挂载到mount状态 SQL alter database archivelog; -- 启用归档模式 SQL alter database add archivelog DEST/data/dmarch1,TYPElocal,FILE_SIZE128,space_limit0; -- 添加本地归档配置 SQL alter database open; -- 打开数据库 SQL select arch_mode from v$database; -- 查询归档模式状态2.4 主库启动脱机备份CtrlC停止主库# 切换到dmdba用户 su - dmdba # 启动dmrman工具 ./dmrman # 执行脱机备份备份主库数据库 backup database /data/dmdata1/DAVE/dm.ini full backupset /data/dmbackup/DAVE_bak01;2.5 在备库恢复数据库# 在备库恢复数据库 restore database /data/dmdata2/DAVE/dm.ini from backupset /data/dmbackup/DAVE_bak01; -- 从备份集恢复数据库 recover database /data/dmdata2/DAVE/dm.ini from backupset /data/dmbackup/DAVE_bak01; -- 恢复数据库日志 recover database /data/dmdata2/DAVE/dm.ini update db_magic; -- 更新数据库魔数完成恢复2.6 修改配置参数2.6.1 修改主备库dm.ini# dm.ini 配置文件参数说明 INSTANCE_NAME DAVE1 # 实例名称主库为DAVE1备库为DAVE2 #INSTANCE_NAME DAVE2 # 备库实例名称注释掉主库的启用备库的 PORT_NUM 5236 # 数据库实例监听端口 ALTER_MODE_STATUS 0 # 不允许手工方式修改实例模式/状态 ENABLE_OFFLINE_TS 2 # 不允许备库OFFLINE表空间 MAL_INI 1 # 打开MALMessage Access Layer系统 ARCH_INI 1 # 打开归档配置2.6.2 修改主备库dmarch.ini2.6.2.1 修改主库dmarch.ini# 主库归档配置文件 dmarch.ini [ARCHIVE_REALTIME1] ARCH_TYPE REALTIME # 实时归档类型 ARCH_DEST DAVE2 # 归档目标为备库DAVE2 [ARCHIVE_LOCAL1] ARCH_TYPE LOCAL # 本地归档类型 ARCH_DEST /data/dmarch1 # 本地归档目录 ARCH_FILE_SIZE 2048 # 单个归档文件大小单位MB ARCH_SPACE_LIMIT 51200 # 归档空间限制单位MB2.6.2.2 修改备库dmarch.ini[ARCHIVE_REALTIME1] ARCH_TYPE REALTIME ARCH_DEST DAVE2 [ARCHIVE_LOCAL1] ARCH_TYPE LOCAL ARCH_DEST /data/dmarch1 ARCH_FILE_SIZE 2048 ARCH_SPACE_LIMIT 512002.6.3 修改主备库dmmal.ini主备库dmmal.ini一致vi /data/dmdata1/DAVE/dmmal.ini vi /data/dmdata2/DAVE/dmmal.iniMAL_CHECK_INTERVAL 10 MAL_CONN_FAIL_INTERVAL 10 [MAL_INST1] MAL_INST_NAME DAVE1 MAL_HOST 192.168.200.254 MAL_PORT 61141 MAL_INST_HOST 192.168.200.254 MAL_INST_PORT 5236 MAL_DW_PORT 52141 MAL_INST_DW_PORT 33141 [MAL_INST2] MAL_INST_NAME DAVE2 MAL_HOST 192.168.201.47 MAL_PORT 61142 MAL_INST_HOST 192.168.201.47 MAL_INST_PORT 5237 MAL_DW_PORT 52142 MAL_INST_DW_PORT 331422.6.4 修改主备库dmwatcher.ini2.6.4.1 修改主库dmwatcher.ini[GRP1] DW_TYPE GLOBAL DW_MODE AUTO DW_ERROR_TIME 10 INST_RECOVER_TIME 60 INST_ERROR_TIME 10 INST_OGUID 453331 INST_INI /data/dmdata1/DAVE/dm.ini INST_AUTO_RESTART 1 INST_STARTUP_CMD /home/dmdba/dmdbms/bin/dmserver RLOG_SEND_THRESHOLD 0 RLOG_APPLY_THRESHOLD 02.6.4.2 修改备库dmwatcher.ini[GRP1] DW_TYPE GLOBAL DW_MODE AUTO DW_ERROR_TIME 10 INST_RECOVER_TIME 60 INST_ERROR_TIME 10 INST_OGUID 453331 INST_INI /data/dmdata2/DAVE/dm.ini INST_AUTO_RESTART 1 INST_STARTUP_CMD /home/dmdba/dmdbms/bin/dmserver RLOG_SEND_THRESHOLD 0 RLOG_APPLY_THRESHOLD 02.6.5 修改监视器配置文件/data/dmmonitor.ini放在任意位置此处为 /data/dmmonitor.iniMON_DW_CONFIRM 1 MON_LOG_PATH /data/dmlog MON_LOG_INTERVAL 60 [GRP1] MON_INST_OGUID 453331 MON_DW_IP 192.168.200.18:52141 MON_DW_IP 192.168.201.90:521422.7 以mount方式启动主库和备库启动后另开终端进行其他命令的输入./dmserver /data/dmdata1/DAVE/dm.ini mount ./dmserver /data/dmdata2/DAVE/dm.ini mountchown -R dmdba:dmdba /data/dmarch1chmod -R 700 /data/dmarch12.8 设置OGUID2.8.1 主库设置OGUID改变数据库模式为primary模式./disql SYSDBA/Dameng123localhost:5236 SP_SET_OGUID(453331); ALTER DATABASE PRIMARY;2.8.2 备库设置OGUID改变数据库模式为standby模式./disql SYSDBA/Dameng123localhost:5237 SP_SET_OGUID(453331); ALTER DATABASE STANDBY;注意守护进程若开启则数据库状态不能手动修改了2.9 开启守护进程2.9.1 启动主库守护进程./dmwatcher /data/dmdata1/DAVE/dmwatcher.ini2.9.2 启动备库守护进程./dmwatcher /data/dmdata2/DAVE/dmwatcher.ini2.10 开启确认监视器另开一个终端开启确认监视器注意确认监视器可以起一个非确认监视器可以起多个由于我们在监视器配置文件里设置MON_DW_CONFIRM 1因此为确认监视器非确认监视器MON_DW_CONFIRM 0./dmmonitor /data/dmmonitor.ini三、结果测试3.1 同步测试主库基于系统内置视图SYSOBJECTS创建一张普通业务表t_objects自动复制所有数据与字段结构。然后统计表数据量./disql SYSDBA/Dameng123192.168.200.254:5236 SQL create table t_objects as select * from sysobjects; SQL select count(*) from t_objects;备库能查询到主库插入的数据./disql SYSDBA/Dameng123192.168.201.47:5237 SQL select count(*) from t_objects;3.2 主备库切换测试在监视器中输入如下命令将DAVE2切换为主库切换成功现在主库为DAVE23.3 模拟主机故障——现在主库为DAVE2ctrl C关停主库实例注意要用确认监视器进行观察如果用的不是确认监视器则会出现下面的情况注意如果确认监视器也没有观察到自动接管则有后台还有进程ps -ef|grep dmserver kill -9 pid把进程杀死后DAVE1成功接管成为主库注意只要DAVE2的守护进程没有关一旦检测到dmserver实例消失则会立刻重启数据库至mount模式因为我们的dmwatcher.ini配置INST_AUTO_RESTART 13.4 恢复故障主库加入集群——现在主库为DAVE1故障主库为DAVE2预先准备我们先停止DAVE2的守护进程CtrlC再停止残余的DAVE2实例重启实例重启守护进程然后观察监视器./dmwatcher /data/dmdata2/DAVE/dmwatcher.ini四、使用Benchmarksql进行TPCC测试4.1 准备BenchmarkSQL和JDK在达梦的知识库里面下载Benchmarksql5.0安装包将解压后的文件夹放到Linux的/home/TPCC文件夹下。由于我们下载的是Benchmarksql5.0所以需要安装V1.8以上的JDKtar -zxvf jdk-8u212-linux-x64.tar.gz -C /home/jdk/jdk1.8 vi /etc/profile #解压完成后配置环境变量export JAVA_HOME/home/jdk/jdk1.8/jdk1.8.0_212export PATH$JAVA_HOME/bin:$PATHexport CLASSPATH.:$JAVA_HOME/libsource /etc/profile java -version4.2 将dm8的jdbc驱动放到lib目录下cp /home/dmdba/dmdbms/drivers/jdbc/DmJdbcDriver8.jar /home/TPCC/benchmarksql-5.0/lib/4.3 初始化数据库并新建测试专门用户SQLCREATE TABLESPACE TB_BENCHMARKSQL DATAFILE TB_BENCHMARKSQL01.dbf SIZE 1024; SQLCREATE USER BENCHMARKSQL IDENTIFIED BY Dameng123 DEFAULT TABLESPACE TB_BENCHMARKSQL; SQLGRANT DBA TO BENCHMARKSQL;用户BENCHMARKSQL 密码Dameng1234.4 配置参数配置文件props.dm文件中必须配置的是1数据库链接信息2压测参数warehouses 被测仓库数数据规模terminals 并发数runMins 测试时间分钟注意terminals并发数不能大于 warehouses 仓库数量的十倍给集群配置服务名vi /etc/dm_svc.confTIME_ZONE(480)LANGUAGE(EN) # 自定义集群服务名填写所有主备节点地址GRP_DW(192.168.200.254:5236,192.168.201.47:5236)[GRP_DW]LOGIN_MODE(1) # 1仅连接主库压测主备切换场景必选SWITCH_TIME(3) # 节点遍历重试次数SWITCH_INTERVAL(500) # 探测间隔(ms)vi props.dm修改props.dm配置参数connjdbc:dm://GRP_DW?rwSeparate04.5 准备测试数据4.5.1 建表cd /home/TPCC/benchmarksql-5.0/run chmod ux *.sh ./runSQL.sh props.dm tableCreates #这里的tableCreates是在run目录下的sql.dm目录下的但不需要写路径会自动识别注意要看一下建表语句后面是否加了using partition group TPCC_GROUP by(s_w_id);这样的语法。因为partition group分区组是达梦 DPC 分布式集群专用语法。所以我们在这里用的话就会报错所以在执行建表语句要删除分区组语句我试了一下就把那些语句删掉就可以了。可以在linux里面用vi 进去删除。4.5.2 数据装载./runLoader.sh props.dm numWarehouses 10注意这里的仓库数与配置文件对应的参数值要一致4.5.3 执行测试#如果想要看测试日志的话就要 mkdir ./log ./runBenchmark.sh props.dm 21 | tee ./log/tpcc_run.log #如果不想看日志的话就直接执行 ./runBenchmark.sh props.dmtpmC代表每分钟内系统处理的新订单个数tpmTOTAL(TPS)代表每分钟内系统处理的事务总数Transaction Count事务总数参数关系如下tpmC ≈ tpmTOTAL * 45%Transaction Count tpmTOTAL * runMins后续可根据自己需求逐渐加大prod.dm配置文件中的并发度参数并进行主备集故障测试。如果还有其他问题欢迎到达梦社区来提问~社区地址https://eco.dameng.com

相关新闻

部署实战;Docker + AI Agent:让AI一键部署Spring Boot到服务器,从打包到上线只要一条指令

部署实战;Docker + AI Agent:让AI一键部署Spring Boot到服务器,从打包到上线只要一条指令

【部署实战】Docker AI Agent:让AI一键部署Spring Boot到服务器,从打包到上线只要一条指令 文章目录设置时区创建应用目录复制jar包创建非root用户运行健康检查JVM参数:限制堆内存、开启GC日志写在前面 写过Spring Boot的都懂——开发一时爽…

2026/7/26 23:45:44 阅读更多 →
MySQL - 理解 InnoDB 的 B+ 树索引

MySQL - 理解 InnoDB 的 B+ 树索引

这篇笔记想把两件事说清楚:索引的结构到底长什么样、什么场景下真的能用上。这两点想通了,“最左前缀”“回表”"覆盖索引"这些概念就不用死记,靠推理就能得出结论。 目录 为什么需要索引索引如何演化成 B 树聚簇索引与二级索引索…

2026/7/26 23:45:44 阅读更多 →
Unity高性能多实例RTSP/RTMP流媒体播放器架构与实现

Unity高性能多实例RTSP/RTMP流媒体播放器架构与实现

1. 项目概述:为什么Unity需要高性能流媒体播放器?在数字孪生、虚拟仿真、安防监控、在线教育乃至互动直播等领域,Unity引擎的应用边界早已超越了传统的游戏开发。一个越来越普遍的需求是:在Unity构建的3D场景中,实时接…

2026/7/26 23:45:44 阅读更多 →

最新新闻

用 Ace Data Cloud 把 AI 能力和 CSDN 技术内容营销串起来

用 Ace Data Cloud 把 AI 能力和 CSDN 技术内容营销串起来

如果你做过开发者产品、API 服务或者 AI 工具推广,大概率会遇到一个问题:内容写了不少,但真正能被开发者长期搜索到、反复阅读、并且带来转化的渠道并不多。 CSDN 仍然是中文开发者搜索技术问题时绕不开的平台。很多人不是为了“看广告”而来…

2026/7/27 0:08:59 阅读更多 →
审批效率提升300%的关键路径,深度拆解金融/制造/政务三大行业AI流转架构差异

审批效率提升300%的关键路径,深度拆解金融/制造/政务三大行业AI流转架构差异

更多请点击: https://intelliparadigm.com 第一章:AI 自动化审批流转 在现代企业数字化转型中,审批流程的智能化重构已成为提升运营效率的关键路径。AI 自动化审批流转通过融合自然语言处理、规则引擎与机器学习模型,实现从申请识…

2026/7/27 0:08:59 阅读更多 →
架构评审的实战框架——从技术选型、容量评估到风险识别的标准化流程

架构评审的实战框架——从技术选型、容量评估到风险识别的标准化流程

架构评审的实战框架——从技术选型、容量评估到风险识别的标准化流程 一、架构评审为什么需要标准化 在不少组织中,架构评审的实际状态是:架构师提前两小时收到一份方案文档,会上花二十分钟翻完,然后给出一些"我觉得这里应该…

2026/7/27 0:08:59 阅读更多 →
49-生活管理场景-健康财务与习惯追踪

49-生活管理场景-健康财务与习惯追踪

49 生活管理场景:健康财务与习惯追踪 一年的数据,一生的改变 Mia是一位普通的上班族,2023年初她给自己定了一个目标:用数据了解自己。她开始用Obsidian记录日常生活的方方面面——吃了什么、跑了多少米、花了多少钱、睡了多少小时。 “最初只是一个新年Flag,心里其实没…

2026/7/27 0:08:59 阅读更多 →
ArkUI 长列表卡顿治理实战:LazyForEach、缓存与滚动体验

ArkUI 长列表卡顿治理实战:LazyForEach、缓存与滚动体验

ArkUI 长列表卡顿治理实战:LazyForEach、缓存与滚动体验 长列表卡顿通常不是某一个组件“写错了”,而是三个问题叠在一起:一次性创建太多节点、图片资源加载没有节制、列表项状态变化导致大范围刷新。用户看到的是滚动掉帧,开发者…

2026/7/27 0:08:59 阅读更多 →
HarmonyOS应用《玄象》开发实战:LuopanPage 罗盘页:@ohos.public.sensor 陀螺仪/方向传感器接入

HarmonyOS应用《玄象》开发实战:LuopanPage 罗盘页:@ohos.public.sensor 陀螺仪/方向传感器接入

阅读时长:约 19 分钟 | 难度:★★★★★ | 篇章:第 7 篇 风水罗盘模块 对应源码:entry/src/main/ets/pages/fengshui/LuopanPage.ets 前言 风水罗盘是玄象项目最具互动性的功能之一。通过 ohos.public.sensor 方向传感器&am…

2026/7/27 0:07:58 阅读更多 →

日新闻

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →
SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

1. 项目概述:从寄存器手册到实战指南 如果你手头有一份类似德州仪器(TI)TMS320x240xA系列DSP的SPI模块技术手册,看着里面密密麻麻的寄存器位定义、时序图和公式,是不是感觉头大?这份资料虽然权威&#xff0…

2026/7/27 0:00:54 阅读更多 →
【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

月新闻