Oracle CRS简介

简介:

Oracle CRS简介





从Oracle 10gR1 RAC 开始,Oracle推出了自身的集群软件,这个软件的名称叫做Oracle Cluster Ready Service(Oracle集群就绪服务),简称CRS。从Oracle 10gR2开始,包括最新的11g,Oracle将其更名为Clusterware(集群件),但通常意义上我们认为CRS = Clusterware = Oracle Cluster Ready Service = Oracle Cluster Software.

CRS一般用来搭建Oracle的并行数据库,即RAC,但除了与RAC的接口之外,CRS还提供了一组高可用性的应用程序接口(API),用来搭建一般应用程序的高可用集群,即一般我们常说的双机热备,比如使用CRS实现MySQL的双机热备。

Oracle10g New Feature:CRS(Cluster Ready Services)

作者:eygle |English Version【转载时请以超链接形式标明文章出处和作者信息及本声明
链接:http://www.eygle.com/archives/2005/10/oracle10g_new_feature_crs.html

Oracle10g CRS(Cluster Ready Services)是Oracle10g RAC的一个新特性,用以提供标准的群集服务接口。
在以前的版本中,Oracle RAC必须借助第三方Cluster软件,但是从Oracle10g开始,我们有了新的选择。
CRS就是这样一个替代产品,用以提供RAC环境中的群集服务。

CRS是一个单独的产品,在构建RAC环境中,需要单独安装。

(在Oracle刚推出CRS时,Oracle还没发明ClusterWare这个词。
所以最初的CRS就是指现在的Clusterware,如果你注意过的话最初Oracle的安装盘上装Clusterware的时候,都说的是CRS。

所以提到Cluster Ready Services,大家都知道指的是Oracle的Clusterware而不是crs daemon.

只不过从10gR2开始,ClusterWare被引入,CRS这个词的含义被Oracle偷偷的缩小了。)

系统启动以后,CRS会自动启动,启动主要由/etc/init.d中的几个脚本完成:


 

[eygle@raclinux1 init.d]$ ll init*
-r-xr-xr-x  1 root root  1951 Jun 27 13:27 init.crs
-r-xr-xr-x  1 root root  4735 Jun 27 20:32 init.crsd
-r-xr-xr-x  1 root root 35401 Jun 27 13:27 init.cssd
-r-xr-xr-x  1 root root  3197 Jun 27 13:27 init.evmd



CRS启动的三个主要的后台进程为:

[oracle@raclinux1 bin]$ ps -ef|grep d.bin
root      3140     1  0 23:13         00:00:00 /u01/app/oracle/product/10.2.0/crs/bin/crsd.bin
oracle    3884  3062  0 23:14         00:00:00 /u01/app/oracle/product/10.2.0/crs/bin/evmd.bin
oracle    4017  3983  0 23:14         00:00:00 /u01/app/oracle/product/10.2.0/crs/bin/ocssd.bin
oracle   21117 13799  0 23:29 pts/1   00:00:00 grep d.bin




这几个进程的主要作用如下:

CRSD:
- Engine for HA operation 
- Manages 'application resources'
- Starts, stops, and fails 'application resources' over
- Spawns separate 'actions' to start/stop/check application resources
- Maintains configuration profiles in the OCR (Oracle Configuration Repository)
- Stores current known state in the OCR.
- Runs as root
- Is restarted automatically on failure

OCSSD:
- OCSSD is part of RAC and Single Instance with ASM
- Provides access to node membership
- Provides group services
- Provides basic cluster locking
- Integrates with existing vendor clusteware, when present
- Can also runs without integration to vendor clustware
- Runs as Oracle.
- Failure exit causes machine reboot.  
--- This is a feature to prevent data corruption in event of a split brain.

注意,ocssd进程在单实例ASM系统中也可以见到,以下是我的一个单实例ASM系统,ocssd进程同样存在:

bash-2.03# ps -ef|grep _+ASM
  oracle  3264     1  0   Aug 25 ?        0:01 asm_lgwr_+ASM
    root 12669  8167  0 11:58:56 pts/1    0:00 grep _+ASM
  oracle  3270     1  0   Aug 25 ?        0:00 asm_rbal_+ASM
  oracle  3266     1  0   Aug 25 ?        0:05 asm_ckpt_+ASM
  oracle  3268     1  0   Aug 25 ?        0:00 asm_smon_+ASM
  oracle  3262     1  0   Aug 25 ?        0:00 asm_dbw0_+ASM
  oracle  3258     1  0   Aug 25 ?        0:00 asm_pmon_+ASM
  oracle  3260     1  0   Aug 25 ?        0:00 asm_mman_+ASM
bash-2.03# ps -ef|grep ocssd
    root 12672  8167  0 11:59:01 pts/1    0:00 grep ocssd
  oracle  5374     1  0   Apr 07 ?        0:01 /opt/oracle/product/10.1.0/bin/ocssd.bin
