措施员必备!相关型数据库架构的超强总结
副问题[/!--empirenews.page--]
1. 媒介 本文总结一下打仗过的相关型数据库常用的几种架构及其演进汗青。 说明数据库架构方案的几个视角用产生妨碍时的高可用性、切换后的数据同等性和扩展性。每个产物都尚有本身奇异的上风和成果,这里不必然会提到。 2. Oracle数据库的架构方案ORACLE数据库既能跑OLTP营业,也能跑OLAP营业,手段是贸易数据库中数一数二的。支持IBM小机和x86 PC处事器,支持多种OS。同时有多种数据库架构方案供选择,本钱收益风险也各不沟通。 A. IBM AIX HACMP + ORACLE9I + EMC ![]() 图 1 :IBM AIX HACMP + ORACLE9I + EMC 架构声名: 1. 两台IBM AIX A和B。AIX A运行Oracle Primary实例,AIX B分出部门资源假造一个OS C,运行Oracle Standby实例。AIX B剩余大部门资源空闲,用于将来起其它一个OraclePrimary实例。 2. 两台存储(EMC只是举例)A和B,别离直连两台AIX A和B。存储A存放Primary实例的日记和数据,也存放Standby实例的Redo(图中未画出,只有在脚色未Primary时有用)。存储B存放Standby实例的日记和数据,也存放Primary实例的Redo文件。 3. AIX也可以换平凡的x86_64 PC处事器,HACMP换为支持linux的集群软件。如Veritas HA。 成果: 1. 高可用:Oracle Primary实例不行用时,HACMP起用AIX B上的Oracle Primary实例。存储A不行用时,将AIX C上Standby实例Failover为Primary实例。 2. 数据同等性:Redo文件在两个存储上都有保存,Standby实例在Failover之前应用Primary的Redo,理论上纵然是Failover也不丢数据。 3. 扩展性:数据库机能由主机aix和存储手段抉择,都可以向上扩展,本钱会陡升,且有上限。 B. x86 + ORACLE RAC + EMC ![]() 架构声名: 1. 两台主机A和B可所以AIX,也可所以x86_64平凡PC处事器,互相收集直连,同时毗连共享的存储EMCA,A和B别离运行一个RAC Primary实例。 2. 主机C可所以AIX或x86_64平凡PC处事器,直连其它一个存储B,运行Standby实例。也有的架构会有多个Standby实例,个中一个Standby实例也是RAC。 成果: 1. 高可用:Oracle RACPrimary实例无论哪个不行用,其它一个都可以自动经受处事。假如Primary实例的存储A不行用,则将Standby实例Failover为Primary实例。 2. 数据同等性:假如Primary实例也将一组Redo 成员输出到B存储,则理论上可以绝对不丢数据。不然,极度环境下,Failover也许会由于穷乏Primary的事宜日记而失败,此时直接激活Standby实例为Primary实例,也许会丢失少量数据。 3. 扩展性:数据库计较手段不敷可以程度扩展(添加RAC节点),存储手段不敷可以向上扩展(存储扩容)。 C. Oracle Dataguard 共享Redo ![]() 架构声名: 1. 平凡x86处事器A和B,别离运行Oracle的Primary和Standby实例。互相收集直连,同时毗连一个共享存储。 2. Primary和Standby实例的Redo和节制文件、spfile都放在共享存储上,以是占用空间很是小。数据文件放在本机上,凡是是高速存储(如SSD可能PCIE接口的Flash装备)。 成果: 1. 高可用:当Primary实例不行用时,将Standby实例Failover为Primary实例。假如共享存储不行用,则两个实例都不行用。凡是会有第三个Standby实例。 2. 数据同等性:Standby实例在Failover之前应用Primary实例的Redo文件,不丢出事宜日记,数据强同等。 3. 扩展性:无。 3. MySQL数据库的架构方案A. ADHA (Alibaba Database High Availability) ![]() 架构声名: 1. 行使MySQL Master-Master架构,双向同步,Slave只读。 2. 行使Zookeeper集群做实例不行用监测和防备脑裂。 成果: 1. 高可用:Master实例不行用后,将Slave激活。可用性优先。假如Slave延时超出必然阀值,放弃切换。zk集群三节点陈设,可以防备脑裂。 2. 数据同等性:为尽也许少的镌汰数据丢失,保举开启单向半同步技能。同时在老Master规复后会尽也许的补充未实时同步到新Master的数据。因为同步依靠Binlog,理论上也是无法担保主从数据绝对同等。 3. 扩展性:可以做读写疏散,可以新增slave扩展读处事手段。 B. MHA (Master High Availability) ![]() 架构声名: 1. 从MySQL主从同步架构衍生出来的,行使半同步技能,以是至少有两个从实例(Slave)。以是整体架构为一主两从,两个从库不是级联相关。 成果: 1. 高可用:Master不行用时,自动从两个Slave里选出包括Binlog最多的Slave,并晋升为Master。同时变动其它一个Slave的Master为新的Master。Master非常时,Slave上的拉取的Binlog假若有丢失(master可能slave妨碍时),很轻易呈现复制间断,因此这种高可用机制并不老是有用。 2. 数据同等性:为了尽也许少的丢失Binlog,主从同步保举行使半同步技能。在收集非常的环境下,半同步有也许降级为异步同步。MHA只是尽最洪流平担保数据不丢失。且因为同步依靠的是Binlog,主从的数据理论上也并不能担保严酷同等。 3. 扩展性:可以提供读写疏散处事,可以新增slave节点扩展读处事手段。 C. PXC (Percona XtraDB Cluster) ![]() 架构声名: 1. 可以两个节点,保举三个节点(防脑裂),构成一个Cluster。三节点同时提供读写处事。数据是独立的三份,不是共享存储。 2. 事宜提交是同步复制,在全部从节点都同步提交。 成果: 1. 高可用:三节点同时提供读写处事,挂恣意一个节点都没有影响。 2. 数据同等性:数据强同步到全部节点,不丢数据。要求有主键,某些SQL不支持同步。 3. 扩展性:事宜提交是同步复制,机能受限于最差的谁人节点。 4. 其他:多主复制,但不能同时写统一行数据(乐观锁,会报死锁类错误)。其它,有写放大破绽。 4. 漫衍式数据库中间件的架构方案A. 漫衍式数据库DRDS ![]() 架构声名: 1. DRDS Server节点是一组无状态的措施,相应SQL哀求并做分库分表路由转换和SQL改写、聚合计较等。支持库和表两级维度拆分,支持多种机动的拆分计策,支持漫衍式事宜。 2. MySQL节点首要是存储数据、主备双向同步架构,外加MySQL的PaaS平台提供高可用切换、自动化运维手段。 3. 环绕这个架构的尚稀有据同步组件(精卫),实现小表广播、异构索引表等手段。 4. 该架构最新版本在只读实例基本上实现了MPP并行计较引擎,支持部门OLAP查询场景。 成果: 1. 高可用:计较节点(DRDS Server节点)的高可用通过前端负载平衡装备实现,存储节点(MySQL)的高可用靠ADHA实现。RTO在40s阁下,RPO>=0。 2. 数据同等性:MySQL主备同步是半同步可能异步。ADHA最大也许的低落MySQL妨碍切换时的主备纷歧致概率,理论上无法担保绝对强同等,RPO>=0。 3. 扩展性:计较和存储节点都可以别离扩容。存储的扩容通过MySQL实例的增进以及数据的迁徙和重漫衍等。 4. 运维:妨碍时,主备强切后,会有必然概率呈现主备同步由于数据纷歧致而间断。 B. 漫衍式数据库TDSQL ![]() 架构声名: 1. 计较节点:由一组无状态的网枢纽点构成,认真SQL路由、MySQL主妨碍时的路由切换等。 2. 调治体系:用zk集群做元数据打点、监测妨碍和做数据库妨碍切换、弹性伸缩使命等。 3. 存储节点:MySQL主备架构,一主两从,做强同步可能异步同步。 4. 支持全时态数据模子 成果: 1. 高可用:网关前端展望也有负载平衡,MySQL主备切换依靠zk判定,RTO在40s阁下 2. 数据同等性:一主两备行使强同步的时辰,根基可以担保RPO=0. 假如是异步,也许切换时会有耽误。 3. 扩展性:通过晋升网关手段可能个数来晋升计较手段,增进MySQL节点数然后调解数据漫衍来晋升计较和存储手段。 4. 运维:非常时,也许呈现主备因为数据纷歧致导致同步处事间断,必要修复。 C. 漫衍式数据库 GoldenDB ![]() 架构上也是分库分表,跟DRDS道理基内情同。 D. 漫衍式数据库 MyCat ![]() 架构道理和成果跟前面两类基内情同。底层存储节点还支持Oracle和Hive。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |