mysql主从复制,主主互备及示例的实现

本文详细介绍了MySQL的高可用方案,包括低读低写并发、高读低写并发、高读写并发和高读写高并发场景下的解决方案。深入探讨了主从复制的概念、主要用途和原理,并提供了主从复制的实现步骤。同时,讲解了主主互备的架构,包括双主架构的优缺点和实现方法,旨在帮助读者理解和实施MySQL的高可用策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. mysql高可用方案

1.1 低读低写并发、低数据量方案

方案一:

(1)数据库架构图

(2)特点

一台机器A作为读写库,另一台B作为备份库,若A库故障后,读写操作或转移到B库上执行,A库恢复后作为备库。

(3)开发说明

此种情况下,数据源配置中的数据库IP地址,可采用虚拟的IP地址,虚拟IP地址有两台数据库机器上的keepalived配置,互相检测心跳。当一台机器故障后,虚拟IP地址会从故障库漂移到正常库上。

数据库的贮备配置,故障排查和数据不全,需要DBA(数据库管理人员)和运维人员维护。程序代码和配置并不需要修改啦

(4)适应场景

读写不高的场景(单表数据低于500万),双机高可用

(5)优缺点

优点:机器故障后自动切换

缺点:只有一台机器工作,读写未分离,并发有限制

方案二:

(1)数据库架构图

(2)特点

一台机器A作为写库,另一台B作为读库;A库故障后,读的操作转移到B机器上,A库恢复后,A库作为读库,B库作为写库。

(3)开发说明

该方案的实现,要借助数据库中间件Mycat来实现,配置如下

<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1" writeType="0"
dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!--主,用于写-->
<writeHost host="hostM1" url="192.168.1.135:3306" user="root" password="123" />
<!--主2,用于读,hostM1 down了,自动切换为主,读写都可以-->
<writeHost host="hostM2" url="192.168.1.136:3306" user="root" password="123" />
</dataHost>

项目开发中,需要配置Mycat数据源,并实现对Mycat数据源的数据操作。数据库A和B互为主从。

数据库的主主配置,故障排查和数据不全,依然需要DBA和运维人员维护。

(4)适应场景

读写操作要求都不是非常高的场景(单表数据低于1000万),高可用,比方案一高。

(5)优缺点

优点:一个机器故障后可以自动切换;

           读写分离,并发有了很大的提升

缺点:引入了一个Mycat节点,若要高可用需要引入两个Mycat。常规的解决方案为:引入haproxy和keepalived对mycat做集群。

1.2 高读低写并发,低数据量

方案三:一主多从+读写分离

(1)数据库架构图

(2)特点

一个主库A多个从库,当A库故障时,提上从库B为主写库,同事修改C,D为B的从库,A故障修复后,会作为B的从库使用。

(3)开发说明

项目开发需要使用Mycat作为中间件,来配置主库和从库,核心配置如下

<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1" writeType="0"
dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!--主A,用于写-->
<writeHost host="hostM1" url="192.168.1.135:3306" user="root" password="123" />
<!—从B,用于读,hostM1 down了,自动切换为主-->
<writeHost host="hostM2" url="192.168.1.136:3306" user="root" password="123456"/>
<!—从C,用于读-->
<writeHost host="hostM3" url="192.168.1.137:3306" user="root" password="123" />
<!—从D,用于读-->
<writeHost host="hostM4" url="192.168.1.138:3306" user="root" password="123" />
</dataHost>

主库A故障后,Mycat会自动把B提升为写库,而C,D从库,可以通过MHA等工具,自动修改其主库B,进而实现自动切换的目的。

MHA Manger可以单独部署在一台独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上,MHA Nod运行在每台Mysql服务器上,MHA Manger会定时探测集群中的master节点,当master出现故障后,它可以自动将最新数据的slave提升为新的master,然后将其他所有的slave重新指向新的master,故障转移对应用程序完全透明。

(4)适应场景

该架构适合写并发不大。但读并发很大的场景

(5)优缺点

优点:读并发能力有了质的提升,理论上来说,读的节点也可以配置多个

缺点:节点多

1.3 高读写并发,低数据量方案

方案四:MariaDB Galera Cluster方案

(1)数据库架构图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值