eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« EMC阵列磁盘又又又坏 | Blog首页 | 本站增加相册管理系统 »

Oracle10g New Feature:CRS(Cluster Ready Services)
modb.pro

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

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

系统启动以后,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介入进行一些特殊处理。

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]$


历史上的今天...
    >> 2019-10-09文章:
    >> 2009-10-09文章:
    >> 2008-10-09文章:
    >> 2007-10-09文章:
    >> 2006-10-09文章:

By eygle on 2005-10-09 11:57 | Comments (10) | Oracle12c/11g | 465 |

10 Comments

问一下:我在hp unix 上装 oracle10g的CRS时,到最后要求执行root.sh脚本时,就挂在了提示信息::“Expecting the CRS daemons to be up within 600 seconds”下,在也执行不下去了。不知道你有没有遇到过这种情况?

我的msn:flgang@hotmail.com

你去看日志啊,里面会告诉你哪里出了问题。

在某些极端情况下,如果ocssd无法正常启动,会导致操作系统循环重启。这时候需要DBA介入进行一些特殊处理。
因为存储的节点机出了问题重启后可以使用了,然后重启集群节点后,系统就循环重启,不知道您所说的特殊处理是指什么呢?

在10g中怎样只启动CRS进程而不把RAC数据库进程“带”起来?
谢谢!

解决循环重启的问题是修改/etc/init.d/init.cssd文件,注释掉其中FAST_REBOOT语句

可以设置数据库不自动启动.
srvctl modify database -d crm -y manual

CRS是一个单独的产品,在构建RAC环境中,需要单独安装。
CRS启动的三个主要的后台进程为:...

这两句话概念上都是错的。

CRS是clusterware的一个最主要的程序之一,或称之为主要的进程。其他ocssd,evmd等和它是平行的概念。

to wildcrane;
感谢指出。

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

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

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

10G rac on linux 无法启动
srvctl start database -d racdb
PRKP-1001 : Error starting instance racdb1 on node rac1
CRS-1028: Dependency analysis failed because of:
CRS-0223: Resource 'ora.racdb.racdb1.inst' has placement error.
PRKP-1001 : Error starting instance racdb2 on node rac2
CRS-1028: Dependency analysis failed because of:
CRS-0223: Resource 'ora.racdb.racdb2.inst' has placement error.

但是单独用SQLPLUS可以连接,谁知道是什么原因?

conn / as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.

Total System Global Area 167772160 bytes
Fixed Size 1218316 bytes
Variable Size 109054196 bytes
Database Buffers 54525952 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.

./crs_stat
NAME=ora.rac1.LISTENER_RAC1.lsnr
TYPE=application
TARGET=ONLINE
STATE=UNKNOWN on rac1

NAME=ora.rac1.gsd
TYPE=application
TARGET=ONLINE
STATE=UNKNOWN on rac1

NAME=ora.rac1.ons
TYPE=application
TARGET=ONLINE
STATE=UNKNOWN on rac1

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

NAME=ora.rac2.LISTENER_RAC2.lsnr
TYPE=application
TARGET=ONLINE
STATE=UNKNOWN on rac2

NAME=ora.rac2.gsd
TYPE=application
TARGET=ONLINE
STATE=UNKNOWN on rac2

NAME=ora.rac2.ons
TYPE=application
TARGET=ONLINE
STATE=UNKNOWN on rac2

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

NAME=ora.racdb.db
TYPE=application
TARGET=OFFLINE
STATE=OFFLINE

NAME=ora.racdb.racdb1.inst
TYPE=application
TARGET=OFFLINE
STATE=OFFLINE

NAME=ora.racdb.racdb2.inst
TYPE=application
TARGET=ONLINE
STATE=UNKNOWN on rac2

不知道什么地方出了问题,想知道如何STEP BY STEP 的开启一个RAC DB

tail css.log
2007-12-16 09:40:16.675: [ OCRRAW][2531772672]proprinit: Could not open raw dev
ice
2007-12-16 09:40:16.678: [ default][2531772672]a_init:7!: Backend init unsuccess
ful : [33]
2007-12-16 09:40:16.678: [ CSSCLNT][2531772672]clsssinit: error(33 ) in OCR init
ialization

2007-12-17 08:58:47.002: [ OCROSD][2531772672]utgdv:2:ocr loc file cannot be
opened


我根本就没有装rac,这么日志里会有这样的提示,真是怪怪的


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com