首页 课程 师资 教程 报名

动力节点Java数据库视频资源分享

  • 2020-01-06 15:43:16
  • 2964次 动力节点


  分析数据库架构方案的几个视角用发生故障时的高可用性、切换后的数据一致性和扩展性。每个产品都还有自己独特的优势和功能,这里不一定会提到。


  2. Oracle数据库的架构方案


  ORACLE数据库既能跑OLTP业务,也能跑OLAP业务,能力是商业数据库中数一数二的。支持IBM小机和x86 PC服务器,支持多种OS。同时有多种数据库架构方案供选择,成本收益风险也各不相同。


  A. IBM AIX HACMP + ORACLE9I + EMC


动力节点Java数据库视频资源分享


  架构说明:


  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

动力节点Java数据库视频资源分享


  架构说明:


  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


动力节点Java数据库视频资源分享

  架构说明:


  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)


动力节点Java数据库视频资源分享


  架构说明:


  1. 使用MySQL Master-Master架构,双向同步,Slave只读。


  2. 使用Zookeeper集群做实例不可用监测和防止脑裂。


  功能:


  1. 高可用:Master实例不可用后,将Slave激活。可用性优先。如果Slave延时超出一定阀值,放弃切换。zk集群三节点部署,可以防止脑裂。


  2. 数据一致性:为尽可能少的减少数据丢失,推荐开启单向半同步技术。同时在老Master恢复后会尽可能的弥补未及时同步到新Master的数据。由于同步依赖Binlog,理论上也是无法保证主从数据绝对一致。


  3. 扩展性:可以做读写分离,可以新增slave扩展读服务能力。


  B. MHA (Master High Availability)


动力节点Java数据库视频资源分享



  架构说明:


  1. 从MySQL主从同步架构衍生出来的,使用半同步技术,所以至少有两个从实例(Slave)。所以整体架构为一主两从,两个从库不是级联关系。


  功能:


  1. 高可用:Master不可用时,自动从两个Slave里选出包含Binlog最多的Slave,并提升为Master。同时更改另外一个Slave的Master为新的Master。Master异常时,Slave上的拉取的Binlog如果有丢失(master或者slave故障时),很容易出现复制中断,因此这种高可用机制并不总是有效。


  2. 数据一致性:为了尽可能少的丢失Binlog,主从同步推荐使用半同步技术。在网络异常的情况下,半同步有可能降级为异步同步。MHA只是尽最大程度保证数据不丢失。且由于同步依赖的是Binlog,主从的数据理论上也并不能保证严格一致。


  3. 扩展性:可以提供读写分离服务,可以新增slave节点扩展读服务能力。


  C. Alipay的OceanBase


  OceanBase的设计思路跟Spanner类似,但在SQL、存储、事务方面都有自己的创新。


动力节点Java数据库视频资源分享


  架构说明:


  1. 目前版本计算和存储都集中在一个节点上(PC,OBServer)上,单进程程序,进程包括SQL引擎和存储引擎功能。


  2. 表数据存在一个或多个分区(使用分区表),需要业务指定分区规则。分区是数据迁移和高可用的最小单位。分区之间的一致性是通过MultiPaxos保证。


  3. 支持分布式事务、2.x版本支持全局一致性快照。支持全局一致性备份。


  4. 兼容MySQL主要用法和Oracle标准SQL用法,目前正在逐步兼容Oracle更多功能。如存储过程、游标和Package等。目标是兼容Oracle常用功能以实现去IOE时应用不修改代码的目标。


  5. 有多租户管理能力,租户弹性扩容,租户之间有一定资源隔离机制。


  6. 应用可以通过一个反向代理obproxy或者ob提供的connector-java访问OceanBase集群。


  跟Spanner的关系和区别:


  1. Spanner大概2008年开始研发,2012年通过论文对外公开。首次跨地域实现水平扩展,并基于普通PC服务器实现自动高可用和数据强一致。OceanBase在2010年开始立项研发,也是基于普通PC服务器,发展出自己独特的ACID特性和高可用技术以及拆分技术。


  2. Spanner对标准SQL支持不好,不是真正的关系型数据库,定位于内部应用。OceanBase定位于通用的分布式关系型数据库,支持标准SQL和关系模型。基本兼容MySQL功能,逐步兼容Oracle功能。


  3. Spanner借助原子钟硬件和TrueTime设计支持全局一致性快照,提供快照读隔离级别,对节点间网络延时要求比较高。OceanBase使用软件提供全局时间服务,实现了全局一致性快照功能。


  4. Spanner的内部诊断跟踪机制很欠缺,OceanBase的内部诊断分析机制功能很完善,是瞄准商业软件标准去做的。


  功能:


  1. 扩展性:租户和集群的弹性伸缩非常方便,可以在线进行,对业务写影响可控。可以用于两地三中心异地容灾和多活(结合业务做单元化设计)。


  2. 可用性:单个或多个observer不可用时,只要分区的绝大部分成员存活,则可以迅速选举恢复服务(RTO=20s)。


  3. 数据一致性:故障恢复后,数据库数据绝对不丢。RPO=0。


  数据库相关教程免费下载


  数据库mysql教程:http://www.bjpowernode.com/v21/


  oracle数据库教程:http://www.bjpowernode.com/v22/


  数据库plsql教程:http://www.bjpowernode.com/v23/


  jdbc数据库教程:http://www.bjpowernode.com/v24/


动力节点Java数据库视频资源分享


       以上就是动力节点Java培训机构小编介绍的“动力节点Java数据库视频资源分享”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。


       相关文章


  零基础怎么自学Java,完整版Java学习路线图


  你还在纠结学Java,是自学还是去培训班吗


  一个标准的Java程序员如何进阶?


  Java学习路线清单,快速进阶Java


  Java编程初学者要如何进阶


选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交