技术开发 频道

详解Oracle中的Services

    【技术开发 技术文章

    1、传统工作量的分配

    在标准环境还总,不同sizes的独立的计算单元被永久的分配的不同的应用中,例如人力资源、数据仓库、客户关系管理和批发零售。

    这些计算单元需要对其高峰工作量进行评估测量。如果高峰工作量只发生在几个小时之内,则可能有大量的时间资源处于idle的状态。

    2、网格工作量的分配

    在网格计算中,提供了一个计算单元的全局池,不同的计算单元可以被临时的分配到特定的应用中。计算单元可以在应用中进行动态的交换。例如,在business较多时,更多的单元可以被用于CRM(客户关系管理)应用中,business高峰期过去后,CRM占用的一些单元就可以被转移到批发零售应用中。

    网格计算使不用的资源减到最小。这意味着使用网格技术的环境总体开销要少于不使用网格技术的环境。

    3、什么是Service

    Service的概念是在oracle 8i中被引入,意味着listener在cluster中的各个nodes和Instances中做链接的工作量均衡。但随后,Service的概念、定义和实施被戏剧性的延伸了。Services是一个工作量管理的特性,它从总体上组织在Database中的工作执行,从而提高工作的可管理性、可测量性、可协调性和可恢复性。一个Service是Database中一组相关任务的组合体,有共同的功能和预期目标,相对其他Service,也有共同的相对优先级。Service的概念为single Instance中运行的应用管理竞争的单系统提供与多个Instance和Database的镜像。

    通过使用标准接口Services,例如DBCA、企业管理器、SRVCTL,可以被配置、管理、enabled、disabled,并以单独的实体进行测量。

    Services 提供可用性。当发生中断后,一个Service可以自动的通过其他正常的Instances获得恢复。

    Services提供了性能调节的新的粒度。在Services环境中,工作量是可见并可衡量的。在主要的系统中,sessions是匿名并共享的,通过“Service和SQL”的调节取代了通过“session和SQL”的调节

    当工作量增加时,一个Service可占用的Instances的数量是可以动态增加的,并且当工作量减少时,也可以收缩。这种资源的动态调配使得需求按照成本效益的方法得到满足。

    4、RAC中Services的高可用性

    在RAC环境中,高可用性的焦点是保护逻辑定义的应用Services。这个焦点比Instances上的高可用性更灵活。

    Services必须被独立的定位,并且RAC的高可用性架构被利用对其进行实施。

    Services通过不断的装载共享到cluster中的多个Instances中而成为可用的。任何Instance都可提供Services,负责运行期间的请求、失败和计划维护工作。cluster中的某些地方,Services总是可用的。

    为了落实工作量的平衡和连续可用性的Services的特点,CRS为在oracle cluster registry(OCR)中的每个Service保存了高可用性的配置。高可用性的配置定义了一个优先的、可用的Instances集合,以便支持相应的Service。

    一个优先的Instance 集合定义了Instances的number,这些Instances将支持相应的Service。它也会辨识在cluster中的每个Instance,从而在系统启动时确定Service将运行在哪个Instance上。

    一个可用的Instance最初是不支持Service的。但当最优的Instance无力支持Service时,才会开始接受对于相应Service的链接。如果一个最优Instance失败,则Service将被透明的转交给为该Service定义的一个可用的Instance上。

    note:一个可用Instance可以变成一个最优Instance,反过来也是一样。

    5、RAC中可用的Service配置

    *  active/spare:这种Service配置,最简单的冗余——被称作主次或是1+1冗余被扩展到N+M冗余的一般情况。这里,N是提供Service的primary RAC Instances的数量,M是可以提供Service的多余的RAC Instances的数量。以上图中例子所示,在一个有三个节点的环境中,设置一个Instance提供AP Service,第二个Instance提供GL Service,第三个Instance为这两个Service提供故障转移功能。在正常的操作期间,这个spare节点仍可被其他应用利用。

    *  active/symmetric:此类Service设置中,相同的Services集合运行在每个Instance中。例如上图中,所有的三个节点上都运行着AP和GL Services。每个Instance都为其他Instances提供了共享负载和故障转移的功能。

    *  active/asymmetric:这种Service设置中,Services的能力需求相对较低。具体如图中例子。

    6、Service的属性

    在single Instance中,每个Service都有如下的属性:

    *  全局唯一的name:它用于在本地cluster和全局的data guard中识别Service

    *  threshold:用于较好的控制响应时间和cpu的开销

    *  相对于其他Service的优先级,以资源开销的比率或是优先级来定义

    在RAC环境中,Services有两个额外的属性:

    *  高可用性设置:一个描述符,用于指明当系统starts时,Service在Instances中的分配

    *  preconnection:对一致的预连接(preconnected)Service的定义,也被称作是shadow(影子)Instances。该preconnect Service可以在发生失败事件时跨越可用的Instances集,来支持响应的Service。当通过DBCA或是SRVCTL添加一个Service时,preconnect Service被自动的创建,并被CRS管理。这个Service被命名为<SERVICE>_PRECONNECT(这里我还是不太理解啊,米有看懂)

    7、Service 类型

    oracle 10g中支持两类Service:应用Service和内部Service。应用Services的主要功能是分派工作量。完成相同业务功能的sessions被一起分组。对于oracle应用,AP、AR、GL、MFG、WIP、BOM等,在Database中形成了功能上的分工,所以可以被分类为Services。

    除了应用Services外,RDBMS也支持两个内部的Services:

    *  SYS$BACKGROUND:只用于后台进程。

    *  SYS$USERS:对于user sessions,它是默认的Service,不与任何应用Service相关联。

    这两个内部Services支持所有的工作量管理特性,并且都不能被stop或是disable。

    对于每个Database,最多只能有64个Services,62个应用Services和两个内部Services。并且,Service的name必须限于64个characters。

    note:shadow Services也包括在应用Service的范畴。此外,对于每个advanced queue的创建,一个Service也被创建。

0
相关文章