天天看点

Oracle Database 12c - Global Data Services

手记:oracle 12c新加入的gds特性是针对复制数据库(使用复制技术,例如adg,ogg等)的完整自动化工作负载管理解决方案。今天我们一起来学习gds的相关知识。

注:文档内容来自global-data-service白皮书翻译。

为满足企业各种业务需求,如高可用性、灾难恢复、内容本地化和缓存、可扩展性等,许多组织在本地或远程的数据中心维护一个或多个生产数据库的复制。oracle数据库一般通过oracle adg和oracle goldengate技术策略用于完成数据库的复制。

1

业务需求与技术的局限性

在gds之前,复制环境中的每个数据库都从应用程序和数据库管理员的角度部署为silo。

存在很严重的资源使用不均的现象:一个资源未充分利用的数据库副本不能用于承担另一个过度利用的副本的工作负荷。如果生产应用程序工作负载针对特定副本数据库运行,而该副本意外宕机,则不能实现自动且透明地将服务重新定位到另一个可用副本。

企业尝试使用手动过程来负载平衡工作负载和响应中断,或者开发自定义连接管理器和集成的专用网络负载平衡器,以尝试自动化过程。但这样做增加了成本和复杂性,而无法为复制数据库池提供数据库服务故障转移和集中式数据库服务管理功能。

2

gds提供了理想db连接方式

为了在多个复制数据库分布工作负载来实现系统的高性能和高可用性,工作负载必须智能地负载平衡,以有效地利用所有资源并实现最佳性能。 需要智能地处理中断,以便应用保持可用,并且如果复制数据库离线则提供最佳可能的服务质量。 在理想情况下,通过使用复制数据库池的负载平衡和高可用性可以使用oracle数据库中提供的实时信息以最佳方式无缝地进行。 随着oracle database 12c提供的oracle全局数据服务(gds)的到来,这一理想得以实现。

Oracle Database 12c - Global Data Services

gds简介

gds在oracle数据库的集成框架内统一复制数据库,从根本上改变了负载平衡和服务管理的模式。 gds取代了传统的连接管理器和全局服务(曾是oracle数据库唯一在全局数据库工作负载中的自动工作负载管理的概念),全局服务提供单个系统映像来管理多个副本数据库之间的工作负载。以全局服务为载体,gds支持基于区域和基于复制滞后的数据库工作负载路由,连接和运行时数据库负载平衡,集中全局服务管理,基于角色的全局服务和跨复制数据库的全局服务故障转移和跨数据中心。 gds是一个良好集成的成本效益解决方案,通过在传统环境和私有数据云中跨复制oracle数据库无缝管理工作负载,有效实现最佳资源利用率,性能和高可用性。

3

gds实现技术原理

gds将服务概念扩展到包括oracle rac、单实例、 adg和goldengate的任意组合的全局复制配置。 这允许服务部署在此全局复制配置中的任何位置,支持负载平衡、高可用性、区域关联性等。 gds基于经过时间测试的技术构建块,如服务(动态工作负载管理),oracle adg / oracle golden gate复制和oracle net listener。

虽然该功能称为全局数据服务,事实上组成gds配置的数据库可以全局分布或位于同一数据中心内。 客户端可以通过简单地指定服务名称来安全地连接,无需知道提供该服务的物理数据中心资产位于何处,从而实现企业数据云的高度灵活的部署。 使用gds时,一组复制的数据库对应用程序显示为单个数据源。

gds配置每个区域包含多个全局服务管理器(gsm)。 gsm是“全局侦听器”,能够理解实时负载特性和在复制数据库上用户定义的服务放置策略。 这些gsm有助于执行数据库间服务故障切换(failover)和gds的负载平衡。 gds是可以管理多组复制数据库的共享基础结构。

4

global services与gds

数据库服务/服务是用于管理oracle数据库中的工作负载的逻辑抽象体。 每个服务表示具有公共属性,服务级别阈值和优先级的工作负载。可以基于包括要使用的应用功能的工作属性进行分组。 例如,oracle电子商务套件为每个应用程序模块定义一个服务,如总帐、应收帐款、订单输入等。

服务内置在oracle数据库中,并为工作负载提供单个系统映像。 服务使管理员能够配置工作负载,管理工作负载,启用和禁用工作负载,并将工作负载测量为单个实体。 客户端使用数据库服务名连接。

在rac环境中,服务可以跨越一个或多个实例,并基于实时事务性能来促进工作负载平衡。 这提供了高可用性,工作负载的滚动更改以及完全的位置透明度。

