Oracle Clusterware的命令集可以分为以下4种:
节点层:osnodes
网络层:oifcfg
集群层:crsctl, ocrcheck,ocrdump,ocrconfig
应用层:srvctl,onsctl,crs_stat
下面分别来介绍这些命令。
1、节点层
olsnodes,这个命令用来显示集群点列表,可用的参数如下:
$olsnodes -h
用法: olsnodes [-n] [-p][-i] [ | -l] [-g] [-v]
-n打印节点编号和节点名
-p打印专用互联名和节点名
-i打印虚拟IP名和节点名
打印指定节点的信息
-l打印本地节点的信息
-g启用事件记录
-v在详细模式下运行
这些参数可以混合使用。
[root@rac1 bin]#$olsnodes
racnode1
racnode2
[root@rac1 bin]#olsnodes-n
racnode11
racnode22
注:若命令不能运行,添加path,或直接进入命令所在目录运行。本例位于:
/u01/crs/oracle/product/11.1.0/crs/bin
2、网络层
网络层由各个节点的网络组件组成,包括2个物理网卡和3个IP地址。也只有一个命令:oifcfg。
Oifcfg命令的格式如下:
用法: oifcfg iflist [-p [-n]]
oifcfg setif {-node | -global} {/:}…
oifcfg getif [-node | -global] [ -if [/] [-type ] ]
oifcfg delif [-node | -global] [[/]]
oifcfg [-help]
-为通信网络所知的主机名
-系统中配置的接口的名称
-接口的子网地址
-接口类型{ cluster_interconnect | public | storage }
Oifctg命令用来定义和修改Oracle集群需要的网卡属性,这些属性包括网卡的网段地址,子网掩码,接口类型等。要想正确的使用这个命令,必须先知道Oracle是如何定义网络接口的,Oracle的每个网络接口包括名称,网段地址,接口类型3个属性:interface_name/subnet:interface_type。
这些属性中没有IP地址,但接口类型有两种,public和private,前者说明接口用于外部通信,用于Oracle Net和VIP地址,而后者说明接口用于Interconnect。
接口的配置方式分为两类:
global和node-specific。前者说明集群所有节点的配置信息相同,也就是说所有节点的配置是对称的;而后者意味着这个节点的配置和其他节点配置不同,是非对称的。
Iflist:显示网口列表
Getif:获得单个网口信息
Setif:配置单个网口
Delif:删除网口
[root@rac1 bin]# ./oifcfg -help
[root@rac1 bin]# ./oifcfg iflist
[root@rac1 bin]# ./oifcfg getif
–查看public类型的网卡
[root@rac1 bin]# ./oifcfg getif -type public
–删除接口配置
[root@rac1 bin]# ./oifcfg delif–global
–添加接口配置
[root@rac1 bin]# ./oifcfg setif -global eth0/192.168.1.119:public
[root@rac1 bin]# ./oifcfg setif -globaleth1/10.85.10.119:cluster_interconnect
3、集群层
集群层是指由Clusterware组成的核心集群, 这一层负责维护集群内的共享设备,并为应用集群提供完整的集群状态视图,应用集群依据这个视图进行调整。这一层共有4个命令:crsctl, ocrcheck,ocrdump,ocrconfig.后三个是针对OCR磁盘的。
3.1 Crsctl
Crsctl命令可以用来检查CRS进程栈,每个crs进程状态,管理Votedisk,跟踪CRS进程功能。
[root@rac1 bin]# ./crsctl
3.1.1 检查crs状态
[root@rac1 bin]# ./crsctl check crs
Cluster Synchronization Services appears healthy
Cluster Ready Services appears healthy
Event Manager appears healthy
–检查单个状态
[root@rac1 bin]# ./crsctl check cssd
CSS appears healthy
[root@rac1 bin]# ./crsctl check crsd
CRS appears healthy
[root@rac1 bin]# ./crsctl check evmd
EVM appears healthy
3.1.2 配置crs栈是否自启动
CRS进程栈默认随着操作系统的启动而自启动,有时出于维护目的需要关闭这个特性,可以用root用户执行下面命令。
[root@rac1 bin]# ./crsctl disable crs
[root@rac1 bin]# ./crsctl enable crs
这个命令实际是修改了/etc/oracle/scls_scr/raw/root/crsstart这个文件里的内容。
3.1.3 启动,停止crs栈
Oracle在10.1时,必须通过重新启动系统重启Clusterware,但是从Oracle 10.2开始,可以通过命令来启动和停止CRS。
–启动CRS:
[root@rac1 bin]# ./crsctl start crs
Attempting to start CRS stack
The CRS stack will be started shortly
–关闭CRS:
[root@rac1 bin]# ./crsctl stop crs
Stopping resources.
Successfully stopped CRS resources
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.
3.1.4 查看votedisk磁盘位置
[root@rac1 bin]# ./crsctl query css votedisk
3.1.5 查看和修改crs参数
–查看参数:用get
[root@rac1 bin]# ./crsctl get css misscount
60
–修改参数: 用set,但是这个功能要慎用
[root@rac1 bin]# ./crsctl set css miscount 60
3.1.6 跟踪crs模块,提供辅助功能
CRS由CRS,CSS,EVM三个服务组成,每个服务又是由一系列module组成,crsctl允许对每个module进行跟踪,并把跟踪内容记录到日志中。
[root@rac1 bin]# ./crsctl lsmodules css
[root@rac1 bin]# ./crsctl lsmodules evm
–跟踪CSSD模块,需要root用户执行:
[root@rac1 bin]# ./crsctl debug log css "CSSD:1"
Configuration parameter trace is now set to 1.
Set CRSD Debug Module: CSSD Level: 1
–查看跟踪日志
[root@rac1 cssd]# pwd
/u01/app/oracle/product/crs/log/rac1/cssd
[root@rac1 cssd]# more ocssd.log
…
3.1.7 维护votedisk
以图形方式安装Clusterware的过程中,在配置Votedisk时,如果选择External Redundancy策略,则只能填写一个Votedisk。但是即使使用External Redundancy作为冗余策略,也可以添加多个Vodedisk,只是必须通过crsctl命令来添加,添加多个Votedisk后,这些Votedisk互为镜像,可以防止Votedisk的单点故障。
需要注意的是,Votedisk使用的是一种“多数可用算法”,如果有多个Votedisk,,则必须一半以上的Votedisk同时使用,Clusterware才能正常使用。 比如配置了4个Votedisk,坏一个Votedisk,集群可以正常工作,如果坏了2个,则不能满足半数以上,集群会立即宕掉,所有节点立即重启,所以如果添加Votedisk,尽量不要只添加一个,而应该添加2个。这点和OCR不一样。OCR只需配置一个。
添加和删除Votedisk的操作比较危险,必须停止数据库,停止ASM,停止CRS Stack后操作,并且操作时必须使用-force参数。
1) 查看当前配置
[root@rac1 bin]# ./crsctl query css votedisk
2) 停止所有节点的CRS:
[root@rac1 bin]# ./crsctl stop crs
3) 添加Votedisk
[root@rac1 bin]# ./crsctl add css votedisk /dev/raw/rac1 -force
注意:即使在CRS关闭后,也必须通过-force参数来添加和删除Votedisk,并且-force参数只有在CRS关闭的场合下使用才安全,否则会报:Cluter is n