# PanguHA **Repository Path**: cty901/pangu-ha ## Basic Information - **Project Name**: PanguHA - **Description**: Windows双机热备工具,Windows Keepalived(IP漂移),进程切换,文件同步,Mariadb/Mysql双主复制,Sqlserver双向同步,邮件提醒,高可用解决方案 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2024-07-11 - **Last Updated**: 2024-07-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README |[专业版购买链接](https://item.taobao.com/item.htm?ft=t&id=741000477408)| [企业版购买链接](https://item.taobao.com/item.htm?ft=t&id=761842414982) |[至尊版购买链接](https://item.taobao.com/item.htm?ft=t&id=767670160378) | |---|---|---| | 500元/套 | 2000元/套 |8000元/套 | | 应用热备 | Mysql数据镜像(基于数据库) |Mysql/Sqlserver数据镜像(基于软件) | | 备注2个序列号   | 备注2个序列号 | 备注2个序列号 | ### :tw-1f608: 为了防止盗版,软件有做混淆,导致部分杀毒软件误报,添加白名单即可 |瑞星 |火绒 | 腾讯管家 |2345 |金山 |360(建议卸载) | |---|---|---|---|---|---| |:tw-2705:|:tw-2705: | :tw-2705: |:tw-2705: | :tw-2705: | 可能误报 | | **Avast** | **卡巴斯基** | **BitDefender** | **ESET-NOD32** | **AVG** | **Windows Defender** | |:tw-2705:|:tw-2705: | :tw-2705: | :tw-2705: | :tw-2705: |可能误报 | ### :tw-2b50: 某大型医院云胶片热备案例: https://www.bilibili.com/video/BV14x4y167A2/?spm_id_from=333.999.0.0&vd_source=8db0f4c511ee648e595718cb636c8df7 # PanguHA ### :tw-1f335: 1. 简介 PanguHA是Windows平台的双机热备集群系统,是提供系统高可用性的解决方案,一般由两个节点构成,分为活动节点及备用节点。 通常把正在执行业务的称为活动节点,而作为活动节点的一个备份的则称为备用节点。当活动节点出现问题,导致正在运行的业务不能正常运行时,备用节点此时就会侦测到,并立即接续活动节点来执行业务。从而实现业务的不中断或短暂中断。 ![输入图片说明](%E6%9E%B6%E6%9E%84%E5%9B%BE.jpg) ![输入图片说明](Sqlserver%E6%95%B0%E6%8D%AE%E5%8F%8C%E4%B8%BB%E5%90%8C%E6%AD%A5.png) ### :tw-1f47a: 2. 数据镜像(基于软件)的侵入影响 | 侵入式方式 | :tw-2b50: 优点 | :tw-1f6b7: 影响 | |---|---|---| | 必须有主键 | 提高性能 |源端不要修改主键值,修改主键值会导致目标端多出一条旧记录 | | 源和目标自动增加时间戳字段(以C开头)| 支持多种同步模式 |应用不要主动设置时间戳的值,insert语句必须指定字段,类似INSERT INTO 表名 VALUES(值1,值2,…)语句会报错 | | 自动增加删除触发器(以Tri开头)和辅助库(以PanguSync结尾,与源表隔离)| 弥补时间戳方式不能同步删除 |无影响,不要自行修改删除触发器和辅助库表,除非你懂原理 | ### :tw-1f530: 3. 授权购买 ||试用版|专业版|企业版|至尊版| |---|---|---|---|---| |价格 |免费|500元/套 | 2000元/套 |8000元/套| |签订合同【非必须】([合同模板](https://pan.baidu.com/s/1U7jMJv-76q36T6diGwAVug?pwd=ABCD)) |/|可签 | 可签 |可签| |授权期限| 永久| 永久 | 永久 | 永久| |授权数量| 无限制        | 1套(2台电脑) | 1套(2台电脑) | 1套(2台电脑) | |免费指导| :tw-274c: | :tw-2705: | :tw-2705: | :tw-2705: | |远程支持(非必须)| :tw-274c: | +5000元 | +5000元 | +5000元| |时间限制|2h/次| 不限 | 不限 | 不限| | **自启动** |:tw-274c: | :tw-2705: | :tw-2705: | :tw-2705: | | **IP漂移** 【[单独购买详见此链接,无硬件绑定,适合个人](https://gitee.com/AaronE_2890620459/pangu-vip)】| :tw-2705: | :tw-2705: | :tw-2705: | :tw-2705: | | **执行管理** | :tw-2705: | :tw-2705: | :tw-2705: | :tw-2705: | :tw-2705: | | **文件同步** 【[单独购买详见此链接,无硬件绑定,适合个人](https://gitee.com/AaronE_2890620459/pangu-flow)】| :tw-2705: | :tw-2705: | :tw-2705: | :tw-2705: | | **邮件提醒** | :tw-2705: | :tw-2705: | :tw-2705: | :tw-2705: | | **Mysql数据镜像(基于数据库)** | :tw-274c: | :tw-274c: | :tw-2705: | :tw-2705: | | **Mysql/Sqlserver数据镜像(基于软件)** 【[单独购买详见此链接](https://gitee.com/AaronE_2890620459/pangu-sync)】| :tw-2705: | :tw-274c: | :tw-274c: | :tw-2705: | |提供发票([发票样例](https://pan.baidu.com/s/1U7jMJv-76q36T6diGwAVug?pwd=ABCD))| / | 增值税普票 | 增值税普票|增值税普票| |购买方式| / | [淘宝(备注2个序列号)](https://item.taobao.com/item.htm?ft=t&id=741000477408)/微信/支付宝/银行卡 | [淘宝(备注2个序列号)](https://item.taobao.com/item.htm?ft=t&id=761842414982)/微信/支付宝/银行卡 |[淘宝(备注2个序列号)](https://item.taobao.com/item.htm?ft=t&id=767670160378)/微信/支付宝/银行卡| |收到货如何激活| /| 替换cc.license文件 | 替换cc.license文件 |替换cc.license文件| 微信: ![输入图片说明](1694855799819.png) ### :tw-1f4d8: 4. 软著 ### :loudspeaker: 5. 注意事项 - 操作系统: **Windows7 SP1** 及以上、**Windows Server 2008R2 SP1** 及以上 - 平台: **x86/x64** - 环境: **.NET Framework 4.6.1** 及以上 - 点击 **HA.exe** 运行 - :tw-1f534: **数据库不推荐双写,因为自增ID极限情况下会冲突,推荐一写多读或只做热备** - :tw-1f534: **多机热备时(3台及以上),软件支持Vip漂移、但不提供数据库多节点同步配置** - :tw-1f534: **【数据同步】模块是侵入式增量同步,表必须要有主键,会自动添加辅助字段,应用中不要去主动设置辅助字段的值,不要修改主键值** - :tw-1f534: **【数据同步】模块初次部署如果数据量较大,比如有上亿的初始数据,如果初始化超时请执行以下脚本:https://blog.csdn.net/sss899000/article/details/138615017** ### :cyclone: 6. 功能概述 - 故障转移(Windows Keepalived) - 执行管理 - 文件同步 - Mysql数据镜像【基于数据库】(已测试版本:Mysql-5.6.10、Mysql-5.7.42、Mysql-8.0.16、Mysql-8.3.0、Mariadb-10.2.38) - Mysql/Sqlserver数据镜像【基于软件】(已测试版本:Mysql5.6.4及以上/Sqlserver2008R2及以上) - 邮件提醒 ### :tw-1f504: 7. 数据库同步方式对比 | | 基于数据库| 基于软件 | |---|---|---| | 同步结构 | :tw-2705: | 半自动,需手动在两边数据库做同样的修改,软件将自动更新映射配置,不丢失新字段数据 | | 非侵入式 | :tw-2705: | :tw-274c: | | 增量同步 | :tw-2705: | :tw-2705: | | 初始化全量同步 | :tw-274c: | :tw-2705: | | 自动处理主键冲突 | :tw-274c: | :tw-2705: | | 自动处理外键约束冲突 | :tw-274c: | :tw-2705: | | 自动处理唯一索引冲突 | :tw-274c: | :tw-2705: | | 运维难度 | 困难 | 简单 | ### :books: 8. 教程 - [双机热备软件PanguHA说明书(新)](https://pan.baidu.com/s/1qSeCwWtnsEge32QpF2MRwA?pwd=abcd) ### :tw-1f4fa: 9. 视频 - [Web应用高可用配置](https://www.bilibili.com/video/BV1iK421v7Dv/?vd_source=8db0f4c511ee648e595718cb636c8df7) - [Mysql高可用配置](https://www.bilibili.com/video/BV1Mi421R7FP/?vd_source=8db0f4c511ee648e595718cb636c8df7) - [文件实时同步配置](https://www.bilibili.com/video/BV1fy421v7Mh/?vd_source=8db0f4c511ee648e595718cb636c8df7) - [Sqlserver高可用配置(旧)【可参考】](https://www.bilibili.com/video/BV1tZ421871n/?vd_source=8db0f4c511ee648e595718cb636c8df7) ### :alien: 10. 功能说明 #### 10.1 故障转移(Windows Keepalived) - 对外提供一个集群IP(虚拟IP/VIP),并且该IP始终只会设置在活动节点上(主节点),当活动节点宕机, 该IP会自动漂移到未宕机的节点上,系统站点和数据库的IP可以设置为VIP,代码层面无需改动 用于提高系统可用性,对业务无感知。(网卡中需使用静态ip,不可设置为动态获取,节点之间能互相ping通,VIP是同网段内无人使用的IP) ![输入图片说明](IP%E6%BC%82%E7%A7%BB.png) - 可配置对方IP,用于检测对方节点,异常发送邮件提醒,需要开放ICMP和监听端口 - 可配置Web服务Url,如果是主节点,发现web服务异常【30s内重试3次】会进行故障转移并发送邮件。如果是备节点,发现Web服务异常会发送邮件提醒 - 可配置Windows服务,如果是主节点,发现Windows服务异常会先进行重启,重启失败【30s内重试3次】则进行故障转移。如果是备节点,重启失败发送邮件提醒 ![输入图片说明](Web%E5%92%8CWindows%E6%9C%8D%E5%8A%A1%E7%9B%91%E6%8E%A7.png) ##### 主节点出现以下情况将进行故障转移: - 宕机 - 网卡异常 - Web服务Url异常 - Windows服务异常 #### 10.2 执行管理 - 在两个节点上配置相同的进程或windows服务,在运行时主节点(集群IP绑定节点)上会打开配置的进程或windows服务,在备节点上会kill配置的进程或windows服务 ![输入图片说明](%E8%BF%9B%E7%A8%8B%E7%AE%A1%E7%90%86.png) #### 10.3 文件同步 - 基于文件系统监听器,能快速捕获路径下文件或文件夹的变更,从而快速同步到目标端 - 不同电脑之间同步需先设置共享文件,保证IP形式的路径可访问 - 主节点的变更可以实时同步到备节点,备节点的变更不同步到主节点,而是根据镜像周期恢复到和主节点一样(比如备节点不小心删除了文件可以恢复) - 主节点和备节点都需要配置源路径和目标路径并启动,但只在主节点运行同步任务 ![输入图片说明](%E6%96%87%E4%BB%B6%E5%90%8C%E6%AD%A5.png) #### 10.4 Mysql数据镜像(基于数据库) - 一键部署双主复制,部署之前请先确认两台主机IP,3306端口是否连接正常,mysql用户是否可远程访问 - 开启健康检测后,自动检测mysql服务,如果mysql服务挂掉,会重新启动 - 同时开启IP漂移和健康检测后,VIP节点上的mysql服务如果挂掉,会先进行重启,如果重启失败,则切换VIP绑定节点 ![输入图片说明](Mysql%E5%90%8C%E6%AD%A5.png) #### 10.5 Mysql/Sqlserver数据镜像(基于软件) - 如果你不想配置Mysql主从,【数据同步】模块同样可实现Mysql的双主同步 - 仅同步数据,不同步结构,适合已经开发完成需求变动不大的应用 - 结构同步为半自动方式,即结构的变动需要在源和目标数据库手动执行,软件将自动更新映射配置,无需重新编辑任务 - 侵入式增量同步,每个表必须要有主键,会自动添加辅助字段,应用中不要主动去设置辅助字段的值 - 数据同步异常时可发送邮件 - 初次部署做全量同步如果数据量较大,会比较占用CPU,全量同步完成后CPU占用会大幅下降,提高睡眠时间和字段检测间隔可以降低数据库对CPU的占用,专为性能低下的服务器设计 - 选库不选表可批量生成任务 - 配置数据双主同步、Sqlserver服务监控、IP漂移,即可搭建sqlserver高可用 ![输入图片说明](Sqlserver%E6%95%B0%E6%8D%AE%E5%8F%8C%E4%B8%BB%E5%90%8C%E6%AD%A5.png) ![输入图片说明](Sqlserver%E7%9B%91%E6%8E%A7.png) #### 10.6 邮件提醒 - 在邮件提醒界面保存配置(可先进行测试) - VIP切换后,会发送邮件提醒 - 在添加对方IP后,主节点会对它们进行检测,检测到对方IP连接异常时会发送邮件提醒(防止主节点宕机没有备节点可以切换) - 在添加本机web服务Url后,备节点上监测到自己的web服务异常后,会发送邮件提醒(防止主节点web服务异常没有备节点可以切换) - 在添加windows服务后,备节点上监测到自己的windows服务异常后,会发送邮件提醒(防止主节点windows服务异常后没有备节点可以切换) - 在开启Mysql健康检测的情况下,备节点断联或同步异常,会发送邮件提醒(防止主节点宕机切换后数据异常) - Sqlserver数据同步异常停止任务时会发送邮件 ![输入图片说明](1698226703076.png) ![输入图片说明](Email.png) ### :secret: 11. 关于开机自启动 - 在【IP漂移】点击运行成功后,会保存相关信息,下次打开软件将自动运行 - 在【执行管理】配置后,下次打开将自动运行 - 在【文件同步】配置后,下次打开将自动运行 - 在【mysql主从配置】开启健康检测成功后,会保存mysql设置的相关信息,下次打开软件将自动开启健康检测 - 在【数据同步】添加任务后,下次打开将自动运行 - 将软件设置为快捷方式,然后Win+R输入shell:startup,将快捷方式拖入该目录 - Win+R输入gpedit.msc打开组策略,依次展开计算机配置--->Windows设置--->安全设置--->本地策略--->安全选项--->用户账户控制:以管理员批准模式运行所有管理员,设置为已禁用