对于复制环境,gds引入了全局服务的概念。 全局服务在一组包含属于某个管理域(称为gds池)的复制数据的数据库中提供。 gds池的示例可以是比如sales池、hr池等。如果gds配置中的一组数据库和数据库客户端共享网络邻近度,则称其在相同的gds区域中。 全局服务使用附加属性(例如全局服务放置,复制滞后和区域关联性)来扩展传统数据库服务。 传统数据库服务的所有属性全局服务都支持。

Oracle Database 12c - Global Data Services

认识几个概念

global service placement:创建全局服务时,gds允许指定该服务的首选和可用数据库。 如果首选数据库失败,则可用数据库支持全局服务。 此外,gds允许将服务配置为在给定gds池的所有复制数据库上运行。 replication lag:客户端可以路由到并没有超过全局服务的lag属性限制范围外的复制数据库。 region affinity:全局服务允许客户优先设置到其给定应用应该连接的区域(例如亚洲、欧洲)。

safran集团morphotrak总工程师aris prassinos这样说到:

全局数据服务将帮助morphotrak通过在分布式数据中心的复制数据库之间动态负载平衡应用程序查询来提高系统利用率。 我们已经通过部署oracle rac和active data guard消除了空闲容量的成本,oracle database 12c使我们达到了另一个水平。 它通过智能的实时自动化来取代数据中心之间的静态负载平衡,从而有效利用所有可用容量,从而获得更高的投资回报率

下图表示数据库连接是否使用gds的区别:

Oracle Database 12c - Global Data Services

5

gds的关键能力:

1、基于地域的工作负载路由

使用gds,客户可以选择将客户端连接配置为始终在本地区域的一组复制数据库之间路由。 此功能允许客户最大化其应用程序性能(避免访问远程区域中的数据库的网络延迟开销)。

2、基于连接时间的负载均衡

gsm使用gds池中所有数据库的负载统计信息,区域间网络延迟和配置的连接时负载平衡目标,以将传入连接路由到gds池中的最佳数据库。

3、基于运行时间的负载均衡

gds还通过为基于连接池的客户端(例如oci,jdbc,odp.net,weblogic等)发布实时负载平衡建议,实现跨复制数据库的运行时负载平衡。 基于连接池的客户端通过已经建立的连接实时监测负载平衡和路由数据库请求。 借助gds的运行时连接负载平衡特性,应用程序客户端工作请求会动态路由到提供最佳性能的数据库。 此外,gds还支持在数据库性能发生变化时动态重新分配连接的能力。

4、数据库间服务故障转移

如果运行全局服务的数据库崩溃,gds考虑服务放置属性,将自动执行数据库间服务故障切换到池中的另一个可用数据库。 gds发送快速应用程序通知(fan)事件,以便客户端连接池可以重新连接到新数据库。

5、复制基于滞后的工作负载路由

复制数据库可能滞后于主数据库。 全局服务允许客户选择给定应用程序可接受的滞后容差。 gds将请求路由到复制滞后低于限制的复制数据库。 如果复制延迟超过滞后限制,则服务将重新定位到低于阈值的另一个可用数据库。 新请求路由到满足滞后限制的数据库。 如果没有可用的数据库,则全局服务将关闭。 一旦滞后解决或达到限制,gds自动启动服务。

6、基于角色的全局服务

通过data guard broker进行数据库角色转换时,如果分配给服务的角色与数据库的角色匹配,gds可以将全局服务自动重新定位到新的主服务器和新的备用服务器。

7、复制数据库的集中工作负载管理

gds允许更容易地配置和管理位于具有单个统一框架的任何位置的复制数据库的资源。

6

gds的优势

gds允许部署和集中管理具有容错能力的数据库服务(跨一组复制数据库)。 gds框架提供了跨这些数据库的工作负载平衡。 更具体地说,gds是一个oracle集成解决方案,具有以下优点:

更高的可用性和全局可扩展性

支持位于任何数据中心的复制数据库之间的无缝数据库间服务故障转移,从而提高应用程序可用性。 gds通过允许动态添加数据库来按需提供可扩展性。 它允许将动态和透明的复制数据库添加到gds基础架构,以获得额外的资源能力来扩展应用程序工作负载,而不改变应用程序配置或客户端连接。
Oracle Database 12c - Global Data Services

更好的性能和弹性

