第1章Oracle RAC介绍----RAC结构和进程概览

原创
2013/11/28 22:46
阅读数 1.3K

 至少,Oracle RAC要求Oracle Clusterware软件环境提供一个集群中所有结点对同一份存储和同一套数据文件的并发访问,能实现集群中跨结点进程间通信,实现多个数据库实例处理数据如同数据在本地,并提供一种机制监控集群中结点的状态和联络。以下部分更详细地描述了这些概念:

  •     理解有集群意识的存储解决方案
  •    使用服务和VIP地址连接到Oracle数据库概览
  •     关于Oracle RAC软件组件
  •     关于Oracle RAC后台进程

理解有集群意识的存储解决方案

一个Oracle RAC数据库是一个共享一切的数据库。Oracle RAC环境中的所有数据文件、控制文件、SPFILEs和重做日志文件必须存在于有集群意识的共享磁盘中,以便所有的集群数据库实例能访问这些存储。因为Oracle RAC数据库使用一种共享一切的结构,因此Oracle RAC要求有集群意识的存储保存所有数据库文件。

在Oracle RAC中,Oracle数据库软件管理磁盘访问并经认证在多种存储结构中使用。由用户选择如何配置存储,但是用户要使用一种受支持的有集群意识的存储解决方案。Oracle数据库为Oracle RAC提供以下文件存储选择:

  • Oracle ASM,Oracle公司推荐使用此解决方案来管理用户存储
  • 一种经过认证的集群文件系统,包括OCFS2和OCFS
  • 经认证的NFS文件服务器

使用服务和VIP地址连接到Oracle数据库概览

一个Oracle RAC环境中的所有结点必须连接到一个局域网使用户和应用程序能访问数据库。应用程序要使用Oracle数据库服务要素连接到Oracle数据库,服务能使用户定义规则和特性值来控制用户和应用程序如何连接到数据库实例。这些特性值包括全局名,负载均衡和故障转移选项,以及高可用性特征。Oracle网络服务使应用程序连接的负载均衡跨Oracle RAC数据库的所有实例。

用户能使用C/S配置或通过一层或多层中间件访问Oracle RAC数据库,使用或不用连接池。这些用户可以是数据库管理员,开发者,应用程序用户,高级用户如建立他们自己搜索条件的数据挖掘者等等。

大部分公用网络典型地用TCP/IP,但是用户可以使用任何受支持的软硬件组合。Oracle RAC数据库实例应当可通过SCAN访问。

互连网络是一个私有网络,它连接集群中的所有服务器。互连网络使用一个交换机或多个交换机只有该集群中的结点能访问。配置集群连接中千兆以太网上的UDP。在Linux和UNIX系统中,你可以配置Oracle集群件使用UDP或RDS协议。Windows集群使用TCP。跨接电缆不支持用在Oracle集群件连接中。

如果一个结点失败,结点的VIP地址转移到另一个结点中,在其上VIP地址访问TCP连接,但是不接受连接到Oracle数据库。通常,VIP地址当以下情况发生时便故障转移:

  • VIP地址运行失败的结点
  • 所有用于VIP地址的接口不能用
  • 所有用于VIP地址的接口从网络中断开连接

试图连接到VIP地址的客户端收到一个快速连接拒绝错误而不是等待TCP连接超时信息。当配置有VIP的网络恢复连接时,Oracle集群件将VIP故障返回到接受连接的主结点。

如果用户使用NAS,那么要求用户配置第二个私有网络。对该网络的访问被供货商软件控制。该私有网络 使用静态IP地址。

Oracle RAC11g版本2(11.2)支持多个公用网络。每个网络有自己的子网,每个数据库服务用一个特有网络访问Oracle RAC数据库。每个网络是一个由Oracle集群件管理的资源。

用户必须为每个集群建一个SCAN,这是一个单网络名称在用户企业的DNS或GNS中定义。Oracle公司建议所有对Oracle RAC数据库的连接在他们的客户端连接中使用SCAN。来访连接在当前运行的实例中实现负载均衡,所有有效实例通过三个SCAN监听器提供服务。使用SCAN,用户不必改变客户端连接,即使集群配置信息改变(结点增加或移除)。

关于Oracle RAC软件组件

Oracle RAC数据库通常有两个或多个数据库实例,每个实例由内存结构和后台进程组成。一个RAC数据库有象单实例Oracle数据库中相同的进程和内存结构,还有针对Oracle RAC专有的其它进程和内存结构。任何一个实例的数据库视图几乎等同于同一个RAC数据库的任何其它实例的视图;该视图是环境的单系统影像。

每个实例在它的SGA中有一个高速缓存。使用缓存融合,Oracle RAC环境逻辑上合并每个实例的高速缓存以使实例处理数据如同数据在本地合并的单个缓存中一样。

为保障每个Oracle RAC数据库实例获得满足一次查询或处理事务的块,Oracle RAC实例使用两个进程,GCS和GES。GCS和GES维护每个数据文件的状态记录,使用GRD维护每个缓存块的状态信息。GRD内容分布在所有有效运行的实例中,这有效增加了一个Oracle RAC实例的SGA大小。

在一个实例缓存数据以后,同一个集群中任何其它实例能从同一个数据库的另一个实例中获得一个块影像,比从磁盘中读块要快。因此,缓存融合把当前块在多个实例间移动而不是从磁盘中重新读块。当需要一个一致的块或在另一个实例中需要一个改变的块,缓存融合便直接在所影响的实例中移动块影像。Oracle RAC使用私有连接用于实例间通信和块移动。GES监控器和实例队列进程管理对缓存融合资源的访问和排队恢复处理。

关于Oracle RAC后台进程

GCS和GES进程以及GRD共同作用来启用缓存融合。Oracle RAC进程和其标识如下:

  • ACMS:

在一个Oracle RAC环境中,ACMS每个实例进程是一个代理,确保一个分布式SGA内存更新要么全部成功要么出现错误全部终止。

  • GTX0-j

GTX0-j进程对RAC环境中XA全局事务提供透明支持。数据库基于XA全局事务的工作负载自动调整这些进程的数目。

  • LMON

LMON进程监控全局队列和集群中的资源,执行全局队列恢复操作

  • LMD

LMD进程在每个实例中管理加入的远程资源请求

  • LMS

LMS进程维护数据文件状态的记录信息及通过把缓存块的信息记录在GRD中维护其信息。LMS进程也控制到远程实例的信息流并管理全局数据块访问在不同实例高速缓存间移动块影像。该进程也是缓存融合要素的一部分。

  • LCK0
  • RMSn
  • RSMN
展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部