oracle数据库集群 数据库集群是什么意思
大家好,关于oracle数据库集群很多朋友都还不太明白,今天小编就来为大家分享关于数据库集群是什么意思的知识,希望对各位有所帮助!
什么是数据库集群
集群主要分成三大类(高可用集群,负载均衡集群,科学计算集群)
高可用集群( High Availability Cluster)
负载均衡集群(Load Balance Cluster)
科学计算集群(High Performance Computing Cluster)
1、高可用集群(High Availability Cluster)
常见的就是2个节点做成的HA集群,有很多通俗的不科学的名称,比如”双机热备”,“双机互备”,“双机”。高可用集群解决的是保障用户的应用程序持续对外提供服务的能力。(请注意高可用集群既不是用来保护业务数据的,保护的是用户的业务程序对外不间断提供服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度)。
2、负载均衡集群(Load Balance Cluster)
负载均衡系统:集群中所有的节点都处于活动状态,它们分摊系统的工作负载。一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。
负载均衡集群一般用于相应网络请求的网页服务器,数据库服务器。这种集群可以在接到请求时,检查接受请求较少,不繁忙的服务器,并把请求转到这些服务器上。从检查其他服务器状态这一点上看,负载均衡和容错集群很接近,不同之处是数量上更多。
3、科学计算集群(High Performance Computing Cluster)
高性能计算(High Perfermance Computing)集群,简称HPC集群。这类集群致力于提供单个计算机所不能提供的强大的计算能力。
高性能计算分类:
3.1、高吞吐计算(High-throughput Computing)
有一类高性能计算,可以把它分成若干可以并行的子任务,而且各个子任务彼此间没有什么关联。象在家搜寻外星人( SETI@HOME– Search for Extraterrestrial Intelligence at Home)就是这一类型应用。
这一项目是利用Internet上的闲置的计算资源来搜寻外星人。SETI项目的服务器将一组数据和数据模式发给Internet上参加SETI的计算节点,计算节点在给定的数据上用给定的模式进行搜索,然后将搜索的结果发给服务器。服务器负责将从各个计算节点返回的数据汇集成完整的数据。因为这种类型应用的一个共同特征是在海量数据上搜索某些模式,所以把这类计算称为高吞吐计算。
所谓的Internet计算都属于这一类。按照 Flynn的分类,高吞吐计算属于SIMD(Single Instruction/Multiple Data)的范畴。
3.2、分布计算(Distributed Computing)
另一类计算刚好和高吞吐计算相反,它们虽然可以给分成若干并行的子任务,但是子任务间联系很紧密,需要大量的数据交换。按照Flynn的分类,分布式的高性能计算属于MIMD(Multiple Instruction/Multiple Data)的范畴。
下面说说这几种集群的应用场景:
高可用集群这里不多作说明。
想Dubbo是比较偏向于负载均衡集群,用过的猿友应该知道(不知道的可以自行了解一下),Dubbo同一个服务是可以有多个提供者的,当一个消费者过来,它要消费那个提供者,这里是有负载均衡机制在里面的。
搜索引擎Elasticsearch比较偏向于科学计算集群的分布计算。
而到这里,可能不少猿友都知道,集群的一些术语:集群容错、负载均衡。
我们以Dubbo为例:
集群容错(http://dubbo.io/User+Guide-zh.htm#UserGuide-zh-%E9%9B%86%E7%BE%A4%E5%AE%B9%E9%94%99)
Dubbo提供了这些容错策略:
集群容错模式:
可以自行扩展集群容错策略,参见:集群扩展
Failover Cluster
失败自动切换,当出现失败,重试其它服务器。(缺省)
通常用于读操作,但重试会带来更长延迟。
可通过retries="2"来设置重试次数(不含第一次)。
Failfast Cluster
快速失败,只发起一次调用,失败立即报错。
通常用于非幂等性的写操作,比如新增记录。
Failsafe Cluster
失败安全,出现异常时,直接忽略。
通常用于写入审计日志等操作。
Failback Cluster
失败自动恢复,后台记录失败请求,定时重发。
通常用于消息通知操作。
Forking Cluster
并行调用多个服务器,只要一个成功即返回。
通常用于实时性要求较高的读操作,但需要浪费更多服务资源。
可通过forks="2"来设置最大并行数。
Broadcast Cluster
广播调用所有提供者,逐个调用,任意一台报错则报错。(2.1.0开始支持)
通常用于通知所有提供者更新缓存或日志等本地资源信息。
负载均衡(http://dubbo.io/User+Guide-zh.htm#UserGuide-zh-%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1)
Dubbo提供了这些负载均衡策略:
Random LoadBalance
随机,按权重设置随机概率。
在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。
RoundRobin LoadBalance
轮循,按公约后的权重设置轮循比率。
存在慢的提供者累积请求问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。
LeastActive LoadBalance
最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差。
使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大。
ConsistentHash LoadBalance
一致性Hash,相同参数的请求总是发到同一提供者。
当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。
算法参见:http://en.wikipedia.org/wiki/Consistent_hashing。
缺省只对第一个参数Hash,如果要修改,请配置<dubbo:parameter key="hash.arguments" value="0,1"/>
缺省用160份虚拟节点,如果要修改,请配置<dubbo:parameter key="hash.nodes" value="320"/>
请问linux集群、oracle集群是什么技术
一、linux集群
Linux集群系统包括集群节点和集群管理器两部分。集群节点有时简称为节点、服务器或服务器节点,是提供处理资源的系统,它进行集群的实际工作。一般来讲,它必须进行配置才能成为集群的一部分,也必须运行集群的应用软件。应用软件可以是专用于集群的软件,也可以是设计用于分布式系统的标准软件。Linux集群管理器则是将节点捆绑在一起,以构成单一系统外观的逻辑结构,它用于将任务分解到所有的节点。
集群因多种不同的原因而有着不同的类型,建立Linux集群的最直接原因是共享CPU资源,在多个机器之间平衡负载,获得更多的系统可靠性,或在主机失败时提供后备系统(切换)。
通过对相关软件的分析,实现集群负载的功能是通过流量管理实现的,具体有以下几种实现方法:直接路由(Direct Forwarding)、网络地址转换(NAT)和隧道技术(Tunneling)。
直接路由(Direct Forwarding)是当参与集群的计算机和作为控制管理的计算机在同一个网段时可以使用此法。控制管理的计算机接收到请求包时,直接送到参与集群的节点。它的优点是返回给客户的流量不经过控制主机,速度快、开销少。
可能大家比较熟悉网络地址转换(NAT)这种方法。地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址,外界看起来包是来自地址转换器本身。当外界包送到转换器时,它能判断出应该将包送到内部网的哪个节点。它的优点是节省IP地址,能对内部进行伪装;缺点是效率低,因为返回给请求方的流量要经过转换器。
隧道技术(Tunneling)这种方式是Linux集群的节点不在同一个网段时采用的转发机制,是将IP包封装在其它网络流量中。从安全角度考虑,应该使用隧道技术中的VPN,也可使用租用专线。
Linux集群所能提供的服务是基于TCP/IP的Web服务、Mail服务、News服务、DNS服务和Proxy服务器等。
二、oracle集群
Oracle集群,最早称作OPS(Oracle Parallel Server)出现在Oracle 7版本中,从Oracle 9i开始正式改称为Oracle RAC,RAC即Real Application Clusters的简写,译为“真正应用集群”;RAC是Oracle新版数据库中采用的一项新技术,也是Oracle数据库支持网格计算环境的核心技术。
在Oracle RAC环境下,Oracle集成提供了集群软件和存储管理软件,为用户降低了应用成本。当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能。
数据库双机可以有两种不同的方式:双机热备份、双机集群。
双机热备份方式的集群完全通过操作系统的cluster软件来实现,在同一个时刻,只有一台机器对数据库作操作,当这台机器发生故障以后,由操作系统cluster将所有资源切换到两外一个节点,防止单节点数据库故障。
双机集群方式(RAC),在10g以后,通过ORACLE自身提供的CRS来实现集群的功能。在同一个时刻,所有的机器都对数据库作操作,当某台机器发生故障后,其他机器接管该机器的工作。这种方式不但能够防止单节点数据库故障,还能够实现负载均衡。因为两个机器对同一个数据库操作,因此数据库文件一般无法使用传统的文件系统方式存储。
数据库集群是什么意思
拿oracle为例:
集群是多台服务器共同提供服务,数据库集群的意思就是多台运行数据库服务的服务器组成一个集群。
oracle的集群,自己的是rac,最少需要2台机器,先装cluster或者grid,再在集群上安装数据库,就可以了。
要是db2的话,还得用ibm的操作系统,安装一个集群软件
hacmp等等的。
反正
核心要理解的就是
,做集群,要有集群系统来支撑。例如
,文件同步访问等等的。
rac,hacmp等等的,都属于集群系统!
好了,文章到这里就结束啦,如果本次分享的oracle数据库集群和数据库集群是什么意思问题对您有所帮助,还望关注下本站哦!