MySQL数据库技术体系介绍课件_第1页
MySQL数据库技术体系介绍课件_第2页
MySQL数据库技术体系介绍课件_第3页
MySQL数据库技术体系介绍课件_第4页
MySQL数据库技术体系介绍课件_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

技术创新,变革未来MySQL数据库技术体系介绍技术创新,变革未来MySQL数据库技术体系介绍101

MySQL简介与主流分支版本01MySQL简介与主流分支版本201MySQL

之父Michael“Monty”

Widenius1、开源MySQL数据库的创始成员2、MySQL

AB公司的首席技术官3、MySQL数据库第一行代码的作者4、MySQL数据库命名人5、MariaDB创始人兼首席技术官;6、独自完成撰写MySQL数据库服务器端95%的代码。MySQLMaxDBMariaDB01MySQL之父Michael“Monty”Wide301MySQL

介绍1999成立MySQL

AB公司2000公布源码,采用GPL协议,正式进入开源世界2008.1.16Sun收购MySQL2019MySQL5.6MySQL5.7MySQL8.0(2016.8.25DMR、2018.4.8

GA)2005.10里程碑,发布MySQL5.0,奠定了迈向高性能数据库基础2009.4.20Oracle收购Sun(MySQL5.5)1979TcX

UNIREG1995Sun

Solaris01MySQL介绍1999成立MySQLAB2000公布401MySQL

主流分支MySQLEnterprisePerconaServerMariaDBDrizzleMySQL官方MySQL号称最接近MySQLEnterprise发行版的产品XtraDBMonty团队迭代更干净、快速的MySQL不兼容MySQL01MySQL主流分支MySQLPerconaServ501MySQL

行业前景01MySQL行业前景601全球最大网站Top2001全球最大网站Top20701国内MySQL行业应用①

互联网行业数据库MySQL市场第一②

甲骨文公司的两款数据库(Oracle+MySQL)共占据着全世界的数据库市场份额的60%以上,在中国(Oracle+MySQL)的使用更占到80%左右③

中国前100个大企业/国有企业有99个以上使用Oracle为主MySQL为辅,中国前100个互联网行业公司有95%以上使用MySQL为主Oracle/NoSQL为辅④

MySQL数据库在互联网行业90%以上的使用比例,最典型的就是BAT了,近2年开始MySQL扩展到金融、通信、生产制造、快速消费品零售、物流运输、医疗、政府等行业01国内MySQL行业应用①互联网行业数据库MySQL市场801MySQL

介绍Oracle

VS

MySQL

企业服务软件的开源与闭源之争01MySQL介绍OracleVSMySQL:企业901MySQL

介绍Oracle

VS

MySQL

企业服务软件的开源与闭源之争Oracle:功能强大保障体系充分,MOS成熟度高BUG更新较快并发机制粒度细,并发高软件成本高运维成本依赖数据规模,小规模数据库运维成本远高于MySQL,大规模数据库运维成高低于MySQL。传统行业的霸主技术掌控度低MySQL:功能略有不足保障体系成熟度不如OracleBUG更新不如Oracle并发机制较粗,比Mongo类NoSQL要强,并发性总体不如Oracle软件成本低运维成本依赖数据规模,小规模数据库运维成本低于Oracle,大规模数据库运维成高低于Oracle。互联网行业技术掌控度高01MySQL介绍OracleVSMySQL:企业1002

浅谈MySQL架构02浅谈MySQL架构1105阿里去O的背景淘宝、阿里巴巴B2B和支付宝等公司,98%以上的软件系统和业务都是采用Oracle数据库提供数据服务07年开始阿里巴巴IT开销史无前例,有着国内之最的趋势,一度成为IBM、Oracle的中国标杆客户09年淘宝更是上了全球排名Top

N的大RAC集群,亚洲第一,有20个节点那么,问题来了,千万级甚至上亿的Oracle产品+服务无法支撑阿里发展的速度,howto

???①

传统的关系型数据库在扩展方面没一家解决得好的②

DB层已无法独自承载互联网社区业务的高速发展,架构开始受到重视③

由一家服务商绑定,风险高④

