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