Mysql主从架构及几种高可用方案-创新互联

一、主从复制 1、主从概念、优点及用途

概念: 主库提供读写操作,从库对外提供读操作。

发展壮大离不开广大客户长期以来的信赖与支持,我们将始终秉承“诚信为本、服务至上”的服务理念,坚持“二合一”的优良服务模式,真诚服务每家企业,认真做好每个细节,不断完善自我,成就企业,实现共赢。行业涉及橡塑保温等,在成都网站建设成都全网营销推广、WAP手机网站、VI设计、软件开发等项目上具有丰富的设计经验。


2、主从复制的原理

主从复制:涉及到

 2个日志(binlog、relaylog日志)、

 3个线程:master(dump线程)、slave(I/O线程、SQL线程)

主dump线程:数据库中数据更新时,创建一个dump线程通知slave有数据更新,传给slave的IO线程(binlog和更新位置传给slave I/O 线程)

I/O线程:接收到dump线程发来的 binlog文件,存放到本地relay log中

sql线程:读取relay log中的内容,本地做redo操作,将主库事件本地执行一遍,最终保证主从数据的一致性

3、基本过程:

1、主库写入数据并且生成binlog文件,即MySQL将事务串行的写入二进制日志

2、master通知存储引擎提交事务

3、从服务器IO线程连接至master,请求binlog 指定位置读取到从库

4、主服务器接收到请求,会根据slave请求信息分批读取binlog文件,返回给从库IO线程

5、IO线程获取到maser的日志内容、文件、问之后,会将binlog写到slave自身的relay log中。

6、从服务器中SQL 监测到本地Relay Log中新增了日志内容,翻译成SQL 执行,并更新从库数据

优点:

  1、故障转移-高可用  主服务宕机后,可以由从服务切换成为主服务

  2、读写分离   数据库读请求从服务分担(一些查询大请求,仅查从库)

  3、数据安全   数据的热备,后备数据库,避免数据丢失

缺点:

  1、正常情况下,数据也会不能实时同步

2、主从服务,主机挂掉,数据丢失问题(mysql默认异步复制,设置半同步复制)

半同步复制:主库执行完客户端提交的事务后,等待至少一个从库接收并写到relay log中,才返回。等待确认时,默认会等10秒,如果超过10秒没有收到ack,会降级成异步复制。

  3、主库宕机,无法自动切换

  二、高可用方案          2.1 MMM

有一套脚本对集群进行监控和故障转移,需要2个master,通过一个VIP机制保证集群高可用,当主节点故障,vip从原来的主节点漂移到其它节点。

优点:

1、部署简单,不需要额外开发脚本

2、高可用,出现故障自动切换

缺点:

1、故障简单粗暴,容易丢失事务,建议采用半同步复制方式,减少失败的概率

2、社区缺少维护,不支持GTID

适用场景:

1、读写都需要高可用

2、基于binlog复制

2.2 MHA(公司主流使用)

  一个mysql解决方案,通过一套脚本来保证数据库系统的高可用.在宕机的时间内(通常10—30秒内),完成故障切换,部署MHA,可避免主从一致性问题,

 优点:

  1、支持日志点复制、GTID复制

  2、同MMM相比,会尝试从旧的Master中恢复旧的二进制日志,未必每次都能成功

 缺点:

 1、需要自行开发vip转移脚本

 2、只监控Master状态,未监控Slave状态

2.3 MGR

 mysql 5.7.17版本推出的组复制机制,主要是解决传统 异步复制和半同步复制的数据一致性问题

由若干个节点共同组成一个复制组,一个事务提交后,必须经过超过半数节点的决议并通过后,才可以提交。

  优点:

1、基本无延迟,延迟比异步的小很多

2、数据的强一致性,可以保证数据事务不丢失

 缺点:

1、仅支持innodb,且每个表必须提供主键

2、只能用在GTID模式下,且日志格式为row格式

适用场景:

  1、对主从延迟比较敏感
  2、数据强一致的场景

三、主从延迟    延迟的原因:

1、从库性能比主库差

2、从库读耗费大量cpu资源

3、大事务执行(比如 insert ... select ...,产生多条日志,只能等事务提交才可以传输)

4、主库DDl(alter、drop、create )

比如主库增加字段执行很长时间,从库也消耗很多时间

5、锁冲突

从库一些select  ... for update

减少主从延迟:

1、提供从库机器的配置,提供主库写与从读的效率差

 2、优化sql,避免慢sql

 3、降低多线程大事务并发执行的概率

  4、缩短主库与从库服务器的距离,提升端口带宽,减少binlog延时

  5、打开参数配置,设置多个库并行复制

 

1、开启mysql并行复制
设置slave_parallel_workers >0
   
2、 slave_parallel_type = LOGICAL_CLOCK 基于组提交的并行复制
                          DATABASE      ..  库...

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧

网页标题:Mysql主从架构及几种高可用方案-创新互联
标题URL:https://www.cdcxhl.com/article12/dgjddc.html

成都网站建设公司_创新互联,为您提供微信小程序搜索引擎优化电子商务网站策划动态网站关键词优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设公司