各位大佬, Mysql 主从复制,用哪种高可用切换方案?

2023-08-04 10:04:53 +08:00
 Hankey
目前用 mysql8+

要求:
1 、纯内网,没有上云
2 、经过实践过,并且生产环境在使用的方案
3 、有什么要注意的坑
有没有实操方案文档参考一下,先谢!
2770 次点击
所在节点    MySQL
13 条回复
vczyh
2023-08-04 10:11:58 +08:00
Orchestrator
pollux
2023-08-04 11:12:51 +08:00
双交换机做堆叠,双电源冗余
服务器双电源,双网卡 bonding
多磁盘做 Raid5 或 Raid6, 不差钱就用 Raid1
MySQL 做双主互备,互为主从
负载均衡:
1. 若已经有了 keepalived, 用 haproxy 或 nginx 加 vip 做 tcp 转发
2. 若没有,建议用 consul+coredns 做域名的数据库连接
jinsongzhao
2023-08-04 11:17:25 +08:00
偷懒直接做成了双主,这样就不用切换了,主机完蛋了,直接换备机
Worldispow
2023-08-04 11:22:28 +08:00
千万不要用 mgr ,坑居多。
binge921
2023-08-04 11:25:34 +08:00
我目前用的 Galera Cluster 问下各位大佬 有问题么
xudaxian520bsz
2023-08-04 11:32:43 +08:00
@binge921 厉害,我还真没听过这个,只听过 MHA
seers
2023-08-04 13:29:01 +08:00
歪个楼,在 db2 时代我司就被 db2 那个 hadr 搞得死去活来,现在二话不说买的阿里私有云,他好我也好( doge
Songxwn
2023-08-04 13:45:41 +08:00
@binge921 建议三个以上奇数节点,否则容易脑裂
dif
2023-08-04 13:58:22 +08:00
目前经常用的方式就是 LVS + mysql
fredcc
2023-08-04 14:17:53 +08:00
传统方案:主库双机+网络共享存储或 scsi 直连存储,corosync + pacemake 做双机 HA
新派方案:MySQL NDB Cluster

坑:
传统方案双机切换后可能 binlog 位置跳变,需要手工修复主从
NDB 集群要换引擎,其他问题不详,因为没用过
my3157
2023-08-04 14:31:30 +08:00
pxc
hcymysql
2023-11-09 15:54:54 +08:00
MySQL (MHA)重构版
https://github.com/hcymysql/MHA-Re-Edition

由于 MHA ( mha4mysql-manager )工具 2018 年已经停止维护更新,且不支持 Gtid 复制模式,在原版基础上增补功能难度较大,固考虑将其重构。

参考了原版 MHA 的故障切换思路,改进的地方如下:

1 )无需打通 ssh 公私钥互信认证,只需在 app1.cnf 配置文件里提供用户名和密码( root 权限)即可,这一步的作用是漂移 VIP ,工具会直接进入远程主机上执行 ip addr add VIP

2 )目前主流版本 MySQL 5.7 和 8.0 的复制模式是基于 Gtid ,因事务号是唯一的,更改同步复制源不需要知道 binlog 文件名和 position 位置点,固简化了在客户端部署 agent 做数据补齐。

3 )无需安装,就两个文件,一个是(环境配置检查)可执行文件 masterha_check_repl_mysql ,一个是(故障自动转移 autofailover 和在线平滑切换 online switch )可执行文件 masterha_manager_mysql

4 ) 基于主从复制( Gtid 复制模式)才可以运行,masterha_check_repl_mysql 工具会检测,如果是基于 binlog 和 position (位置点复制模式)不能运行。可开启半同步复制确保切换以后数据完整性(至少有一个从库确认已接收到所有事件)。

5 ) masterha_manager_mysql 守护进程主控文件,集成了 ( masterha_master_switch + master_ip_failover + masterha_secondary_check + shutdown_script + weixin_alarm )捆绑在一起

6 ) AutoFailover 自动故障切换(转移) VIP 后,会发送微信公众号报警通知​

7 )支持远控卡重启服务器(避免脑裂问题)。例如删除 VIP 失败,主机已经 hang 住,只能通过远程管理卡去重启机器。在这里你可以调用远控卡命令,比如 DELL 服务器的 ipmitool 命令​https://www.cnblogs.com/EricDing/p/8995263.html

8 )增补对 MariaDB Gtid 的支持
dyv9
338 天前
@binge921 附议。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/962310

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX