全局服务概念
为了满足业务系统高可用和可扩展的需求,许多企业通过Data Guard或GoldenGate等构建了本地或者远程的容灾和报表数据库。这些数据库有些可能由于高负载或者网络上的延时导致响应时间很长,而那些本可以提供更快响应速度的系统却得不到充分的利用。
有些企业尝试第三方解决方案来提升这些系统的使用效率,但由于不能很好的和Oracle软件集成,这些解决方案无法提供关键功能,如运行时负载平衡和副本之间的可靠数据库服务故障转移等功能。
Global Data Services是Oracle 12c中新引入的一个组件,将这些系统有机的结合在一起,提供数据库级的负载均衡和故障转移。
图一:GDS架构对比
全局服务功能
全局服务能够提供以下的功能:
基于区域的负载路由
连接时负载均衡
为 Oracle 集成客户端提供运行时负载均衡建议
数据库间服务故障转移
适用于 Active Data Guard 的基于复制延迟的负载路由
适用于 Active Data Guard 的基于角色的全局服务
集中负载管理框架
全局服务逻辑架构
GDS池
全局数据服务池是GDS配置中的一个命名数据库子集,提供唯一的全局服务,并且属于同一个管理域。
将GDS配置数据库分区到池简化了服务管理,不同的池可由不同的管理员进行管理,从而提供更高的安全性。
GDS域
全球数据服务区域是GDS配置中的一个命名数据库子集,域中成员通常位于相同的本地网或者城域网,相同域的成员之间的网络延时通常低于不同域成员之间的网络延时。
一个域能够包含多个GDS池,池也可以跨越多个区。
出于高可用的考虑,GDS配置中的每个域可以指定一个友好区域,当本区域不可用时,可以通过友好区域继续访问GDS配置。
GSM
GSM是GDS中的一个软件组件,GDS客户端使用GSM完成所有的GDS配置操作。
同时,在GDS体系架构中GSM还扮演全局监听的角色,提供对外服务接口。具体说来,GSM具有以下的作用:
作为一个区域监听,用于客户端连接到全局服务
为客户端提供连接时的负载均衡
在GDS配置的各个区域中管理全局服务
收集GDS配置数据库的性能指标,检测区域间的网络延时
创建运行时的负载均衡建议,发布到客户端连接池
监控全局服务和数据库实例的可用性,在失败的时候通知客户端
GDS目录库
GDS目录用于存储GDS配置。
GDS目录库仅能够和一个GDS配置相关联,数据库必须是Oracle 12c或以上版本。
Oracle通知服务
GDS客户端使用ONS接收负载均衡建议和高可用事件。
使用场景
通过连接时的负载均衡,将报表服务连接到复制库
数据库间服务故障转移,某个报表库发生故障时,将应用连接指向主库或其他复制库
搭建Oracle Sharing架构,GDS也是必不可少的组件之一
此外,还可以使用GDS构建双活数据中心。当然这需要应用层,或者GoldenGate双活复制技术的支持,这个话题我们以后再谈