Appearance
3.4.10 双机热备
3.4.10.1 功能概述
双机热备(High Availability)是DASS 3.5.0系统实现高可用性的核心架构,基于主用节点(Active Node)与备用节点(Standby Node)的冗余架构设计。本方案通过以下技术手段保障业务连续性:
- 单活模式:同一时间仅一台机器提供服务(活跃态),另一台待命(休眠态),VIP(虚拟IP)绑定在活跃机上
- 服务级切换:切换时按服务清单逐个停止/启动,减少业务中断窗口
- VIP漂移:对外统一入口IP跟随活跃机切换,保证访问连续性
- 数据同步:基于实时数据库双向镜像,保证数据一致性
核心价值:
- 消除故障对实时数据采集的影响
- 确保控制指令的连续执行
- 满足工业自动化系统高可用性要求
3.4.10.2 工作原理
双机热备的切换过程分为三个阶段:
阶段一:状态预置
- 将"交出服务的一方"标记为"准备休眠"
- 将"接管服务的一方"标记为"准备活跃"
- 此阶段只改标记,不动服务
阶段二:服务接力
- 按服务清单逐个切换:
- 交出方停止服务 → 等待停稳
- 接管方启动服务 → 等待起稳
- 逐个完成,确保每一步都成功
阶段三:VIP漂移与状态收敛
- 接管方挂载VIP(对外可访问)
- 交出方卸载VIP(对外不可访问)
- 双方状态落定为"活跃/休眠"
为什么要知道这个原理?
- 如果切换过程中出现问题,可以根据日志判断卡在哪个阶段
- 阶段一失败:检查网络连通性
- 阶段二失败:检查具体哪个服务启动/停止异常
- 阶段三失败:检查VIP配置(IP、网卡、掩码)
关键状态说明:
| 状态 | 含义 |
|---|---|
| Active | 活跃,对外提供服务(VIP在本机) |
| Sleep | 休眠,不对外提供服务(VIP不在本机) |
| StartActive | 准备活跃(切换进行中) |
| StartSleep | 准备休眠(切换进行中) |
| Unknown | 异常状态,需要排查 |
3.4.10.3 使用场景
- 关键业务服务器(数据采集服务、历史数据存储服务)
- 7x24小时连续运行的监控工作站
- 需要避免计划外停机的控制系统
典型案例,下面介绍会以此为为例。
3.4.10.4 前置条件
- 设备B和设备C的DASS版本、型号、应用列表和操作系统需一致
- 设备B和设备C的openPlant的版本、授权信息需保持一致
- 设备B和设备C网络通讯正常
- 设备A支持双路采集
- 设备B和C的操作系统如果是windows,系统版本需win10+
- HAIDAS服务已在设备B和设备C上部署并启动
- 两台设备的HAIDAS服务端口互通(默认端口30001)
3.4.10.5 操作步骤
步骤1:在设备B和设备C上部署DASS系统,在设备D上部署openPlant
步骤2:在设备B和设备C上进行基础配置、心跳配置和传输配置
设备B的配置
设备C的配置
步骤3:检查设备B、设备C和设备C的openPlant连接状态
设备B的openPlant连接状态
设备CopenPlant的连接状态
步骤4:配置设备B到设备D的单向openPlant 库到库镜像

步骤5: 配置设备C到设备D的单向openPlant库到库镜像

步骤6: 开启双机热备,系统会自动检测并创建设备B和设备C双向openPlant库到库镜像
双机热备状态开关是双向同步的, 所以只要在设备B和C任意一个设备上面开启都会同时开启
开启成功判据:
- 主机(Master):状态显示"活跃",VIP已挂载
- 备机(Slave):状态显示"休眠",VIP已卸载
- 两端心跳正常(无持续报错)
步骤7: 创建服务通道和测点 点击"创建采集"
创建一个数据模拟服务, 用来验证实时值在双机热备中的流向
创建通道
创建测点
设备B上已经成功创建了服务通道和测点
设备C上已经存在了在设备B上创建的服务通道和测点,只不过由于是设备C是休眠状态, 服务是停止状态
在设备C上查看数据是否有值,验证实时值同步镜像是否成功
通过实时库客户端软件连接设备D的openPlant,检测中心侧数据是否完整

