[Oracle 11g r2(11.2.0.4.0)]集群资源管理

本文详细介绍了Oracle 11g R2版本中集群资源的管理,重点讲解了OHASD如何替代CRS成为集群启动的起点,并管理所有资源。此外,还阐述了HAIP(高可用性IP)在私网通信中的作用,以及CHM(Cluster Health Monitor)如何监控操作系统资源。HAIP提供私网的高可用性和负载均衡,而CHM则用于收集系统统计数据,辅助诊断和优化集群性能。
摘要由CSDN通过智能技术生成

对于10g版本,资源管理工作由CRS来完成。
可以通过crs_stat -t -v来查看CRS管理的资源:

这里写图片描述

根据上面的输出, 可以看到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 需要管理的资源列表之后, 来看一下CRSD是如何实现资源管理的。首先介绍一些资源相关的术语。
1. 动作(Action): 动作定义了CRSD对资源进行启动、停止、检查和清除操作时所需要运行的步骤, 它可以是一段shell脚本、一段应用程序、数据库命令等。
2. 资源概要文件(profile) : 概要文件定义了资源的很多属性, 以便CRSD能够根据概要文件定义的属性来创建资源。例如:检查间隔、动作脚本等。
3. 依赖关系( Dependency): 资源之间并不是独立的, 有些资源之间是存在互相依赖关系的。例如: 数据库实例启动的前提是ASM实例先要被启动, 这表示数据库实例资源需要依赖于ASM实例资源, 而这种依赖关系是通过资源属性REQUIRED_RESOURCES来实现的。
4. 权限:由于不同的资源需要执行的操作也是不同的, 这意味着执行操作的用户也会不同(主要是root和Oracle用户)所以, 每个资源都会针对不同的用户指定不同的权限。这也是为什么crsd.bin守护进程需要以root用户运行的原因之一。
Oracle集群管理软件(CRS)还定义了一些racg模块, 不同的racg模块负责管理不同的资源, 例如:racgvip负责管理VIP, 这些模块负责定义对资源操作的动作。看到这里, 读者对CRSD管理资源的方法应该有了比较清晰的认识, 基本上可以将这些方法总结为以下的两点:
第一点:CRSD通过OCR定义资源。当crsd.bin守护进程启动时, 通过读取OCR中的信息来获得资源定义。而当资源属性发生改变时,crsd.bin守护进程也会修改OCR中的信息。
第二点:CRSD通过调用racg模块来实现对资源的各种动作。

对于 11gr2版本,ohasd 变成了集群启动的唯一始点。而所有的其他守护进程和集群管理的资源统统被定义为资源, 例如: cssd 守护进程就以初始化资源ora.cssd 的形式存在,而obasd 守护进程负责管理集群所有的守护进程对应的资源。
同时, 集群管理软件(GI) 不再使用racg 模块来管理资源, 而是用代理进程(agent) 统一实现对所有资源的管理。
既然一切都变成了资源, 那么和10g 版本类似, 就需要有一个注册表来保存资源的属性。OCR 是用于保存CRSD 所管理的资源的注册表, 但是在CRSD 启动之前集群还有很多初始化资源(例如asm 实例) 需要启动, 所以只有OCR 是不够的。Oracle 在11gR2 版本中推出了另一个集群注册表OLR ( Oracle Local regist)。
(1) OLR
顾名思义, OLR 是保存在本地的集群注册表, 也就是说OLR 是保存在每个节点本地的,而且其中的信息大部分是针对每个节点的。OLR 的主要作用就是为ohasd 守护进程提供集群的配置信息和初始化资源的定义信息。当集群启动时ohasd 会从/etc/oracle/olr.loc 文件(不同平台, 文件位置会不同) 中读取OLR 的位置, OLR 默认保存在<gi home>/cdata 下, 文件名为<节点名>.olr 。

[root@node1 bin]# more /etc/oracle/olr.loc
olrconfig_loc=/u01/app/11.2.0/grid/cdata/node1.olr
crs_home=/u01/app/11.2.0/grid

接下来看一下OLR信息,OLR信息需要通过ocrdump来产生一个转存储文件才能查看

[grid@node1.localdomain$]ls -l /u01/app/11.2.0/grid/cdata/node1.olr 
-rw------- 1 root oinstall 272756736 Oct 13 09:18 /u01/app/11.2.0/grid/cdata/node1.olr

ocrdump使用方法:

[grid@node1.localdomain$]ocrdump -help
Name:
        ocrdump - Dump contents of Oracle Cluster/Local Registry to a file.

Synopsis:
        ocrdump [-local] [<filename>|-stdout] [-backupfile <backupfilename>] [-keyname <keyname>] [-xml] [-noheader]

Description:
        Default filename is OCRDUMPFILE. Examples are:

        prompt> ocrdump
        writes cluster registry contents to OCRDUMPFILE in the current directory

        prompt> ocrdump MYFILE
        writes cluster registry contents to MYFILE in the current directory

        prompt> ocrdump -stdout -keyname SYSTEM
        writes 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RAC是一个完整的集群应用环境,它不仅实现了集群的功能,而且提供了运行在集群之上的应用程序,即Oracle数据库。无论与普通的集群相比,还是与普通的oracle数据库相比,RAC都有一些独特之处。 RAC由至少两个节点组成,节点之间通过公共网络和私有网络连接,其中私有网络的功能是实现节点之间的通信,而公共网络的功能是提供用户的访问。在每个节点上分别运行一个Oracle数据库实例和一个监听器,分别监听一个IP地址上的用户请求,这个地址称为VIP(Virtual IP)。用户可以向任何一个VIP所在的数据库服务器发出请求,通过任何一个数据库实例访问数据库。Clusterware负责监视每个节点的状态,如果发现某个节点出现故障,便把这个节点上的数据库实例和它所对应的VIP以及其他资源切换到另外一个节点上,这样可以保证用户仍然可通过这个VIP访问数据库。 在普通的Oracle数据库中,一个数据库实例只能访问一个数据库,而一个数据库只能被一个数据库实例打开。在RAC环境中,多个数据库实例同时访问同一个数据库,每个数据库实例分别在不同的节点上运行,而数据库存放在共享的存储设备上。 通过RAC,不仅可以实现数据库的并发访问,而且可以实现用户访问的负载均衡。用户可以通过任何一个数据库实例访问数据库,实例之间通过内部通信来保证事务的一致性。例如,当用户在一个实例修改数据时,需要对数据加锁。当另一个用户在其他实例中修改同样的数据时,便需要等待锁的释放。当前一个用户提交事务时,后一个用户立即可以得到修改之后的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值