bash-2.03#


ocssd进程非常重要,如果该进程异常中止,会导致系统crash。
在某些极端情况下,如果ocssd无法正常启动,会导致操作系统循环重启。这时候需要DBA介入进行一些特殊处理。(解决循环重启的问题是修改/etc/init.d/init.cssd文件,注释掉其中FAST_REBOOT语句)

EVMD:
- Generates events when things happen
- Spawns a permanent child evmlogger
- Evmlogger, on demand, spawns children
- Scans callout directory and invokes callouts.
- Runs as Oracle.
- Restarted automatically on failure



我们可以通过CRS工具来查看CRS状态:

[oracle@raclinux1 ~]$ cd $ORA_CRS_HOME/bin
[oracle@raclinux1 bin]$ pwd
/u01/app/oracle/product/10.2.0/crs/bin
[oracle@raclinux1 bin]$ ./crs_stat
NAME=ora.RACDB.RACDB1.inst
TYPE=application
TARGET=ONLINE
STATE=ONLINE on raclinux1

NAME=ora.RACDB.RACDB2.inst
TYPE=application
TARGET=ONLINE
STATE=ONLINE on raclinux1

NAME=ora.RACDB.db
TYPE=application
TARGET=ONLINE
STATE=ONLINE on raclinux1

NAME=ora.raclinux1.ASM1.asm
TYPE=application
TARGET=ONLINE
STATE=ONLINE on raclinux1

NAME=ora.raclinux1.LISTENER2_RACLINUX1.lsnr
TYPE=application
TARGET=ONLINE
STATE=ONLINE on raclinux1

NAME=ora.raclinux1.LISTENER_RACLINUX1.lsnr
TYPE=application
TARGET=ONLINE
STATE=ONLINE on raclinux1

NAME=ora.raclinux1.gsd
TYPE=application
TARGET=ONLINE
STATE=ONLINE on raclinux1

NAME=ora.raclinux1.ons
TYPE=application
TARGET=ONLINE
STATE=ONLINE on raclinux1

NAME=ora.raclinux1.vip
TYPE=application
TARGET=ONLINE
STATE=ONLINE on raclinux1

[oracle@raclinux1 bin]$












本文转自xiaocao1314051CTO博客,原文链接:http://blog.51cto.com/xiaocao13140/1930507,如需转载请自行联系原作者





相关文章
|
安全 Windows
Win10/Win11如何获取最高管理员权限
Win10/Win11如何获取最高管理员权限
3515 0
|
5月前
|
运维 监控 安全
2025 年 Splunk 的 5 大替代方案:企业日志管理工具新选择
Splunk 虽强大,但高昂成本和复杂性促使企业寻找替代方案。本文推荐 2025 年五大日志管理与安全分析工具:Log360、Elastic Security、Datadog、Graylog 和 Sumo Logic,涵盖开源、云原生与高性能方向,适配不同企业需求,助你提升安全与运维效率。
352 0
|
监控 Ubuntu 测试技术
Ubuntu 20.04 安装部署 TiDB DM v7.3.0 集群【全网独家】
在Ubuntu上搭建TiDB DM集群的详细步骤分享,作者因工作需求克服了部署难题。测试环境包括3台Ubuntu 20.04主机:1台master和2台worker。首先,确保所有主机安装TiDB单机环境,使用TiUP工具下载并部署。接着,设置主机间免密登录,安装必要组件如sudo、systemd、iproute2和DM组件。配置文件可通过在线或离线方式获取。部署时,根据需求编辑`topology.yaml`,然后使用`tiup dm deploy`命令安装。最后,启动集群并检查节点状态,确认DM集群正常运行。注意,解决内存不足和端口连通性问题以避免错误。
804 3
|
Oracle 网络协议 关系型数据库
Oracle DataGuard主备切换之自动切换
Oracle DataGuard主备切换之自动切换
705 2
|
Shell 开发工具 git
【Git】解决Untracked Files Prevent Checkout的问题
【Git】解决Untracked Files Prevent Checkout的问题
3960 0
|
定位技术 API Python
geopandas 0.14版本重要更新内容一览
geopandas 0.14版本重要更新内容一览
268 1
|
SQL Oracle 关系型数据库
Oracle数据库基础教程:从安装到基本操作的全面介绍
Oracle数据库基础教程:从安装到基本操作的全面介绍
|
机器学习/深度学习 数据采集 人工智能
从零开始构建大语言模型(MEAP)(1)
从零开始构建大语言模型(MEAP)
726 1
|
算法 索引
聊聊字典编码(上)
聊聊字典编码(上)
1274 0
聊聊字典编码(上)
解决asm挂载盘失败ORA-15040 ORA-15020
查看磁盘发现sde的分区sde1重新启动后,就消失了!
340 0