步骤8:手动切换(可选) 当需要将服务从当前活跃机切换到另一台时,可执行手动切换:
- 在当前活跃机页面点击"手动切换"
- 观察状态变化:
- 原活跃机状态:活跃 → 准备休眠 → 休眠
- 原休眠机状态:休眠 → 准备活跃 → 活跃
- 等待切换完成(通常几十秒内,取决于服务数量)
- 验证切换结果:
- VIP已漂移到新的活跃机
- 新活跃机的关键采集服务处于运行状态
- 原活跃机的关键采集服务已停止
- 心跳稳定,无持续报错
步骤9:故障模拟与恢复测试
- 模拟设备B采集服务运行异常
- 模拟设备B和设备C网络中断
- 模拟设备B的openPlant运行异常
3.4.10.6 参数说明
无。
3.4.10.7 注意事项
- 双机热备开启后实时库需确认创建了双向镜像,这是实现数据一致性的保证
禁止操作项:
- ❌ 服务启停/重启
- ❌ 通道启停/挂起
- ❌ 直接修改实时库数据
允许操作项:
- ✅ 服务、通道和测点的增删改(自动触发同步)
- ✅ 只读类查询操作
- ✅ 状态监控操作
- ✅ 手动切换操作
切换触发条件:
- 单活模式下仅支持手动切换
- 手动切换指令:在当前活跃机页面点击"手动切换"按钮
- 切换过程中会自动保护,防止并发操作导致状态冲突
3.4.10.8 示例
示例1:正常切换流程
场景:设备B(主机)为活跃状态,设备C(备机)为休眠状态,需要将服务切换到设备C
操作步骤:
- 在设备B页面点击"手动切换"
- 观察状态变化:
- 设备B:活跃 → 准备休眠 → 休眠
- 设备C:休眠 → 准备活跃 → 活跃
- 切换完成后验证:
- VIP从设备B漂移到设备C
- 设备C上采集服务运行正常
- 设备B上采集服务已停止
- 如需切回设备B,在设备C页面再次点击"手动切换"即可
示例2:开启双机热备流程
场景:首次部署,需要开启双机热备功能
操作步骤:
- 在设备B和设备C上完成DASS部署和配置
- 在设备B或设备C上点击"开启双机热备"
- 系统自动执行:
- 主机(Master):启动所有服务,挂载VIP,进入活跃状态
- 备机(Slave):停止所有服务,卸载VIP,进入休眠状态
- 开启成功后,系统会自动创建双向openPlant镜像
3.4.10.9 常见问题及解决方法
问题1:开启双机热备后状态显示"Unknown"
现象:页面显示Unknown,或提示"部分服务启动失败"
可能原因:
- 服务配置中存在服务名不匹配/不存在
- 服务已在运行,但重复启动导致报错
- DASS服务列表状态短暂抖动导致等待超时
解决方法:
- 查看日志,找到具体失败的服务名称
- 检查服务配置是否正确
- 重新执行"开启双机热备"触发重试
问题2:操作时提示"状态切换中,请稍后再试"
现象:点击开启/关闭/切换按钮时,提示"状态切换中,请稍后再试"
可能原因:
- 当前有其他切换操作正在进行
- 上一次切换操作还未完成
解决方法:
- 等待当前操作完成(通常几十秒内)
- 如果长时间未完成,刷新页面查看当前状态
- 如果持续报错,可重启活跃侧HAIDAS服务
问题3:手动切换后VIP未漂移
现象:切换完成后,VIP仍在原活跃机上
可能原因:
- VIP配置错误(IP、网卡名、子网掩码)
- 网卡不存在或不可用
- 网络权限不足
解决方法:
- 检查VIP配置是否正确
- 确认网卡存在且可用
- 检查网络权限
- 如需紧急恢复,可手动操作VIP
问题4:备机启动服务后服务被停止
现象:切换过程中,备机日志显示服务启动成功但随即被停止
可能原因:
- 切换流程未按正常顺序执行
- 状态标记异常
解决方法:
- 检查日志,确认切换流程是否完整
- 重新执行"开启双机热备"触发状态收敛
- 如果问题持续,重启备机HAIDAS服务
问题5:心跳持续报错
现象:日志中持续出现心跳错误
可能原因:
- 两台设备网络不通
- HAIDAS服务端口被防火墙拦截
- 对端HAIDAS服务未启动
解决方法:
- 检查两台设备之间的网络连通性
- 检查防火墙是否放行HAIDAS服务端口(默认30001)
- 确认对端HAIDAS服务已启动
3.4.10.10 相关命令/接口
无。
3.4.10.11 安全声明
- 双机热备开启后,禁止手动启停服务、通道,禁止直接修改实时库数据
- 切换过程中系统会自动保护,防止并发操作导致状态冲突
- VIP漂移采用"先挂载后卸载"策略,避免出现双VIP情况
- 首次上线建议先验证核心服务,确认流程稳定后再扩大服务范围
帮助中心