简述5种MySQL⾼可⽤⽅案
我们在考虑MySQL数据库的⾼可⽤的架构时,如果数据库发⽣了宕机或者意外中断等故障,能尽快恢复数据库的可⽤性,尽可能的减少停机时间,保证业务不会因为数据库的故障⽽中断。与此同时,⽤作备份、只读副本等功能的⾮主节点的数据应该和主节点的数据实时或者最终保持⼀致。当业务发⽣数据库切换时,切换前后的数据库内容应当⼀致,不会因为数据缺失或者数据不⼀致⽽影响业务。这些都是MySQL⾼可⽤⽅案的基本标准。
下⾯我们为⼤家介绍常⽤的5种MySQL⾼可⽤⽅案。
1、主从或主主半同步复制
使⽤双节点数据库,搭建单向或者双向的半同步复制。在5.7以后的版本中,由于lossless replication、logical多线程复制等⼀些列新特性的引⼊,使得MySQL原⽣半同步复制更加可靠。
通常会和proxy、keepalived等第三⽅软件同时使⽤,即可以⽤来监控数据库的健康,⼜可以执⾏⼀系列管理命令。如果主库发⽣故障,切换到备库后仍然可以继续使⽤数据库。
2、半同步复制优化
半同步复制机制是可靠的。如果半同步复制⼀直是⽣效的,那么便可以认为数据是⼀致的。但是由于⽹络波动等⼀些客观原因,导致半同步复制发⽣超时⽽切换为异步复制,那么这时便不能保证数据的⼀致性。所以尽可能的保证半同步复制,便可提⾼数据的⼀致性。该⽅案同样使⽤双节点架构,但是在原有半同复制的基础上做了功能上的优化,使半同步复制的机制变得更加可靠。
3、⾼可⽤架构优化将双节点数据库扩展到多节点数据库,或者多节点数据库集。可以根据⾃⼰的需要选择⼀主两从、⼀主多从或者多主多从的集。由于半同步复制,存在接收到⼀个从机的成功应答即认为半同步复制成功的特性,所以多从半同步复制的可靠性要优于单从半同步复制的可靠性。并且多节点同时宕机的⼏率也要⼩于单节点宕机的⼏率,所以多节点架构在⼀定程度上可以认为⾼可⽤性是好于双节点架构。但是由于数据库数量较多,所以需要数据库管理软件来保证数据库的可维护性。可以选择MMM、MHA或者各个版本的proxy等等。
mysql数据库的方法4、共享存储
共享存储实现了数据库服务器和存储设备的解耦,不同数据库之间的数据同步不再依赖于MySQL的原⽣复制功能,⽽是通过磁盘数据同步的⼿段,来保证数据的⼀致性。
1. SAN共享储存
SAN的概念是允许存储设备和处理器(服务器)之间建⽴直接的⾼速⽹络(与LAN相⽐)连接,通过这种连接实现数据的集中式存储。2.DRBD磁盘复制
DRBD是⼀种基于软件、基于⽹络的块复制存储解决⽅案,主要⽤于对服务器之间的磁盘、分区、逻辑卷等进⾏数据镜像,当⽤户将数据写⼊本地磁盘时,还会将数据发送到⽹络中另⼀台主机的磁盘上,这样的本地主机(主节点)与远程主机(备节点)的数据就可以保证实时同步。
5、分布式协议
分布式协议可以很好解决数据⼀致性问题。⽐较常见的⽅案如下:
1. MySQL cluster
MySQL cluster是官⽅集的部署⽅案,通过使⽤NDB存储引擎实时备份冗余数据,实现数据库的⾼可⽤性和数据⼀致性。
2. Galera
基于Galera的MySQL⾼可⽤集,是多主数据同步的MySQL集解决⽅案,使⽤简单,没有单点故障,可⽤性⾼。常见架构如下:
3. POAXS
Paxos 算法解决的问题是⼀个分布式系统如何就某个值(决议)达成⼀致。这个算法被认为是同类算法中最有效的。Paxos与MySQL相结合可以实现在分布式的MySQL数据的强⼀致性。
随着⼈们对数据⼀致性的要求不断的提⾼,越来越多的⽅法被尝试⽤来解决分布式数据⼀致性的问题,如MySQL⾃⾝的优化、MySQL集架构的优化、Paxos、Raft、2PC算法的引⼊等等。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论