解决方案

力求专业与交互的完美契合,以规范的流程和专注的态度,为您提供全方位的技术服务。

解决方案

数据库集群高可用技术方案

1)Oracle RAC集群
RAC是一个完整的集群应用环境,它不仅实现了集群的功能,而且提供了运行在集群之上的应用程序,即Oracle数据库。无论与普通的HA相比,还是与普通的Oracle数据库相比,RAC都有一些独特之处:
多机并行:支持多台服务器共同对外提供完全相同的数据库服务
高可用性:高业务连续性,在一定程度上避免因为硬件或软件故障引起的数据丢失和非计划停机,最大程度的保护业务连续性
易伸缩性:通过添加服务器和存储设备来提升处理能力和存储空间
低成本:使用较廉价的x86服务器取代小型机取得相同的性能 
高吞吐量:使用多台服务器对外提供服务,可以提供更大的吞吐量
业务分离:不同业务类型可运行在不同服务器池中
负载均衡:均衡数据仓库/集市类应用,充分利用IO提升性能任何服务器故障,只要 集群中仍有可用服务器,数据库服务不会中断。
RAC数据库集群架构:
2)SQL Server AlwaysOn
SQL Server AlwaysOn 即“全面的高可用性和灾难恢复解决方案”。使用 AlwaysOn,可以提高应用程序可用性,并且通过简化高可用性 (HA) 部署和管理方面的工作,获得更好的硬件投资回报。
SQL Server AlwaysOn就是用Mirror的技术实现了Cluster的功能,主副本完全隔离,通过网络连接。
当用户在主库上提交事务时,事务日志在写到本地的同时,也写到其他副本库;
当主库完成日志写工作,就可以继续后续的工作,包括把脏数据写到本地库;
备库收到来主服务传送的日志后,在备库上进行Recovery,在备库上恢复数据,主备库数据保持一致;
当备库完成数据Recovery后,会通知主库,并返回同步信息给主服务器。

 
3)MySQL Cluster
MySQL Cluster是一个基于NDB Cluster存储引擎的完整的分布式数据库系统。不仅仅具有高可用性,而且可以自动切分数据,冗余数据等高级功能。和Oracle Real Cluster Application不太一样的是,MySQL Cluster 是一个Share Nothing的架构,各个MySQL Server之间并不共享任何数据,高度可扩展以及高度可用方面的突出表现是其最大的特色。
简单的说,MySQL Cluster 实际上是在无共享存储设备的情况下实现的一种完全分布式数据库系统,其主要通过 NDB Cluster(简称 NDB)存储引擎来实现。MySQL Cluster 刚刚诞生的时候可以说是一个可以对数据进行持久化的内存数据库,所有数据和索引都必须装载在内存中才能够正常运行,但是最新的 MySQL Cluster 版本已经可以做到仅仅将所有索引装载在内存中即可,实际的数据可以不用全部装载到内存中。
MySQL Cluster节点组成:
SQL 层的 SQL 服务器节点(后面简称为 SQL 节点)
也就是我们常说的MySQL Server。主要负责实现一个数据库在存储层之上的所有事情,比如连接管理,Query 优化和响应 ,Cache 管理等等,只有存储层的工作交给了NDB 数据节点去处理了。也就是说,在纯粹的MySQL Cluster 环境中的SQL 节点,可以被认为是一个不需要提供任何存储引擎的MySQL服务器,因为他的存储引擎有Cluster 环境中的NDB 节点来担任。所以,SQL 层各MySQL服务器的启动与普通的MySQL Server 启动也有一定的区别,必须要添加ndbcluster参数选项才行。我们可以添加在my.cnf配置文件中,也可以通过启动命令行来指定。
Storage 层的 NDB 数据节点;
NDB 节点主要是实现底层数据存储功能,来保存Cluster 的数据。每一个Cluster节点保存完整数据的一个fragment,也就是一个数据分片(或者一份完整的数据,视节点数目和配置而定),所以只要配置得当,MySQL Cluster在存储层不会出现单点的问题。一般来说,NDB 节点被组织成一个一个的NDB Group,一个 NDB Group实际上就是一组存有完全相同的物理数据的NDB节点群。
负责管理各个节点的 Manage 节点主机;
管理节点负责整个Cluster集群中各个节点的管理工作,包括集群的配置,启动关闭各节点,对各个节点进行常规维护,以及实施数据的备份恢复等。管理节点会获取整个Cluster环境中各节点的状态和错误信息,并且将各 Cluster 集群中各个节点的信息反馈给整个集群中其他的所有节点。由于管理节点上保存了整个Cluster 环境的配置,同时担任了集群中各节点的基本沟通工作,所以他必须是最先被启动的节点。
MySQL Cluster体系架构:

4)MyCat NoSQL高可用技术
云计算时代,传统数据库存在着先天性的弊端,但是NoSQL数据库又无法将其替代。如果传统数据易于扩展,可切分,就可以避免单机(单库)的性能缺陷。MyCat的目标就是:低成本地将现有的单机数据库和应用平滑迁移到“云”端,解决数据存储和业务规模迅速增长情况下的数据瓶颈问题。
MyCat发展到目前的版本,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL等主流数据库,也支持MongoDB这种新型NoSQL方式的存储,未来还会支持更多类型的存储。而在最终用户看来,无论是那种存储方式,在MyCat里,都是一个传统的数据库表,支持标准的SQL语句进行数据的操作,这样一来,对前端业务系统来说,可以大幅降低开发难度,提升开发速度。
Mycat 体系架构
 
Mycat 特性
支持 SQL 92标准;
支持MySQL集群,可以作为Proxy使用。
支持JDBC连接ORACLE、DB2、SQL Server,将其模拟为MySQL Server使用
自动故障切换,高可用性;
支持读写分离,支持MySQL双主多从,以及一主多从的模式;
支持全局表,数据自动分片到多个节点,用于高效表关联查询;
支持独有的基于E-R 关系的分片策略,实现了高效的表关联查询;
多平台支持,部署和实施简单



Copyright © 2002-2017 富璟科技(深圳)有限公司 All Rights Reserved 备案号:粤ICP备17024733号-1