前言
在工控自动化项目中,上位机数据库往往承载设备参数、生产历史、运行日志等核心数据。客户要求新增备用工控机,主库故障时仅修改数据库IP即可恢复业务,不丢数据、不停机。本文基于真实工控场景,给出一套MySQL主从复制热备方案,覆盖多库部署、性能顾虑、常见卡顿超时问题与避坑要点,可直接落地实施。
一、场景与需求
- 4台上位机,两两数据库结构一致,共4个独立业务库
- 单库约2GB,含单表200字段、100万行历史数据,1主键+10索引
- 单次最大更新:128行×100字段,存在定时历史数据清理
- 目标:一台备用工控机承载4库热备,主库故障改IP秒切,数据实时一致
二、方案选型:为什么不选代码双写
不推荐在业务代码中同时操作主备双库,理由如下:
- 无法保证分布式事务一致性,易出现一写成功一写失败
- 双倍IO与耗时,上位机界面易卡顿、超时
- 后期维护成本翻倍,加字段/加表需双库同步修改
- 锁与异常逻辑复杂,工控场景易引发设备逻辑异常
最优方案:MySQL原生主从复制
- 主库读写,从库实时热备,故障仅改IP切换
- 引擎级日志同步,不丢数据、不乱数据
- 业务代码零改动,部署与维护极简
三、整体架构
- 主工控机(4台):运行上位机+主库Master
- 备用工控机(1台):单MySQL实例,新建4个对应库作为Slave
- 同步机制:基于Binlog日志实时复制
- 切换方式:上位机修改连接IP与库名,重启即可恢复

4万+

被折叠的 条评论
为什么被折叠?