通过跨多个数据库的集成负载平衡,gds解决了区域间资源碎片。 一个地区未充分利用的资源现在可以用于承担另一个地区过度利用资源的工作量,从而实现最佳资源利用。 在包含在不同处理器代和不同资源(cpu,内存,i / o)的数据库服务器上运行的复制数据库的gds池中,gds向较不强大的数据库发送工作请求,但是直到更强大的数据库过载, 均衡响应时间。
Oracle Database 12c - Global Data Services

提高了可管理性

gds配置可以由gdsctl命令行界面或oracle enterprise manager cloud control 12c图形用户界面管理。 通过全局资源的集中管理,现在可以在gds的统一框架内有效地利用地理上分散的复制数据库,无论是本地域还是全局数据库。

复制数据库的集中工作负载管理,数据库间服务故障转移和运行时负载平衡是gds的独特功能。 gds实现了一个真正弹性和敏捷的企业,并扩展了私有数据云的优势。

7

oracle高可用架构与gds

oracle最高可用性架构(maa)是oracle针对oracle高级高可用性(ha)技术的集成套件的最佳实践蓝图。 在it基础架构中利用maa的企业发现他们可以快速高效地部署满足其高可用性业务需求的应用程序。

全局数据服务是oracle database 12c提供的一个战略新的maa组件。随着全局数据服务的出现,oracle客户现在可以使用单个框架统一复制数据库的资源,从而避免需要本地或第三方集成进行负载平衡。 客户可以最小化其整体高可用性/灾难恢复堆栈中的供应商集成接触点。 gds与oracle生态系统良好集成,可在数据中心内和跨数据中心的复制数据库之间提供工作负载路由,负载平衡和服务故障转移。 简而言之,gds是用于复制数据库的数据库负载平衡器,此外还通过数据库间服务故障转移功能提供高可用性。

Oracle Database 12c - Global Data Services

8

gds的应用案例

全局数据服务在各种场景中都很有用,可以提高复制数据库的高可用性,可扩展性,性能,整体可管理性和资源利用率,无论它们在何处(在数据中心内部或跨数据中心)。

下图描绘了在gds配置中在本地和远程的复制数据库上运行的电子商务应用的示例配置。 订单输入服务在主数据库上运行。 报告服务在两个复制数据库之间进行负载平衡。

Oracle Database 12c - Global Data Services
Oracle Database 12c - Global Data Services

跨复制数据库的负载平衡

此用例描述了gds的连接时间和运行时负载均衡功能。 在这种情况下,客户端连接在连接时被负载平衡。 并且,工作负载请求也在运行时进行负载平衡。

下图描述了gds配置中的本地和远程复制数据库。 订单输入服务在主/主数据库上运行。 报告服务在两个复制数据库上运行。 客户端连接在运行reporting service的standby / replica数据库之间进行负载平衡。

Oracle Database 12c - Global Data Services

gds可以在区域内和区域之间的复制数据库上执行负载平衡。 它考虑了数据库负载度量,区域亲和性,网络延迟和负载平衡目标。 客户可以通过使用带有active data guard和oracle goldengate的gds来最大化性能并实现高效的资源利用率。

Oracle Database 12c - Global Data Services

数据库间全局服务故障转移

下图显示了gds如何为在复制的数据库上运行的reporting service提供容错的示例。复制数据库故障后,gds可以将报告服务故障转移到另一个可用数据库(在本示例中为主/主服务器),然后与在本地复制数据库上运行的报告服务进行负载平衡。没有gds,没有一种智能和自动的方式,在oracle goldengate的多主机之间的active data guard甚至读写服务的一组复制数据库之间提供只读数据库服务的高可用性,从而导致计划外停机时间的应用。

gds在跨数据库执行服务故障转移时考虑到配置的全局服务放置策略。客户可以通过在active data guard和oracle goldengate上启用gds来最大限度地提高其数据库服务的可用性。如图所示,全局服务故障转移功能不限于一个数据中心。它可以发生在位于不同区域的数据中心中的复制数据库。

Oracle Database 12c - Global Data Services

9

总结

全局数据服务(gds)是oracle database 12c的一个整体自动化工作负载管理功能,它为一组复制数据库提供工作负载路由,负载平衡和数据库间服务故障转移,基于复制滞后的路由,基于角色的全局服务和集中式工作负载管理 其全局分布或位于同一数据中心内。 客户现在可以使用gds实现这些优势,而无需与多点解决方案或本地生产的产品集成。 oracle database 12c gds为在复制数据库上运行的应用程序工作负载提供更好的硬件/软件利用率,更好的性能,可扩展性和可用性。