- 浏览: 4413186 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (634)
- Oracle日常管理 (142)
- Oracle体系架构 (45)
- Oracle Tuning (52)
- Oracle故障诊断 (35)
- RAC/DG/OGG (64)
- Oracle11g New Features (48)
- DataWarehouse (15)
- SQL, PL/SQL (14)
- DB2日常管理 (9)
- Weblogic (11)
- Shell (19)
- AIX (12)
- Linux/Unix高可用性 (11)
- Linux/Unix日常管理 (66)
- Linux桌面应用 (37)
- Windows (2)
- 生活和工作 (13)
- 私人记事 (0)
- Python (9)
- CBO (15)
- Cognos (2)
- ORACLE 12c New Feature (2)
- PL/SQL (2)
- SQL (1)
- C++ (2)
- Hadoop大数据 (5)
- 机器学习 (3)
- 非技术 (1)
最新评论
-
di1984HIT:
xuexilee!!!
Oracle 11g R2 RAC高可用连接特性 – SCAN详解 -
aneyes123:
谢谢非常有用那
PL/SQL的存储过程和函数(原创) -
jcjcjc:
写的很详细
Oracle中Hint深入理解(原创) -
di1984HIT:
学习了,学习了
Linux NTP配置详解 (Network Time Protocol) -
avalonzst:
大写的赞..
AIX内存概述(原创)
clusterware组件和进程
clusterware由若干个进程组成,在unix、linux系统中,这些进程以后台daemon的形式存。集群的所有节点上都会有这些进程,不同节
点上的同名进程之间相互通信,实现了集群的相互通信,同时这些进程还要负责本节点上的Oracle Clusterware和Oracle
database之间的通信。下面是Clusterware的服务组件和进程列表
Oracle Clusterware Component | LInux/Unix进程 |
Cluster Synchronization Services (CSS) |
init.cssd ocssd ocssd.bin |
Cluster Ready Service (CRS) | crsd.bin |
Event Manager Service (EVM) |
evmd evmdlogger |
Oracle Notification Service (ONS) | ons |
Process Monitor Daemon | oprocd |
RACG |
racgmain racgimon |
CSS(Cluster Synchronization Service)
这个服务通过管理集群中的各个节点成员身份完成整个集群的配置工作。每当有新的节点加入到集群,或者有节点离开集群时,CSS负责通知集群的所有节点变更集群配置信息。
CSS服务有两种心跳机制:一种是通过私有网络的Network Heartbeat,另一张是通过Voting Disk的Disk Heartbeat
这两个心跳都有最大延迟,对于Disk Heartbeat这个延时叫IOT(I/O Timeout),单位为秒;对于Network Heartbeat叫做MC(MisCount)是指可以丢失包的次数,以秒为计。缺省情况下这些参数由Oracle自行判定,并且不建议调整。可通过如 下命令查看:
[oracle@rac1 ~]$ crsctl get css disktimeout
200
[oracle@rac1 ~]$ crsctl get css misscount
60
注意:不同版本的RAC,IOT和MC的默认值不同。10.2.0.1中 Linux上默认misscount为60s,其他平台为30s,若使用了第三方vendor clusterware则为600s,但10.2.0.1中未引入disktimeout;10.2.0.4以后misscount为 60s,disktimeout为200s;11.2以后misscount为30s
负责运行css服务的是init.cssd进程,如果某个节点上的这个进程失败,这个节点会被重启。这个进程是以root身份运行的。该进程是由系 统的init启动的。init启动init.cssd后,init.cssd还会启动ocssd.bin,oprocd和oclsomon.bin。
ocssd管理节点成员关系,以oracle身份运行。如果ocssd死掉或被kill,那么init就会重启故障节点。如果ocssd发生错 误,init就会再次启动init.cssd,在尝试启动ocssd进程之前,后者发现已经有ocssd daemon,也会重启故障节点。
oclsomon是从10.2.0.2引入的,以oracle身份运行,用来监控css,如果发现进程挂起,也会重启节点
CRS(Cluster Ready Service)
这个组件负责集群的高可用性。被CRS管理的对象叫集群资源,这些资源包括数据库、实例、服务、监听器、VIP地址以及应用程序进程。缺省情况 下,CRS管理着4个应用程序进程:Oracle监听器,VIP地址,GSD(Global Service Daemon),ONS(Oracle Notification Service)。这些资源信息都保存在OCR中。每当某个资源发生了变化,CRS就会生成一个事件。
CRS会监控这些资源的状态,如果某个资源失效了(比如实例或监听),CRS就会尝试自动重启该组件。如果尝试几次都失败就会尝试放弃。缺省时,CRS会尝试5次然后放弃。
CRSD是提供HA的主要进程,提供CRS服务,以root身份运行,如果CRS失败,该进程会自动重启。CRSD是Oracle clusterware高可用性的核心,负责管理注册应用的start、stop、monitor和failover。CRSD为每个实例起一个专用的 racgimon进程负责监控各应用的运行情况,CRSD负责管理OCR中的各资源配置以及状态。它也是以root用户运行,如果这个进程失败会自动重 启。此外,CRSD还可以临时生成以下进程执行某些操作:
racgeut(Execute Under Timer),定时触发,杀掉一些超市进程
racgmdb(Manage Database),启动、停止和检查数据库实例
racgchsn(Change Service Name),给实例增加、删除、检查服务名
racgons,维护OCR中的ONS配置信息
racgvip,启动、检查、停止VIP
所有需要“高可用性”的组件,都会在安装配置的时候,以CRS Resource的形式登记到OCR中,而CRSD进程就根据OCR中的内容决定监控哪些进程、如何监控、出现问题时如何解决。也就是说CRSD需要启 动、停止、监控和Failover这些资源。默认情况下,CRS会自动尝试5次,如果还是失败,则会放弃尝试。
CRS Resource包括GSD(Global Service Daemon)、ONS(Oracle Notification Service Daemon)、linster、VIP、Database、Instance和Service。GSD,ONS,VIP和listener属于 Noteapps类;而Database、Instance和Service属于Database-Related Resource类。Nodeapps就是说每个节点只要一个就够了,比如每个节点一个listener,而Database-related是说这些资 源和数据库相关,不受节点限制,比如一个节点可以有多个实例、每个实例多个service。
被CRS管理的对象被称为Resource,一个资源的生命周期包含以下几个阶段:创建或修改 profile(crs_profile)-->将resource注册到OCR中(crs_register)-->启动 (crs_start)-->查看状态(crs_stat)-->重新分配到其他节点(crs_relocate)-->停止 (crs_stop)-->取消注册(crs_unregister)。资源的profile以及相关属性都存放在OCR中。profile中的属 性包括check interval、action script、dependencies、failure policies、privileges等,可以使用crs_stat -p resourcename查看各项属性
EVM(Event Management)
这个组件负责对外发布CRS生成的事件,负责这个组件的是evmd进程,以root身份运行。这些event通过两种方式发布给客户--ONS和 Callout Script。用户可以自定义回调脚本,放在特定目录下这样当有事件发生时,evmd会自动扫描该目录,并调用用户脚本。EVM就可以调用我们自己的脚 本,这种调用是通过racgevt进程进行的。
EVMD进程除了发布事件之外,他还是crs和css之间通信的桥梁。
ONS ( Oracle Notification Service )
ONS:Oracle通告服务,发布和订阅Fast Application Notification事件。这个组件和CRS进行协作,加强了RAC的负载均衡和故障检测能力。
Oracle Clusterware Process Monitor Daemon(oprocd)
从oracle9.2.0.2.0开始到10.2.0.4以及11.1.0.1到11.1.0.5,Oracle在linux下建立RAC时推荐使 用一个I/O fencing模块,叫做hangcheck-timer,此模块作用是用来监测节点Linux kernel是否hang住,如果长时间hang住的话Oracle认为对RAC节点稳定性存在影响,就会重启此节点. 此模块有三个参数hangcheck_tick和hangcheck_margin、hangcheck_reboot,如果kernel在 hangcheck-tick和hangcheck-margin时间总和内无响应的话,hangcheck-timer根据 hangcheck_reboot的值确定是否重启系统.hangcheck_reboot大于等于1,重启;0,不重启。在2.6的内核中,缺省值是 0。那么"Hangcheck: hangcheck value past margin!"告警信息,表示由于hangcheck-reboot值为1。系统应该重启但没有重启。
不过从10.2.0.4开始,以及11.1.0.6以后,Linux平台开始使用oprocd这个进程,也叫做Process Monitor Daemon来实现“IO 隔离”功能。oprocd这个进程用来检测节点的Processor hang(CPU挂起)。该进程锁定在内存中,用于提供IO Fencing功能。它所提供的其实和linux平台下hangcheck相同的功能,机制也类似。如果这个时间超过了某个期待值(默认是 1.5s),oprocd进程就会重启节点。oprocd进程的失败也会导致Oracle clusterware重启节点。
oprocd也是被init.cssd脚本以root身份启动的,这个进程用来检查本节点硬件和驱动是否被"frozen"。如果一个节
点"frozen"足够长的时间,其他节点就会把这个节点从集群中踢出,这个节点的oprocd进程就会使用c代码重启本节点。这个进程有两个启动参数,
这个两个启动参数控制时间间隔
-t : 超时时间,缺省1000,单位毫秒 (OPROCD_DEFAULT_TIMEOUT=1000)
-m : 重启前可接受的延迟,单位毫秒,缺省500 (OPROCD_DEFAULT_MARGIN=500)
$ ps -efl | grep oprocd
0 S root 6444 3080 0 78 0 - 636 - Apr15 ? 00:00:00 /bin/sh /etc/init.d/init.cssd oprocd
4 S root 7255 6444 0 -40 - - 516 - Apr15 ? 00:00:00 /u01/app/crs11g/bin/oprocd run -t 1000 -m 500 -f
这两个参数相加即之前所说的1.5s,在/etc/init.d/init.cssd用下面两个变量定义
OPROCD_DEFAULT_TIMEOUT=1000
OPROCD_DEFAULT_MARGIN=500
为了在重启前可接受的时间来把更多的日志信息写入磁盘。oracle推荐设置DIAGWAIT为13。设置了DIAGWAIT为13会默认增加-m的时间,下面显示设置DIAGWAIT为13后,-m参数值为10000
$ ps -efl | grep oprocd
0 S root 6444 3080 0 78 0 - 636 - Apr15 ? 00:00:00 /bin/sh /etc/init.d/init.cssd oprocd
4 S root 7255 6444 0 -40 - - 516 - Apr15 ? 00:00:00 /u01/app/crs11g/bin/oprocd run -t 1000 -m 10000 -f
OPROCD和hangcheck-timer在linux平台下是同时运行并提供不同的检测机制的,当他们导致节点重启的话,在系统日志中记录的信息是不同的:
oprocd导致的重启会记录"SysRq: resetting"
Hangcheck-timer导致的重启会记录"Hangcheck: hangcheck is restarting the machine"
GSD (Global Services Daemon)
每个节点都会启动一个GSD进程,GSD接受来自客户端工具的请求,如果DBCA,EM,srvctl等执行管理工作。GSD不是后台管理进程,他以服务的方式创建和启动。从10g开始,GSD不再像8i,9i时那样是主要进程。
RACGIMON
RACGIMON这个进程负责检查数据库状态,负责Service的启动、停止、故障转移(Failover)。这个会建立到数据库的持久连接,定期检查SGA中的特点信息,该信息有PMON进程定时更新。
参考至:《大话Oracle RAC》张晓明著
http://lanying1982.blog.163.com/blog/static/23067748201091113730962/
http://docs.oracle.com/cd/B10500_01/rac.920/a96597/pssvarch.htm
http://t.askmaclean.com/viewthread.php?action=printable&tid=1271
http://docs.oracle.com/cd/B28359_01/rac.111/b28254/rac_glossary.htm
http://www.doc88.com/p-430722924797.html
本文原创,转载请注明出处、作者
如有错误,欢迎指正
邮箱:czmcj@163.com
发表评论
-
Duplicate a Database Using RMAN in Oracle Database 11g Release 2
2016-11-03 15:38 987Duplicate a Database Using RMA ... -
grid control 安装总结 (三)之EMD upload error: uploadXMLFiles skipped或忘记OMS密码
2014-11-17 17:16 2837[oracle@anbob agent10g]$ bin/e ... -
Grid Control服务端看不到Agent相关信息,同时OMS状态为unknown处理
2014-11-17 17:14 2207一次Grid Control的agent是启动的,但是在GC ... -
给11gR2 RAC添加LISTENER监听器并静态注册
2014-10-22 17:52 3241之前有同学想要给11gR2的RAC添加LISTENER监听器 ... -
HOW TO REMOVE CRS AUTO START AND RESTART FOR A RAC INSTANCE
2014-10-12 20:08 1514Subject: HOW TO REMOVE CRS AU ... -
How To Enable Archive Logging In RAC Environment [ID 1186764.1]
2014-10-12 19:45 1049How To Enable Archive Logging ... -
Oracle 11g RAC使用Manual和Policy Managed方法配置
2014-10-12 17:25 8934软件环境: 操作系统:Red Hat Enterpris ... -
Moving OCR and Voting Disk to Oracle ASM Online
2014-10-12 16:35 2709Prior Oracle 11gR2, it was only ... -
Oracle 11g R2的启动与关闭(原创)
2014-10-10 15:04 27248概述 Oracle 11gR2 中对CRSD资源进行了重新 ... -
重新配置与卸载11gR2 Grid Infrastructure
2014-10-10 08:24 2342概述Oracle 11g R2 Grid Infrastru ... -
Data Guard Broker Properties
2014-10-07 16:15 1043Data Guard Broker Properties ... -
Data Guard - Snapshot Standby Database配置
2014-10-07 07:39 994概述一般情况下,物理standby数据库处于mount状态 ... -
Active Data Guard
2014-10-06 19:27 913Oracle Active Data Guard is a ... -
Data Guard Broker系列之六:Fast-Start Failover
2014-10-06 18:29 3118Fast-Start Failover 基本概念 Fa ... -
Data Guard Broker系列之五:数据库角色转换
2014-10-06 18:28 1305数据库转换的基本概 ... -
Data Guard Broker系列之四:数据库管理
2014-10-06 18:27 1256数据库状态管理 数据 ... -
Data Guard Broker系列之三:Data Guard Broker配置管理
2014-10-06 16:56 1302配置data guard broker配置文件基本参数 ... -
Data Guard Broker系列之二:Data Guard Broker配置实战
2014-10-05 16:16 1622配置之前DG环境状态 测试的DG环境安装在同一个机器上, ... -
Data Guard broker系列之一:Data Guard Broker基础
2014-10-05 16:13 2334Data Guard broker概览 Data ... -
Dataguard切换保护模式(从MAXIMUM PERFORMANCE 到 maximize availability)
2014-10-05 14:52 12981. 首先查看主库当前保护模式(主库操作)SQL> s ...
相关推荐
RAC 的工作原理依赖于一个关键组件——Clusterware,它负责管理和协调集群中的各种资源,确保数据的一致性和系统的稳定性。 #### 二、Clusterware 在集群层的角色 在集群层,Clusterware 扮演着类似于操作系统内核...
Oracle RAC 和 Oracle Clusterware 的组件 1. Oracle RAC: Oracle RAC 是一种高可用性解决方案,可以提供高可用性、可扩展性和高性能。 2. Oracle Clusterware:Oracle Clusterware 是一种集群管理软件,可以帮助...
Oracle Real Application Clusters(RAC)和Oracle Clusterware是Oracle数据库集群的关键组件,它们能够提供高可用性和负载均衡功能。本文将围绕文档ID为10105195.8的描述——即“Clusterware在重启后由于gpnpd.bin...
本资源摘要信息旨在提供 Oracle 10g RAC 训练的详细信息,涵盖了 Oracle RAC 的概念、体系结构、集群术语、基本功能、高可用性、可扩展性、软件组件、硬件组件等方面。 Oracle RAC 概念 Oracle RAC 全称 Oracle ...
Oracle Clusterware是Oracle RAC的核心组件之一,它提供了集群节点间的通信和资源管理功能,确保了数据库服务的高可用性和负载均衡。在HP-UX环境下,正确安装和配置Clusterware对于构建一个健壮的RAC环境至关重要。...
在Linux环境中进行Oracle RAC(Real Application Clusters)部署时,Oracle Clusterware的正确安装与配置至关重要。Clusterware作为RAC集群的基础架构,负责管理集群节点间的通信以及集群资源的协调。本文将详细阐述...
Oracle Clusterware 和 Oracle Real Application Clusters (RAC) 是 Oracle 提供的两个关键组件,旨在实现高可用性和负载均衡的企业级数据库解决方案。本安装指南详细介绍了在 Linux 平台上安装和配置 Oracle ...
Oracle Clusterware是实现RAC的关键组件,它提供了集群间的协调和故障切换功能。以下是对安装过程的详细说明: 1. **预安装任务**: - 首先,确保硬件满足最低要求,如文中提到的两台Ultra-2企业服务器,每台配备...
Oracle RAC系统的基本拓扑结构如下所示:多个服务器节点组成一个集群,每个服务器节点上都有自己独立的OS、ClusterWare、Oracle RAC数据库程序等,并且每个节点都有自己的网络监听器。所有节点通过私有网络进行通信...
这个"Oracle10G RAC安装包 10201_clusterware_linux_x86_64安装包"包含了在Linux x86_64平台上安装Oracle 10g RAC所需的所有组件和工具。 1. **Oracle Clusterware**:这是Oracle RAC的核心,提供集群管理服务,...
3. Clusterware:Oracle Clusterware是RAC的核心组件,负责管理和协调集群中的资源。 4. ASMLib软件包:用于管理磁盘设备,简化RAC环境中的磁盘访问。 每个组件都有对应的32位和64位版本,需要根据你的CentOS操作...
Oracle Clusterware是Oracle Real Application Clusters (RAC)的关键组件,它为RAC数据库提供了一个高可用性和高可靠性的集群环境。这份手册由多位Oracle专家共同编写,包括Richard Strohm、Ahmed Abbas、Mark Bauer...
Oracle Clusterware作为RAC的基础组件,负责管理和监控集群中的各个节点,确保在硬件或软件故障时能无缝地切换服务,保持数据的持续可用性。 Oracle Linux是一种基于Red Hat Enterprise Linux (RHEL)的开源操作系统...
每台服务器上都安装有相同的操作系统,并且运行着Oracle数据库的RAC组件以及集群软件,如Oracle Clusterware。客户端的请求首先由监听器(Listener)接收,然后根据负载均衡策略,请求可能被转发至任何一台服务器上...
4. **Grid Infrastructure (GI)**:Oracle Grid Infrastructure包括Clusterware和ASM,负责集群的管理和监控,确保RAC实例间的协调。 5. **PSU (Patch Set Update) 6**:Oracle软件的定期更新,包含了最新的安全...
每台服务器运行相同的操作系统(OS),并且装有集群软件(如Oracle Clusterware)和RAC组件。客户端的请求首先由监听器接收,然后根据负载均衡策略,请求可能被转发给当前节点的RAC实例处理,也可能转发到其他节点的...
本教程将聚焦于使用MVVM(Model-View-ViewModel)架构,结合ReactiveCocoa(RAC)框架以及路由技术来搭建iOS App的框架。这三种技术的结合能够帮助开发者实现更清晰的代码结构,提高代码可读性和测试性,同时提升...
1. Oracle 9i RAC软件:获取完整的Oracle 9i软件包,包括数据库服务器和Clusterware组件。 2. Grid Infrastructure:这是Oracle 9i RAC的核心部分,包含Clusterware和ASM(Automatic Storage Management)。 3. 其他...
2. **Grid Infrastructure**:RAC依赖于Oracle Grid Infrastructure,包括集群软件、网络配置和存储访问组件,确保实例间的协调和通信。 3. **Clusterware**:Oracle Clusterware是RAC的基础,负责实例的启动、监控...