oracle RAC和HA的原理和异同_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2039 | 回复: 0   主题: oracle RAC和HA的原理和异同        下一篇 
gang
注册用户
等级:上等兵
经验:142
发帖:79
精华:0
注册:2011-12-30
状态:离线
发送短消息息给gang 加好友    发送短消息息给gang 发消息
发表于: IP:您无权察看 2015-6-16 14:24:14 | [全部帖] [楼主帖] 楼主

 HA是High Availability的简称,即高可用性,在数据库应用上通常的高可用性是指广义的,应该是一种概念和模式而不是一种具体技术或者实现方式。
简单来说,HA是让系统尽可能持续运行而不会中断的技术,包括软件的高可用,硬件的高可用,网络的高可用等等。

具体实现的方案包括操作系统的集群,数据库的集群,硬件的冗余,网络的冗余等等。

就oracle 高可用性来说实现方式有:高级复制(Advance Repication)、OPS/RAC(Real Application Cluster)、数据卫士(Data Guard)、oracle流(Oracle Streams)、oracle GG(GoldenGate)以及狭义上的HA即双机热备等等,本文所指的HA即为狭义上的HA(双机热备或者多机热备)。 

实现原理: 

oracle RAC,全称real application clusters,译为“实时应用集群”,由2台或以上具有相同硬件和软件配置的服务器(通常是性能比较高的机器,可以是微机、小机或者更高级别的机器)通过光纤连接到共享存储,节点之间一般也通过光纤实现互连和通信。

通过RAC软件(三方的或者是oracle自己的cluster软件)将所有节点在逻辑上构成一个群集,即一个数据库对应多个实例,各个节点通过各自public ip同时对外提供服务,通过private ip进行内部通信(如心跳判断等),在通过缓存融合技术将所有节点的数据库缓存虚拟成一个整体,数据在虚拟的缓存中为各个节点提供一致性访问,在保证各个节点访问到数据的一致性的同时又充分利用了所有节点的cpu资源。从整体上来看,RAC对外提供单台服务器的N倍内存和N倍cpu资源的数据处理服务,只要整个RAC中还有一个节点未宕机,整个数据库就能持续对外提供服务。

 oracle HA,即狭义上的双机热备,一般由两台具有相同硬件和软件配置的服务器,通过光纤连接到共享存储以及各个节点之间的通信,通过操作系统的群集软件或者其他三方双机切换软件组成逻辑上的整体。在某一时刻,群集中只能有一个节点作为主服务节点能访问共享存储并提供对外服务。当主服务节点宕机,群集软件将其他节点切换为主服务节点,保证最大限度的降低整体的服务中断时间。原则上只要群集中还有一个节点未宕机,整个数据库还能对外提供服务,但是由于节点之间的切换和接管会造成整体出现短暂的服务中断。

 同样做为高可用性具体实现技术的HA和RAC,既有共同性又有差异性,以下就分别从这两方面进行比较:

 相同点: 

首先在目的上,HA和RAC都是为了尽可能保证数据库能持续运行而不间断或者最大程度缩短宕机时间,从而最大程度减少或者降低企业的损失。 

其次在硬件上,无论是HA还是RAC都使用共享存储来存储数据,都是通过多台具有相同硬件结构的机器构成一个群集,各个机器和存储之间都使用光纤进行通信,每台机器都需要2个或者2个以上的网卡分别用于提供public和private连接,在IO上都要受到共享存储IO的限制。 在软件上HA和RAC环境中的所有机器都要装相同的操作系统(可以是Windows、Linux、Unix或者是AIX等等),相同版本的oracle软件和补丁等等。 

差异性:

 rac中每个节点都有自己实例,自己undo表空间,自己的一套redo文件,自己的SGA,共享控制文件和其他数据文件;而HA每个节点都有自己的实例,共享redo文件,undo表空间和控制文件和其他数据文件。 在同一时刻,RAC 的所有节点都能分别对外提供服务,如果设置了负载均衡,群集软件还能根据各个节点的负载情况选择负载最小的节点为新的请求提供服务;而HA在同一时刻只能有一个节点对外提供服务,即使是群集中的其他节点都未发生宕机也是如此。

 rac环境中,只要存在一个节点未宕机,则整体仍能持续对外提供服务,不会出现服务中断的情况;而HA原则上虽然只要存在一个节点未宕机,群集仍能将其切换为主服务节点,但是切换服务的过程由于群集软件的切换操作和节点的接管操作会造成短时间的服务中断。 

在同一时刻,HA对外所能提供的最大IO为共享存储的IO,最大的内存和cpu资源均为当前主服务节点的资源;而在同一时刻rac对外所能提供的最大IO为共享存储的IO,最大内存和cpu资源为当前活着的节点的总和,在数据处理并发服务方面比HA有了硬件上的绝对优势。 

结论: 在至少有一个节点存活的基础上,rac能持续对外提供服务,而HA可能会出现短暂的服务中断,因此rac在持续服务方面要优于HA; 由于在同一时刻rac能通过所以节点对外提供服务而HA只能由主服务节点提供对外服务,因此在并发服务和硬件资源上rac要明显优于HA; 由于rac还需要rac软件的license,而且一般rac的节点会比HA多,硬件资源配置一般也比较高,所以在成本投入方面rac要比HA高; 由于rac需要在多个节点之间进行数据同步和通信,原理和构成比HA更复杂,因此在维护性方面rac要比HA更复杂,一旦出现问题,需要投入更多的资源。

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论