【Oracle-RAC】CRSD 功能介绍-10gr2

1.10gr2版本 的CRSD 

CRS 实际上是集群就绪服务(Cluster Ready Service)的简称,主要负责管理集群
中的资源。

CRSD的主要功能是管理集群中的应用程序,以便实现集群资源的高可用性。
CRSD的另一部分功能就是管理OCR,包括OCR的更新和备份。

10gr2版本 
CRSD 中的基本概念 
(1)资源  
集群所管理的应用程序实体还活着守护进程。资源分为本地资源和集群资源两种。
本地资源只能在集群的某一个节点上运行,不能被切换到其他节点上运行。
集群资源正常情况会在默认节点上运行,但是可以根据不同的情况切换到
其他节点上。

(2)资源概要文件
概要文件定义了资源的很多属性,以便CRSD能够根据概要文件定义的属性来管理 
该资源,例如:检查间隔,动作脚本等。

(3)动作  
定义了CRSD 对资源进行启动,停止和检查操作时所需要运行的步骤,它可以是一段 
shell脚本,一段应用程序,数据库命令等。

(4)状态 
当某一个动作发生在一个资源上之后,一定会返回一个状态作为动作的输出。资源的 
状态可以是以下的几种之一.
ONLINE:在线,对应资源的online状态 
OFFLINE:离线,对应资源的offline状态。当然,及时资源被离线,GI仍然会持续对 
该资源进行检查,以便在资源恢复正常后能够发现它的新状态。
UNKOWN:未知,对应资源的unkown 状态。在这种状态下,CRSD 会持续对该资源进行
检查,以便在资源正常后能够发现它的新状态。

(5)依赖关系 
资源之间并不是独立的,有些资源之间是存在互相依赖关系的。例如:数据库实例 
启动的前提是ASM实例要先启动,这表示数据库实例资源需要依赖于ASM实例资源。
而这种依赖关系是通过资源属性 REQUIRED_RESOURCES 来实现的。 

(6)权限  
由于不同的资源需要执行的操作也是不同的,这意味着执行操作的用户也会不同。
(主要是root和Oracle用户),所以每个资源都会针对不同的用户指定不同的权限。
这也是为什么 crsd.bin 守护进程需要以root用户运行的原因之一。

(7)RACG模块 
RACG 模块实现了不同资源的具体动作定义,不同的racg模块负责不同的资源,
例如:racgvip 模块定义了对VIP的启动,停止和检查操作。 

(8)OCR 
Oracle Cluster Register:OCR 实际上是一个包含了以上所有信息的注册表,
CRSD 通过访问OCR来获得集群资源的列表,以及每个资源的各个属性。
可以说OCR 就相当于CRSD 或者集群的数据字典,集群中所有的属性和资源 
的属性都能在OCR中找到。

(9)OCR 主节点 
由于集群中每个节点的crsd.bin 守护进程都需要访问OCR,而且有时需要修改其中
的信息,所以集群中最先启动的节点上的crsd.bin 会被选择去修改OCR的进程,
而对应的节点被称为OCR主节点。集群中的其他节点只会在本地将OCR的信息维护 
在cache中,在读取信息时从cache中读取,而在写入时,会将信息发送给 
OCR主节点 ,由主节点完成最后的写入操作。

OCR主节点的crsd.log 会出现关键字:I AM THE NEW OCR MASTER 

2.OCR 的详细信息 

(1)OCR 的位置 
OCR的位置时通过文件 /etc/oracle/ocr.loc 来定义的。
ocrconfig_loc=/dev/raw/raw1 
local_only=FALSE 

ocrconfig_loc:指定OCR的位置。如果为OCR指定了镜像,还会出现选项 ocrmirrorconfig_loc 
用于定义OCR镜像的位置。
local_only=FALSE, 表示是RAC系统,如果为TRUE,表示是单实例RAC;
OCR有自己的格式,不是文本文件。另外OCR和OCR镜像中的信息是完全一致的,
OCR镜像的主要作用就是为OCR提供冗余。当OCR出现问题而无法被访问时,
系统会自动开始访问OCR镜像文件,确保集群正常运行。当OCR 修复后,
集群会重新读取OCR中的信息。

(2)OCR 的结构 
ocrdump /tmp/ocrdump.log  

