Oracle Clusterware及Rac管理及部署指南10g Release 2 B14197-03
Oracle Clusterware需要两个clusterware组件
Voting disk用于记录结点node的成员资格信息
Oracle Cluster Registry OCR 记录集群cluster的配置信息
这两个组件必须在共享磁盘上
Clusterware有如下后台进程
Cluster Synchronization Service CSS
Event Management EVM
Clusterware软件中各组件功能
Cluster Synchronization Service CSS 通过控制哪个结点为集群的成员、结点在加入或离开集群时通知集群成员来控制集群的配置信息。
Cluster Ready Services CRS 管理集群内高可用操作的基本程序。 Crs管理的任何事物被称之为资源它们可以是一个数据库、一个实例、一个监听、一个虚拟IP VIP地址、一个应用进程等等。 CRS是根据存储于OCR中的资源配置信息来管理这些资源的。这包括启动、关闭、监控及故障切换start、 stop、monitor及failover操作。当一资源的状态改变时 CRS进程生成一个事件。当你安装RAC时 CRS进程监控Oracle的实例、监听等等并在故障发生时自动启动这些组件。默认情况下 CRS进程会进行5次重启操作如果资源仍然无法启动则不再尝试。
Event Management EVM 发布CRS创建事件的后台进程。
OracleNotificationService ONS 通信的快速应用通知FAN FastApplicationNotification事件的发布及订阅服务。
RACG为clusterware进行功能扩展以支持Oracle的特定需求及复杂资源。它在FAN事件发生时执行服务器端的调用脚本server callout script
ProcessMonitorDaemon OPROCD 此进程被锁定在内存中用于监控集群cluster及提供I/O防护I/O fencing 。 OPROCD执行它的检查停止运行且如果唤醒超过它所希望的间隔时 OPROCD重置处理器及重启节点。一个OPROCD故障将导致Clusterware重启节点。
下表中带(r)的进程表示需要以root用户运行
表1 C lus te rWare相关进程列表
类UNIX系统的Oracle Clusterware进程
crsd执行高可用性恢复及管理操作诸如维护OCR及管理应用资源。此进程以root用户执行在Max OS X类系统中以admin组中用户执行 。此进程在发生故障时自动重启。 evmd事件管理守护进程。此进程还负责启动racgevt进程以管理FAN服务器端调用。 ocssd管理集群节点的成员资格此进程以Oracle用户执行。此进程发生故障导致集群重启。 oprocd集群的进程监控进程。要注意此进程只出现在那些未使用其它厂商的集群管理软件的平台上。
一个RAC数据库最多可有100个实例此数目依据你使用的平台可能会有不同。 RA C可使用如下选项作为你的数据库文件存储
ASM
OCFS Oracle集群文件系统 Oracle Cluster File System。可在linux或windows系统上使用或通过RA C认证的第三方C F S 集群文件系统 。
网络文件系统network file system
裸设备Raw Devices
服务使你可定义规则与特性来控制用户及应用如何连接到数据库实例。这些特性包括唯一名、负载均衡及故障切换选项、及高可用性等特性。
除使用节点的主机名及IP地址外你必须为每个节点指定一个虚拟主机名及虚拟IP地址。应使用虚拟主机名或VIP来连接数据库实例。
VIP是一个用户用来连接数据库的替代公网地址alternate public address 而不是标准的公网IP地址standard public IP address 。在配置VIP时你必须为每个节点保留一个IP地址此地址与公网属于同一子网。
由于缓冲融合cache fusion的原因 RAC的SGA需求比单实例的SGA需求要大。RAC将专用的节点间连接用于实例间通讯及块传输。全局入队锁服务监控器Global EnqueueService Monitor及实例入队锁进程Instance Enqueue Process管理对缓冲融合资源的访问及入队锁恢复处理enqueue recovery processing 。
以下RAC特定进程与GRD合作使得缓冲融合成为可能。
LMS全局缓冲服务进程Global Cache Service Process
LMD全局入队锁服务守护进程Global Enqueue Service Daemon
LMON全局入队锁服务监控器Global Enqueue Service Monitor
LCK0实例入队锁进程Instance Enqueue Process
Oracle的Clusterware需要如下两个关键文件
投票盘Voting Disk 通过执行健康检查及网络故障时在实例中执行集群所有权的仲裁来管理集群的成员资格Cluster membership 。 RAC使用投票盘来决定哪个实例是集群的成员。投票盘必须在一个共享磁盘上。 出于高可用性方面的考虑 Oracle建议使用多个投票盘。Oracle可使用多个投票盘但你必须使用奇数个投票盘。如果你只使用一个那么你必须使用外部镜像来提供冗余性。
Oracle集群注册表Oracle Cluster Registry OCR 维护集群的配置信息及集群中任何集群数据库的配置信息。 OCR也管理那些Oracle Clusterware控制的相关进程的相关信息。OCR将配置信息存储在一个目录树结构中的一系列关键字-值对中key-valuepairs 。OCR必须位于集群中所有结点可同时访问的共享磁盘中。 Oracle Clusterware可使用多重OCR multiplex或称为多路复用 。 Oracle建议使用此特性以保证高可用性。你可以在联机时替换一个故障的OCR可通过支持的API 如企业管理器、 srvctl及dbca来更新OCR。 在你安装Clusterware及RAC前必须先配置好投票盘及OCR。
Oracle提供了一个高可用性应用编程接口API 你可通过这个来使OracleClusterware来管理运行在集群上的应用或进程。为维护高可用性 Oracle Clusterware可在状态转换时根据高可用性规则来重启应用及进程。你可以通过将应用在Oracle Clusterware中注册并配置Clusterware启动、停止、重定位应用的进程来使用Oracle Clusterware高可用性结构。也就是说你可以使用Oracle Clusterware来创建监控、重定位及重启动应用的概要文件profile 从而对你的应用进行高可用性定制。 Oracle Clusterware可对RAC数据库创建的FAN事件进行响应。 当集群服务器不可达、或网络接口变慢或无法工作时Oracle将广播FAN事件。