阿里选择MySQL背后主要考虑的是成本,以及开源可以定制05阿里去O的背景淘宝、阿里巴巴B2B和支付宝等公司,98%1205阿里去O的背景05阿里去O的背景1305阿里云POLARDB05阿里云POLARDB1405阿里云POLARDB05阿里云POLARDB1505熟悉的Oracle/MSSQL基础架构Oracle/MSSQL有哪些常用的架构呢?Oracle/MSSQL架构中不同节点如何保证数据的强一致性?那么,MySQL又有哪些常用的架构呢?05熟悉的Oracle/MSSQL基础架构Oracle/MS1605一个原则两个理论ACID原则CAP理论BASE理论05一个原则两个理论ACID原则1705ACID原则-RDBMS理论基础05ACID原则-RDBMS理论基础1805ACID原则-RDBMS理论基础ACID四大基本特性原子性(Atomicity):事务是不可分割的工作单位,事务中的操作要么都发生,要么都不发生。一致性(Consistency):事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性的核心一部分是靠原子性实现,另一部分是逻辑实现。隔离性(Isolation):事务在正确提交之前,不允许把事务对该数据的改变提供给任何其他事务。四大隔离级别,事务隔离级别越高,高并发场景下产生的问题就越少,同时付出的性能消耗也将越大。持久性(Durability):事务完成后,对数据库所作的更改便持久的保存在数据库中,并不会被回滚。MySQL默认REPEATABLE-READ:可重复读Oracle默认read

committed:读已提交05ACID原则-RDBMS理论基础ACID四大基本特性原子1905CAP理论CAP理论是指一个分布式系统不可能同时很好的满足强一致性(Consistency)、可用性(Availability)、分区容错性(Partition

tolerance)这3个要求,通常最多只能同时较好的满足其中的两个。强一致性系统在执行过某项操作后仍处于一致的状态。在分布式系统中,更新操作执行成功后所有的用户都应该读到最新的值,这样的系统被认为是具有强一致性的。等同于所有节点访问同一份最新的数据副本。可用性每一个操作总是能够在一定的时间内返回结果,一定时间指的是在可以容忍的范围内返回结果,结果可以是成功或者失败。在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求分区容错性指当出现网络分区的情况时(即系统中的一部分节点和其他节点进行通信)分离的系统也能够正常运行。理解为在存在网络分区的情况下,仍然可以接受请求。节点crash或者网络分片都不应该导致一个分布式系统停止服务。05CAP理论CAP理论是指一个分布式系统不可能同时很好的满2005CAP理论CA:单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强。CP:满足一致性,分区容错的系统,通常可用性不是特别高AP:满足可用性,分区容错性的系统,通常可能对一致性要求低05CAP理论CA:单点集群,满足一致性,可用性的系统,通常2105BASE理论BASE理论是为了解决关系型数据库强一致性引起的可用性降低而提出的解决方案。核心思想是即使无法做到强一致性,但应用可以采用适合的方式达到最终一致性。BASE理论来源于下列三个特征:基本可用(BasicallyAvailable)基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。在无法通讯时选择可用性。软状态(softstate)软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现。用镜像读代替强一致性读。最终一致性(Eventual

Consistency)最终一致性是指系统中所有数据副本经过一定时间后,最终能够达到一致的状态。弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。用异步方式确保完成数据更新。思考:BASE与CAP、ACID的区别和联系???05BASE理论BASE理论是为了解决关系型数据库强一致性引2205熟悉的MySQL基础架构①DistributedReplicatedBlock

Device②MySQL

Replication③MySQLGroup

Replication④MySQLInnodb

Cluster⑤MySQLNDB

Cluster⑥MasterMasterMySQL⑦MasterHigh

Availability⑧GaleraClusterfor

MySQL⑨PerconaXtradb

ClusterDRBD、MR、MGR、MIC、MNC、MMM、MHA、MGC、PXC、PhxSQL、AliSQL、DRDS…你能说出几种呢?05熟悉的MySQL基础架构①DistributedRe2305DRBD(DistributedReplicatedBlock

Device)构成要素DRBD模块包drbd84-utils、

