Oracle集群件组件

时间:2022-05-05 22:30:42
CRS是Oracle RAC 11g RAC高可用性框架的后台引擎,它为所有平台提供了标准集群接口。
Oracle集群件由"集群就绪服务"(CRS)使用“Oracle集群注册表”(OCR)和表决磁盘进行管理,OCR记录和维持集群及节点成员资格信息,表决磁盘在通信故障时充当一个仲裁者(tiebreaker)。在集群运行期间,来自所有节点的一致性心跳信息都会发送给表决磁盘。
CRS有5个组件:
进程监控器守护进程(OPROCd;在11gR2版本中废弃)
CRS守护进程(CRSd)
Oracle集群同步服务守护进程(OCSSd)
事件卷管理器守护进程(EVMd)
Oracle通知服务(ONS)
CRSd的故障或终止可能导致节点故障,它会自动重启节点,以避免因为节点之间可能存在的通信故障而导致数据丢失。CRSd在UNIX平台中以超级用户root身份运行,在Windows平台中作为后台服务运行。
1、集群就绪服务(Cluster Ready Service ,CRSd)
运行角色:root
功能:资源监控、资源故障转移和节点恢复
进程发生故障时:进程根据启动模式自动重新启动。如果节点运行在reboot模式。那么它将会重新启动(reboot)。在以restart模式运行时,不会导致节点重新启动。
CRS功能列表:
(1)CRS是从一个名为GRID_HOME的不同ORACLE主目录安装和运行的,它独立于ORACLE_HOME。
(2)CRSd对资源进行管理,例如启动和停止应用程序资源的服务及故障转移。它生成独立的进程来管理应用程序资源。
(3)CRSd在启动期间和关闭之后有两种运行模式。在计划内的集群件启动期间,它以reboot模式启动。在计划外关闭之后,它以restart模式启动。在reboot模式中,CRSd启动受其管理的所有资源。在restart模式中,它保持原来的状态,并使资源返回关闭前的状态。
(4)CRS管理Oracle集群注册表(OCR),并将当前已知状态存储在OCR中。
(5)CRS在UNIX中以root身份运行,在windows中以LocalSystem身份运行,在发生故障时会自动重新启动。
(6)CRS需要公共接口、私有接口和虚拟IP(VIP)才能运行。在开始安装CRS之前,公共和私有接口应当处于运行状态,而且能够相互ping通。
2、Oracle集群同步服务(Cluster Synchronization Service ,CSSd)
运行角色:oracle身份
功能:基本节点成员资格、组服务和基本锁定
进程发生故障时:节点重新启动(restart)
CSS提供节点之间的同步服务。它提供对节点成员关系的访问,并支持基本集群服务,包含集群组服务和集群锁定。CSS故障会导致计算机重启。
OCSSd的功能:
(1)CSS提供基本的组服务支持。
(2)如果可以,组服务会使用供应商的集群件组服务。但是,即使没有集群件组服务可用,它也能独立工作。
(3)锁服务提供了基本的集群范围内序列化锁定功能。它使用先入先出(FIFO)机制来管理锁定。
(4)节点使用OCR来存储数据,并在重新配置期间更新信息。它还管理OCR数据,这些OCR数据在其他方面是静态的。
3、事件管理进程(EVMd)
运行角色:oracle身份
功能:生成一个子进程事件记录器,并生成标记
进程发生故障时:自动重新启动(restart);不会导致节点重启(reboot)
EVMd守护进程生成一个名为evmlogger的永久子进程,在出现某些状况时生成事件。EVMd进程发生故障时会自动重新启动,EVMd进程的终止不会使实例停止。EVMd以Oracle用户身份运行。
4、Oracle进程监控器(OPROCd)
运行角色:root身份
功能:提供基本的集群完整性服务
进程发生故障时:节点重新启动(restart)
OPROCd进程为Oracle集群件提供了I/O隔离(fencing)解决方案。OPROCd进程的主要目的是找出潜在的集群节点,将之挂起并重新启动挂起节点,使挂起节点上的进程不能写入存储。OPROCd进程以root身份运行,它的故障会导致节点重启。
5、Oracle通知服务(ONS)
运行角色:oracle身份
功能:用于向客户端发布高可用性通知
进程发生故障时:在故障期间自动重新启动(restart)
只要集群资源发生改变,每个集群节点上的ONS进程就会互相通信,并交换高可用事件信息。CRS触发这些HA事件,并将它们传送到ONS进程,然后ONS进程将这一高可用性事件信息发布到中间层。这些FAN事件本身没有什么用,除非是应用程序有逻辑能够回应ONS进程发布的FAN事件,接收和响应这些FAN事件的最佳方法是使用一个与FAN紧密集成的客户端,如JDBC。
6、集群成员资格判定
7、资源管理框架
资源包括应用程序或系统组件(既包括集群本地资源,也包括远程资源)。
8、启动和停止Oracle集群件
必须使用root用户:
srvctl start crs
srvctl stop crs
srvctl enable crs
srvctl disable crs
启动和关闭Oracle集群件的命令是异步的,当它在被停止时,可能会在交回控制之前稍等一会。在一个集群上只能运行一组CRS。
9、Oracle 11gR2中的集群件启动进程
Oracle 11gR2中引入了“Oracle高可用性服务”守护进程(OHASd),它启动所有其他Oracle集群件守护进程。
10、Oracle集群注册表(OCR)
Oracle集群件使用OCR来存储Oracle集群件中所定义的全部集群资源的元数据、配置和状态信息。
OCR用于引导CSS,提供端口信息、集群中的节点和类似信息。Oracle在每个集群节点上使用OCR的一个内存中的副本,用于优化各个节点各种守护进程对OCR的查询。虽然每个节点都有自己的专用OCR副本,但为了确保针对OCR的原子更新,一个集群中不允许有一个以上的CRSD进程向共享OCR文件中写入内容。
11、Oracle本地注册表
Oracle 11gR2中引入了Oracle本地注册表(OLR)概念,类似于Oracle集群注册表,但它只存储与本地节点有关的信息。OLR不与集群中的其它节点共享,在启动或加入集群时由OHASd使用。OLR存储OHASd通常需要的信息,如Oracle集群件的版本、配置等。
12、表决磁盘(votedisk)
表决磁盘保存了节点之间的心跳信息,用来解决数据库“脑裂”问题。
13、Oracle虚拟IP
引入Oracle VIP目的是确保应用程序的设计符合高可用性,消除所有单一故障点。
14、应用程序VIP
从Oracle 10gR2引入了应用程序VIP。应用程序VIP是一种用于管理网络IP地址的集群资源。用户必须使用<GRID_HOME>/bin/usrvip脚本在集群中创建应用程序VIP。
普通VIP和应用程序VIP的区别:
在向仍在正常运行的节点进行故障转移时,普通VIP不会接受连接,而是会强制客户端使用另一个地址重新连接,而应用程序VIP在被重新定位到另一个集群节点后仍能保持完整功能,它会继续接受连接。
15、单一客户端访问名称(SCAN)
SCAN是一个网络名称,它解析为在DNS或GNS中注册的3个不同IP地址。

转自:http://blog.itpub.net/28998293/viewspace-768012/