NOTE:
资源管理方式
10g版本:
对于10GR2版本的集群,资源管理的工作是由CRS(Cluster Ready Service)组件来实现,就是说crsd守护进程负责管理资源,包括资源的启动,停止,监控等。所谓的资源实际上就是集群管理软件所需要管理的应用程序的实体。
首先,需要了解10GR2版本的集群有哪些资源需要被管理,可以通过crs_stat命令查看资源的列表,下面只是其中的一些。
$ crs_stat
NAME=ora.ydqxnew.db
TYPE=application
TARGET=ONLINE
STATE=ONLINE on zjxdkt06
NAME=ora.ydqxnew.ydqxnew1.inst
TYPE=application
TARGET=ONLINE
STATE=ONLINE on zjxdkt05
NAME=ora.zjxdkt05.YDQX_ZJXDKT05.lsnr
TYPE=application
TARGET=ONLINE
STATE=ONLINE on zjxdkt05
........................................................................................................
为了格式整洁使用crs_stat -t命令来查看
根据上面的输出,可以看到CRSD会管理以下资源:
VIP资源(ora.<节点名>.vip)
ONS资源(ora.<节点名>.ons)
GSD资源(ora.<节点名>.gsd)
ASM实例资源(ora.ASM<节点编号>.asm)
监听资源程序(ora.<节点名><监听程序名>.lsnr)
数据库资源(ora.<数据库名>.db)
数据库实例资源(ora.<数据库名>.<实例名>.inst)
数据库服务资源(ora.<数据库名>.<服务名>.cs)和(ora.<数据库名><服务名><实例名>.srv)
CRSD是如何实现资源管理的,下面是一些资源相关术语。
(1)动作(Action):动作定义了CRSD对资源进行的启动,停止,检查和清楚操作时需要的步骤,它可以是一段shell脚本,一段程序,数据库命令等。
(2)资概要文件(Profile):概要文件定义了资源的很多属性,以便CRSD能够根据概要文件定义的属性来创建资源,例如:检查间隔,动作脚本。
(3)依赖关系(dependency):资源之间并不是独立的,有些资源之间是存在相互依赖关系的。例如:数据库实例启动的前提是ASM实例要先启动,这表示数据库资源要依赖于ASM实例资源,而这种依赖关系是通过资源属性required_resource来实现的。
(4)权限:由于不同的资源执行的操作也是不同的,这意味着执行操作的用户也会不同(主要是root用户和Oracle用户),所以每个资源都会针对不同的用户制定不同的权限。这也是为什么crsd.bin守护进程需要以root用户运行原因之一。
(5)OCR(Oracle cluster register):OCR实际上是包含了以上所有信息的一个注册列表,CRSD通过访问OCR来获得集群资源列表(当然也包括其他很重要的信息)以及各个资源的属性。
Oracle集群管理软件(CRS)还定义了一些racg模块,不同的racg模块负责管理不同的资源,例如:racgvip负责管理VIP,这些模块负责定义对资源操作的动作,总结如下:
第一点:CRSD通过OCR定义资源。当crsd.bin守护进程启动时,通过读取OCR中信息来获取资源定义。而当资源属性发生改变时候crsd.bin守护进程也会修改OCR中的信息。
第二点:CRSD通过调用racg模块来实现对资源的各种动作。