[SYSTEM]
[SYSTEM.css]
[SYSTEM.css.interfaces]
[SYSTEM.css.interfaces.global]
[SYSTEM.css.interfaces.global.eth0]
[SYSTEM.css.interfaces.global.eth0.10|d182|d208|d0]
[SYSTEM.css.clustername]
[SYSTEM.css.miscount]
[SYSTEM.css.diskfile]
集群的CSS部分:集群名称,集群使用的网卡,公网,私网,主机名,
IP地址,子网掩码,集群的miscount,VF位置等。
[SYSTEM.evm]
[SYSTEM.evm.cevmkey]
[SYSTEM.evm.rmport]
[SYSTEM.evm.rmport.localhost]
--这是集群EVM的配置信息,主要是EVM之间的通信配置信息。
[SYSTEM.crs.usersecurity]
[SYSTEM.crs.deny]
[SYSTEM.crs.user_default_dir]
[SYSTEM.crs.e2eport]
[SYSTEM.crs.e2eport.test1]
[SYSTEM.crs.e2eport.test2]
[SYSTEM.crs.uiport]
[SYSTEM.crs.uiport.test1]
--这部分定义了CRSD层面的配置信息,即CRSD的验证信息。以及CRSD之间 
的通信配置。
[SYSTEM.OCR.BACKUP]
[SYSTEM.OCR.BACKUP.0]
[SYSTEM.OCR.BACKUP.0.NODENAME]
[SYSTEM.OCR.BACKUP.0.TIMESTAMP]
[SYSTEM.OCR.BACKUP.0.LOC]
--这部分定义了OCR备份相关配置信息。
[DATABASE]
[DATABASE.NODEAPPS]
[DATABASE.NODEAPPS.test1]
[DATABASE.NODEAPPS.test1.ORACLE_HOME]
[DATABASE.NODEAPPS.test1.VIP]
[DATABASE.ASM]
[DATABASE.ASM.test1]
[DATABASE.ASM.test1.+asm1]
[DATABASE.ASM.test1.+asm1.ORACLE_HOME]
[DATABASE.ASM.test1.+asm1.START_OPTIONS]
--这部分定义了一部分与集群相关资源。
[CRS]
[CRS.CUR]
[CRS.CUR.ora!test1!vip]
[CRS.CUR.ora!test1!vip.ACTION_SCRIPT]
--这部分信息包含了CRSD所管理的所有资源的详细定义信息。

(3)OCR的结构特点 
OCR的逻辑结构是树形层次结构,也就是说每个键值是由若干个层次构成的,
层次之间是由"."来分割的,最终的叶子负责保存具体的键值。

OCR主要包含三个部分:SYSTEM,DATABASE,CRS; 
SYSTEM:这部分包含了集群的CSS,CRS,EVM三个组件的重要配置信息,例如  
CSS层面的集群网络(公网和私网)配置信息,miscount值,VF名称;
CRS层面的安全和验证配置信息,CRSD 之间的通信配置;EVM层面的通信配置 。
集群版本历史,语言,OCR备份信息。
DATABASE:这部分包含集群定义的资源的一部分配置信息。主要是被srvctl 
和一些其他的集群配置工具所使用的。例如:VIPCA,dbca,netca等。
CRS:这部分记录着CRSD管理的所有资源的属性,CRSD在管理资源时使用 
这部分信息对集群的资源进行管理。

OCR的信息是会被备份的。OCR 主节点上的crsd.bin 会每隔4小时备份一次OCR;
并且将备份最长保留一个星期。通过  ocrconfig -showbackup 来了解OCR的备份信息。

OCR中的每一个键值都是由三个部分构成的,分别是键值名称,对应值 ORATEXT,
和安全属性(SECURITY)
(4)OCR管理 
OCR是一个层次结构组织的文件,而且其中的信息会被动态修改,那么OCR有可能出现
损坏的情况。通过 ocrchheck 检查OCR是否出现故障。

su - grid 
ocrcheck   

如果OCR损坏需要修复 
su - root 
crsctl stop crs 
ocrconfig -restore /u01/app/crs/cdata/crs/backup00.ocr  

3.crsd.bin 守护进程  

10g版本的crsd.bin 守护进程的功能相对来说时比较简单的。
读取OCR中的信息,对集群的资源执行启动,停止,检查等操作。
每4个小时对OCR进行备份
和其他节点的crsd.bin 进行通信。
处理用户或者集群发出的各种命令 