kmod-drbd84物理/虚拟磁盘(存储)或者分区MySQL数据库(软件安装于本地)Corosync(集群通信)Pacemaker(资源管理)Crmsh(资源配置,用CRM交互工具实现)模式单主模式:典型的高可靠性集群方案双主模式:需要采用共享cluster文件系统,需要特别配置,drbd8.0之后版本DRBD(DistributedReplicatedBlock

Device),由内核模块及脚本组件构成,以组建高可用架构。实现方式,是用软件实现的、无共享的、服务器之间通过网络来镜像块设备内容的存储复制(

/dev/drbd0

),可以将DRBD理解为一种基于网络的RAID105DRBD(DistributedReplicated2405DRBD(DistributedReplicatedBlock

Device)优势架构简单,同步模式下,保证数据的强一致性无单点故障实现高可用无集群脑裂(Corosync+Pacemaker来自第三方)劣势主机资源未充分利用无法取代备份05DRBD(DistributedReplicated2505MR(MySQLReplication

)ABABC1. 经典复制架构,1对1…AB…2. 级联复制3. 经典复制架构,1对多05MR(MySQLReplication)ABABC2605MR(MySQLReplication

)4. 双主复制AB…AB5. 双主级联复制ABC6. 双主循环复制05MR(MySQLReplication)4. 双主2705MR(MySQLReplication

)AB…7. 多源复制C05MR(MySQLReplication)AB…7.2805MR(MySQLReplication

)优势架构简单,无单点故障确保高可用技术门槛低,运维简单查询类业务可实现负载均衡,分担主节点压力劣势写业务扩展性较差不支持同步复制,数据强一致性较差05MR(MySQLReplication)优势2905MR(MySQLReplication

)async(Asynchronous

Replication,异步)MySQL复制中传输日志的一种模式,叫做异步复制,MySQL默认支持的就是这种模式,最为通用,在不影响主库性能的前提下尽可能地保证数据的安全。主库在执行完一些事务后,不知道备库的进度。如果备库落后,并且此时主库又出现Crash(例如宕机),这时备库中的数据就是不完整的。semi-sync(SemisynchronousReplication,半同步)跟async一样,是MySQL复制中传输日志的另外一种模式,叫半同步复制,仅保证事务已经传递到备库上,但是并不确保已经在备库上执行完成了。在MySQL5.5中引入并支持。在这种模式下数据的一致性得到最大保障,但会损失一定的写入性能。05MR(MySQLReplication)async3005MR(MySQLReplication

)异步复制05MR(MySQLReplication)异步复制3105MR(MySQLReplication

)半同步复制在经典的复制架构中,哪一种复制模式更适合用于部署自动化切换脚本呢?05MR(MySQLReplication)半同步复制3205MR(MySQLReplication

)利用该架构如何实现对前端的透明?如何实现高可用?常用的负载均衡器有哪些?Load

BalancerMySQLRouterMySQL

ProxyProxySQLLVSKeepAlivedHAproxyNginxAtlas05MR(MySQLReplication)利用该架构3305MMM(

MasterMasterMySQL)05MMM(MasterMasterMySQL)3405MMM(

MasterMasterMySQL)优势存在双主节点,没有主机宕机后的选主问题,直接切换即可架构比较简单,使用原生半同步复制作为数据同步的依据劣势完全依赖于半同步复制,如果半同步复制退化为异步复制,数据一致性无法得到保证需要额外考虑HAProxy、Keepalived的高可用机制至少3个节点05MMM(MasterMasterMySQL)优势3505MHA(

MasterHighAvailability)05MHA(MasterHighAvailabilit3605MHA(

MasterHighAvailability)05MHA(MasterHighAvailabilit3705MHA(

MasterHighAvailability)优势故障自动检测和转移扩展性较好,根据需要扩展MySQL的节点数量和结构相比于双节点的MySQL复制,三节点/多节点的MySQL发生不可用的概率更低master

crash

不会导致主从数据不一致由Perl语言开发的开源工具劣势至少需要3个节点,相对于双节点需要更多的资源逻辑较为复杂,发生故障后排查问题,定位问题更加困难可能因为网络分区发生脑裂现象需要基于SSH免认证配置,存在一定的安全隐患需要编写脚本或利用第三方工具来实现VIP的配置05MHA(MasterHighAvailabilit3805MGR(MySQLGroup

Replication)Ref:/doc/refman/5.7/en/group-replication-summary.html了解一规则:分布式先提交获胜规则由MySQL基于Paxos所开发的,基本复制理念05MGR(MySQLGroupReplication)3905MGR(MySQLGroup

Replication)单主模式05MGR(MySQLGroupReplication)4005MGR(MySQLGroup

Replication)单主模式05MGR(MySQLGroupReplication)4105MGR(MySQLGroup

Replication)多主同步模式05MGR(MySQLGroupReplication)4205MGR(MySQLGroup

Replication)多主同步模式05MGR(MySQLGroupReplication)4305MGR(MySQLGroup

Replication)(N / 2 + 1)高容错度05MGR(MySQLGroupReplication)4405MGR(MySQLGroup

Replication)优势单主模式,查询类业务可实现负载均衡,分担主节点压力,无延迟复制,能保证数据强一致性多主模式,多节点写入,无延迟复制,能保证数据强一致性数据一致性保障:确保集群中大部分节点收到日志多节点写入支持:多写模式下支持集群中的所有节点都可以写入Fault

Tolerance:

确保系统发生故障(包括脑裂)依然可用,双写对系统无影响劣势只支持Innodb存储引擎,且每张表一定要有一个主键目前一个MGR集群最多支持9个节点COMMIT可能会导致失败,类似于快照事务隔离级别的失败场景必须打开GTID特性,二进制日志格式必须设置为ROW,用于选主与write

set05MGR(MySQLGroupReplication)4505MNC(

MySQLNDBCluster)MySQL

Cluster是一个无共享的(shared-nothing)、分布式节点架构的存储方案,其目的是提供容错性和高性能。05MNC(MySQLNDBCluster)MySQ4605MNC(

MySQLNDBCluster)Data节点组内采用同步复制,以保证组内节点的数据一致性,通过两阶段提交协议实现A:我要提交了,发送事务给BB:我准备好了,并反馈给AA:好的没问题,你提交吧,发送指令给BB:我提交好了,并反馈给AA:报告该事务提交/回滚,继续进行下一个事务处理同步复制共需要4次消息传递,减慢响应时间,消耗部分性能,数据节点之间是走网络的,强烈建议MySQLCluster运行在千兆以上的局域网内。05MNC(MySQLNDBCluster)Data4705MNC(

MySQLNDBCluster)节点节点组分区数据副本05MNC(MySQLNDBCluster)节点4805MNC(

MySQLNDBCluster)配置冗余,实现Data节点高可用05MNC(MySQLNDBCluster)配置冗余4905MNC(

MySQLNDBCluster)DefiningNDB

Cluster

Data

Nodes(管理节点config.ini)[ndbddefault]NoOfReplicas=2ThedefaultvalueforNoOfReplicasis2.Thisistherecommendedvalueformostproduction

environments.ImportantWhilethemaximumpossiblevalueforthisparameteris4,settingNoOfReplicastoavaluegreaterthan2isnotsupportedin

production.WarningSettingNoOfReplicasto1meansthatthereisonlyasinglecopyofallClusterdata;inthiscase,thelossofasingledatanodecausestheclustertofailbecausetherearenoadditionalcopiesofthedatastoredbythat

node.Thevalueforthisparametermustdivideevenlyintothenumberofdatanodesinthecluster.Forexample,iftherearetwodatanodes,thenNoOfReplicasmustbeequaltoeither1or2,since2/3and2/4bothyieldfractionalvalues;iftherearefourdatanodes,thenNoOfReplicasmustbeequalto1,2,or

4.05MNC(MySQLNDBCluster)Defi5005MNC(

MySQLNDBCluster)05MNC(MySQLNDBCluster)5105MNC(

MySQLNDBCluster)优势可以实现数据的强一致性SQL操作效率高、响应快使用官方自带的组件,不依赖于第三方扩展性强,支持在线扩容劣势国内使用的较少配置复杂,需要使用到NDB存储引擎,与MySQL常规Innodb存储引擎存在一定的差异早期版本数据规模依赖于数据节点物理内存(索引字段数据必须加载在内存中)存在诸多限制,不支持外键05MNC(MySQLNDBCluster)优势52谢谢谢谢53技术创新,变革未来MySQL数据库技术体系介绍技术创新,变革未来MySQL数据库技术体系介绍5401

MySQL简介与主流分支版本01MySQL简介与主流分支版本5501MySQL

之父Michael“Monty”

Widenius1、开源MySQL数据库的创始成员2、MySQL

AB公司的首席技术官3、MySQL数据库第一行代码的作者4、MySQL数据库命名人5、MariaDB创始人兼首席技术官;6、独自完成撰写MySQL数据库服务器端95%的代码。MySQLMaxDBMariaDB01MySQL之父Michael“Monty”Wide5601MySQL

介绍1999成立MySQL

AB公司2000公布源码,采用GPL协议,正式进入开源世界2008.1.16Sun收购MySQL2019MySQL5.6MySQL5.7MySQL8.0(2016.8.25DMR、2018.4.8

GA)2005.10里程碑,发布MySQL5.0,奠定了迈向高性能数据库基础2009.4.20Oracle收购Sun(MySQL5.5)1979TcX

UNIREG1995Sun

Solaris01MySQL介绍1999成立MySQLAB2000公布5701MySQL

主流分支MySQLEnterprisePerconaServerMariaDBDrizzleMySQL官方MySQL号称最接近MySQLEnterprise发行版的产品XtraDBMonty团队迭代更干净、快速的MySQL不兼容MySQL01MySQL主流分支MySQLPerconaServ5801MySQL

行业前景01MySQL行业前景5901全球最大网站Top2001全球最大网站Top206001国内MySQL行业应用①

互联网行业数据库MySQL市场第一②

甲骨文公司的两款数据库(Oracle+MySQL)共占据着全世界的数据库市场份额的60%以上,在中国(Oracle+MySQL)的使用更占到80%左右③

中国前100个大企业/国有企业有99个以上使用Oracle为主MySQL为辅,中国前100个互联网行业公司有95%以上使用MySQL为主Oracle/NoSQL为辅④

MySQL数据库在互联网行业90%以上的使用比例,最典型的就是BAT了,近2年开始MySQL扩展到金融、通信、生产制造、快速消费品零售、物流运输、医疗、政府等行业01国内MySQL行业应用①互联网行业数据库MySQL市场6101MySQL

介绍Oracle

VS

MySQL

企业服务软件的开源与闭源之争01MySQL介绍OracleVSMySQL:企业6201MySQL

介绍Oracle

VS

MySQL

企业服务软件的开源与闭源之争Oracle:功能强大保障体系充分,MOS成熟度高BUG更新较快并发机制粒度细,并发高软件成本高运维成本依赖数据规模,小规模数据库运维成本远高于MySQL,大规模数据库运维成高低于MySQL。传统行业的霸主技术掌控度低MySQL:功能略有不足保障体系成熟度不如OracleBUG更新不如Oracle并发机制较粗,比Mongo类NoSQL要强,并发性总体不如Oracle软件成本低运维成本依赖数据规模,小规模数据库运维成本低于Oracle,大规模数据库运维成高低于Oracle。互联网行业技术掌控度高01MySQL介绍OracleVSMySQL:企业6302

浅谈MySQL架构02浅谈MySQL架构6405阿里去O的背景淘宝、阿里巴巴B2B和支付宝等公司,98%以上的软件系统和业务都是采用Oracle数据库提供数据服务07年开始阿里巴巴IT开销史无前例,有着国内之最的趋势,一度成为IBM、Oracle的中国标杆客户09年淘宝更是上了全球排名Top

N的大RAC集群,亚洲第一,有20个节点那么,问题来了,千万级甚至上亿的Oracle产品+服务无法支撑阿里发展的速度,howto

???①

传统的关系型数据库在扩展方面没一家解决得好的②

DB层已无法独自承载互联网社区业务的高速发展,架构开始受到重视③

由一家服务商绑定,风险高④

阿里选择MySQL背后主要考虑的是成本,以及开源可以定制05阿里去O的背景淘宝、阿里巴巴B2B和支付宝等公司,98%6505阿里去O的背景05阿里去O的背景6605阿里云POLARDB05阿里云POLARDB6705阿里云POLARDB05阿里云POLARDB6805熟悉的Oracle/MSSQL基础架构Oracle/MSSQL有哪些常用的架构呢?Oracle/MSSQL架构中不同节点如何保证数据的强一致性?那么,MySQL又有哪些常用的架构呢?05熟悉的Oracle/MSSQL基础架构Oracle/MS6905一个原则两个理论ACID原则CAP理论BASE理论05一个原则两个理论ACID原则7005ACID原则-RDBMS理论基础05ACID原则-RDBMS理论基础7105ACID原则-RDBMS理论基础ACID四大基本特性原子性(Atomicity):事务是不可分割的工作单位,事务中的操作要么都发生,要么都不发生。一致性(Consistency):事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性的核心一部分是靠原子性实现,另一部分是逻辑实现。隔离性(Isolation):事务在正确提交之前,不允许把事务对该数据的改变提供给任何其他事务。四大隔离级别,事务隔离级别越高,高并发场景下产生的问题就越少,同时付出的性能消耗也将越大。持久性(Durability):事务完成后,对数据库所作的更改便持久的保存在数据库中,并不会被回滚。MySQL默认REPEATABLE-READ:可重复读Oracle默认read

committed:读已提交05ACID原则-RDBMS理论基础ACID四大基本特性原子7205CAP理论CAP理论是指一个分布式系统不可能同时很好的满足强一致性(Consistency)、可用性(Availability)、分区容错性(Partition

tolerance)这3个要求,通常最多只能同时较好的满足其中的两个。强一致性系统在执行过某项操作后仍处于一致的状态。在分布式系统中,更新操作执行成功后所有的用户都应该读到最新的值,这样的系统被认为是具有强一致性的。等同于所有节点访问同一份最新的数据副本。可用性每一个操作总是能够在一定的时间内返回结果,一定时间指的是在可以容忍的范围内返回结果,结果可以是成功或者失败。在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求分区容错性指当出现网络分区的情况时(即系统中的一部分节点和其他节点进行通信)分离的系统也能够正常运行。理解为在存在网络分区的情况下,仍然可以接受请求。节点crash或者网络分片都不应该导致一个分布式系统停止服务。05CAP理论CAP理论是指一个分布式系统不可能同时很好的满7305CAP理论CA:单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强。CP:满足一致性,分区容错的系统,通常可用性不是特别高AP:满足可用性,分区容错性的系统,通常可能对一致性要求低05CAP理论CA:单点集群,满足一致性,可用性的系统,通常7405BASE理论BASE理论是为了解决关系型数据库强一致性引起的可用性降低而提出的解决方案。核心思想是即使无法做到强一致性,但应用可以采用适合的方式达到最终一致性。BASE理论来源于下列三个特征:基本可用(BasicallyAvailable)基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。在无法通讯时选择可用性。软状态(softstate)软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现。用镜像读代替强一致性读。最终一致性(Eventual

Consistency)最终一致性是指系统中所有数据副本经过一定时间后,最终能够达到一致的状态。弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。用异步方式确保完成数据更新。思考:BASE与CAP、ACID的区别和联系???05BASE理论BASE理论是为了解决关系型数据库强一致性引7505熟悉的MySQL基础架构①DistributedReplicatedBlock

Device②MySQL

Replication③MySQLGroup

Replication④MySQLInnodb

Cluster⑤MySQLNDB

Cluster⑥MasterMasterMySQL⑦MasterHigh

Availability⑧GaleraClusterfor

MySQL⑨PerconaXtradb

ClusterDRBD、MR、MGR、MIC、MNC、MMM、MHA、MGC、PXC、PhxSQL、AliSQL、DRDS…你能说出几种呢?05熟悉的MySQL基础架构①DistributedRe7605DRBD(DistributedReplicatedBlock

Device)构成要素DRBD模块包drbd84-utils、

kmod-drbd84物理/虚拟磁盘(存储)或者分区MySQL数据库(软件安装于本地)Corosync(集群通信)Pacemaker(资源管理)Crmsh(资源配置,用CRM交互工具实现)模式单主模式:典型的高可靠性集群方案双主模式:需要采用共享cluster文件系统,需要特别配置,drbd8.0之后版本DRBD(DistributedReplicatedBlock

Device),由内核模块及脚本组件构成,以组建高可用架构。实现方式,是用软件实现的、无共享的、服务器之间通过网络来镜像块设备内容的存储复制(

/dev/drbd0

),可以将DRBD理解为一种基于网络的RAID105DRBD(DistributedReplicated7705DRBD(DistributedReplicatedBlock

Device)优势架构简单,同步模式下,保证数据的强一致性无单点故障实现高可用无集群脑裂(Corosync+Pacemaker来自第三方)劣势主机资源未充分利用无法取代备份05DRBD(DistributedReplicated7805MR(MySQLReplication

)ABABC1. 经典复制架构,1对1…AB…2. 级联复制3. 经典复制架构,1对多05MR(MySQLReplication)ABABC7905MR(MySQLReplication

)4. 双主复制AB…AB5. 双主级联复制ABC6. 双主循环复制05MR(MySQLReplication)4. 双主8005MR(MySQLReplication

)AB…7. 多源复制C05MR(MySQLReplication)AB…7.8105MR(MySQLReplication

)优势架构简单,无单点故障确保高可用技术门槛低,运维简单查询类业务可实现负载均衡,分担主节点压力劣势写业务扩展性较差不支持同步复制,数据强一致性较差05MR(MySQLReplication)优势8205MR(MySQLReplication

)async(Asynchronous

Replication,异步)MySQL复制中传输日志的一种模式,叫做异步复制,MySQL默认支持的就是这种模式,最为通用,在不影响主库性能的前提下尽可能地保证数据的安全。主库在执行完一些事务后,不知道备库的进度。如果备库落后,并且此时主库又出现Crash(例如宕机),这时备库中的数据就是不完整的。semi-sync(SemisynchronousReplication,半同步)跟async一样,是MySQL复制中传输日志的另外一种模式,叫半同步复制,仅保证事务已经传递到备库上,但是并不确保已经在备库上执行完成了。在MySQL5.5中引入并支持。在这种模式下数据的一致性得到最大保障,但会损失一定的写入性能。05MR(MySQLReplication)async8305MR(MySQLReplication

)异步复制05MR(MySQLReplication)异步复制8405MR(MySQLReplication

)半同步复制在经典的复制架构中,哪一种复制模式更适合用于部署自动化切换脚本呢?05MR(MySQLReplication)半同步复制8505MR(MySQLReplication

)利用该架构如何实现对前端的透明?如何实现高可用?常用的负载均衡器有哪些?Load

BalancerMySQLRouterMySQL

ProxyProxySQLLVSKeepAlivedHAproxyNginxAtlas05MR(MySQLReplication)利用该架构8605MMM(

MasterMasterMySQL)05MMM(MasterMasterMySQL)8705MMM(

MasterMasterMySQL)优势存在双主节点,没有主机宕机后的选主问题,直接切换即可架构比较简单,使用原生半同步复制作为数据同步的依据劣势完全依赖于半同步复制,如果半同步复制退化为异步复制,数据一致性无法得到保证需要额外考虑HAProxy、Keepalived的高可用机制至少3个节点05MMM(MasterMasterMySQL)优势8805MHA(

MasterHighAvailability)05MHA(MasterHighAvailabilit8905MHA(

MasterHighAvailability)05MHA(MasterHighAvailabilit9005MHA(

MasterHighAvailability)优势故障自动检测和转移扩展性较好,根据需要扩展MySQL的节点数量和结构相比于双节点的MySQL复制,三节点/多节点的MySQL发生不可用的概率更低master

crash

不会导致主从数据不一致由Perl语言开发的开源工具劣势至少需要3个节点,相对于双节点需要更多的资源逻辑较为复杂,发生故障后排查问题,定位问题更加困难可能因为网络分区发生脑裂现象需要基于SSH免认证配置,存在一定的安全隐患需要编写脚本或利用第三方工具来实现VIP的配置05MHA(MasterHighAvailabilit9105MGR(MySQLGroup

Replication)Ref:/doc/refman/5.7/en/group-replication-summary.html了解一规则:分布式先提交获胜规则由MySQL基于Paxos所开发的,基本复制理念05MGR(MySQLGroupReplication)9205MGR(MySQLGroup

Replication)单主模式05MGR(MySQLGroupReplication)9305MGR(MySQLGroup

Replication)单主模式05MGR(MySQLGroupReplication)9405MGR(MySQLGroup

Replication)多主同步模式05MGR(MySQLGroupReplication)9505MGR(MySQLGroup

Replication)多主同步模式05MGR(MySQLGroupReplication)9605MGR(MySQLGroup

Replication)(N / 2 + 1)高容错度05MGR(MySQLGroupReplication)9705MGR(MySQLGroup

Replication)优势单主模式,查询类业务可实现负载均衡,分担主节点压力,无延迟复制,能保证数据强一致性多主模式,多节点写入,无延迟复制,能保证数据强一致性数据一致性保障:确保集群中大部分节点收到日志多节点写入支持:多写模式下支持集群中的所有节点都可以写入Fault

Tolerance:

确保系统发生故障(包括脑裂)依然可用,双写对系统无影响劣势只支持Innodb存储引擎,且每张表一定要有一个主键目前一个MGR集群最多支持9个节点COMMIT可能会导致失败,类似于快照事务隔离级别的失败场景必须打开GTID特性,二进制日志格式必须设置为ROW,用于选主与write

set05MGR(MySQLGroupReplication)9805MNC(

MySQL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论