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]$
|
查看本文来源