--关闭监听 
srvctl stop listener -n test2  
--调整CRSD 的debug级别 
crsctl debug log crs CRSUI:4,CRSRES:4,CRSCOMM:4  
--启动监听 
srvctl start listener -n test2  
--查看集群资源状态  
crs_stat -t 
--关闭网卡的命令 
ifconfig eth0 down  

4.CRSD管理的资源 

racgwrap:负责向racgmain 模块提供环境变量,例如 crs_home,oracle_home 等。
racgmain:它是所有racg 模块的主模块,具体定义了对每个资源的动作,如 启动 
停止和检查。 
racgvip:它负责定义对VIP资源的启动,检查和停止操作。
racgons:它负责定义ONS资源的动作。
racgimon:它负责监控数据库或ASM实例的健康性。
racgmdb:负责启动,关闭,检查实例。

对于数据库,racgimon 是以进程的方式常驻在实例当中:
select sid,serial#,program,username from v$session where program like 'racg%';

对于ASM实例,racgimon 是以操作系统进程的方式存在的。

5.CRSD管理的主要集群资源 

(1)VIP资源 
ora.test1.vip 
ora.test2.vip 
VIP技术实际上是很多集群管理软件都要提供的特性,它的主要目的就是防止:
当集群某一个节点宕机后,客户端的应用程序不能够马上被通知而会继续连接 
已经宕机的节点,从而导致应用程序需要等待TCP超时后才能返回错误。
这种长时间的等待对于多数高可用系统来说无法接受。
Oracle集群中每一个节点都会拥有一个自己的VIP,当本地节点宕机或者公网出现 
问题时,VIP会切换到集群中的其他健康节点。而当本地节点恢复后,VIP会 
自动切换回本地节点。
VIP资源是通过racgvip脚本来实现具体的启动,停止,和检查工作的。

--查看VIP的属性 
crs_stat -p ora.test1.vip 
srvctl config nodeapps -n test1 -a  

(2)数据库实例资源和数据库资源 
对于数据库资源,实际上它是由数据库实例资源和数据库资源组合而成的。
每个数据库实例会有对应的实例资源进行管理,而数据库资源实际上相当于
一个占位资源。对于数据库实例资源,CRS 通过 racgmdb 模块来对数据库 
实例进行启动,检查和停止操作。 
Oracle会为每个数据库实例启动一个  racgimon 守护进程来监控数据库实例的
健康状态。

--查看数据库实例 
srctl config database -d mydb -a  
(3)ASM资源 
ASM 资源,故名思义就是为ASM实例所设计的。CRSD 通过这个资源来管理
ASM实例。每个节点都会有一个ASM资源对应本地节点的ASM实例。
CRSD 管理ASM实例的方式和管理数据库的方式基本一样。
--查看ASM ; 
srvctl config asm -n test1  

(4)监听程序 
ora.test1.LISTNER.lsnr
该资源负责管理集群的监听程序资源,RACG 模块会通过lsnrctl start 
来启动监听程序。监听程序和系统是不是RAC没有关系,它实现的功能与 
单实例数据库系统是一样的。唯一的区别是RAC系统中的listener资源 
需要依赖于VIP资源。
--查看监听 
srvctl config listener -n test1  

(5)ONS资源 
ora.test1.ons 
ONS 是oracle Notification Service的缩写,而ONS资源就是负责管理这个服务的。
ONS的主要功能是配合EVMD和racgimon 模块向集群中的应用程序发布集群事件。
--检查ons 的状态
su - oracle  
onsctl ping  
--查看ONS的详细信息 
onsctl debug  

(6)数据库服务资源 
ora.mydb.orcl.test1.srv 
ora.mydb.orcl.cs 

--创建一个数据库服务 
srvctl add service -d mydb -s test -r test1 -a test2 -P basic 
-d:指定服务所运行的数据库名 
-s:指定数据库服务名称 
-r:指定数据库服务默认运行的数据库实例 
-a:指定了数据库服务的备用实例 
-P:指定了TAF 的策略 

--启动服务 
srvctl start service -d mydb -s test 
--检查 
crs_stat -t  
--停止服务  
srvctl stop service -d mydb -s test  

CRSD 是通过在对应的数据库实例中修改参数 service_names 
的方式来管理数据库服务资源的。而对于资源的检查工作,
是由 racgimon 来完成的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值