首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

RAC集群层crsctl, ocrcheck,ocrdump,ocrconfig下令详解

2013-01-05 
RAC集群层crsctl, ocrcheck,ocrdump,ocrconfig命令详解集群层集群层是指由Clusterware组成的核心集群, 这

RAC集群层crsctl, ocrcheck,ocrdump,ocrconfig命令详解

集群层
集群层是指由Clusterware组成的核心集群, 这一层负责维护集群内的共享设备,并为应用集群提供完整的集群状态视图,应用集群依据这个视图进行调整。这一层共有4个命令:crsctl, ocrcheck,ocrdump,ocrconfig.后三个是针对OCR磁盘的。
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 not a ready state for online disk addition.
4) 确认添加后的情况:
[root@rac1 bin]# ./crsctl query css votedisk
5) 启动CRS
[root@rac1 bin]# ./crsctl start crs

3.2 ocr命令系列
Oracle Clusterware把整个集群的配置信息放在共享存储上,这个存储就是OCR Disk.在整个集群中,只有一个节点能对OCR Disk进行读写操作,这个节点叫作Master Node,所有节点都会在内存中保留一份OCR的拷贝,同时哟一个OCR Process从这个内存中读取内容。OCR内容发生改变时,由Master Node的OCR Process负责同步到其他节点的OCR Process。
因为OCR的内容如此重要,Oracle每4个小时对其做一次备份,并且保留最后的3个备份,以及前一天,前一周的最后一个备份。这个备份由Master Node CRSD进程完成,备份的默认位置是$CRS_HOME\crs\cdata\<cluster_name>目录下。每次备份后,备份文件名自动更改,以反应备份时间顺序,最近一次的备份叫作backup00.ocr。这些备份文件除了保存在本地,DBA还应该在其他存储设备上保留一份,以防止意外的存储故障。

3.2.1 ocrdump
该命令能以ASCII的方式打印出OCR的内容,但是这个命令不能用作OCR的备份恢复,也就是说产生的文件只能用作阅读,而不能用于恢复。
命令格式:ocrdump [-stdout] [filename] [-keyname name] [-xml]
参数说明:
-stdout:把内容打印输出到屏幕上
Filename:内容输出到文件中
-keyname:只打印某个键及其子健内容
-xml:以xml格式打印输出

示例:把system.css键的内容以.xml格式打印输出到屏幕
[root@rac1 bin]#./ocrdump -stdout -keyname system.css -xml|more
……
这个命令在执行过程中,会在$CRS_HOME\log\<node_name>\client目录下产生日志文件,文件名ocrdump_<pid>.log,如果命令执行出现问题,可以从这个日志查看问题原因。

3.2.2 ocrcheck
Ocrcheck命令用于检查OCR内容的一致性,命令执行过程会在$CRS_HOME\log\nodename\client目录下产生ocrcheck_pid.log日志文件。 这个命令不需要参数。
[root@rac1 bin]#./ocrcheck

3.2.3 ocrconfig
该命令用于维护OCR磁盘,安装clusterware过程中,如果选择External Redundancy冗余方式,则只能输入一个OCR磁盘位置。但是Oracle允许配置两个OCR磁盘互为镜像,以防止OCR磁盘的单点故障。OCR磁盘和Votedisk磁盘不一样,OCR磁盘最多只能有两个,一个Primary OCR和一个Mirror OCR。
[root@rac1 bin]# ./ocrconfig –help

–查看自助备份
[root@rac1 bin]#./ocrconfig -showbackup
在缺省情况下,OCR自动备份在$CRS_HOME\CRS\CDATA\cluster_name目录下,可以通过ocrconfig -backuploc <directory_name>命令修改到新的目录

3.2.4 使用导出,导入进行备份和恢复
Oracle推荐在对集群做调整时,比如增加,删除节点之前,应该对OCR做一个备份,可以使用export备份到指定文件,如果做了replace或者restore等操作,Oracle建议使用cluvfy comp ocr -n all命令来做一次全面的检查。该命令在clusterware的安装软件里。
1) 首先关闭所有节点的CRS
[root@rac1 bin]#./crsctl stop crs
2) 用root用户导出OCR内容

[root@rac1 bin]# ./ocrconfig -export /u01/ocr.exp

3) 重启CRS
[root@rac1 bin]# ./crsctl start crs

4) 检查CRS状态
[root@rac1 bin]# ./crsctl check crs
CSS appears healthy
CRS appears healthy
EVM appears healthy

5)破坏OCR内容
[root@rac1 bin]# dd if=/dev/zero f=/dev/raw/rac1 bs=1024 count=102400
102400+0 records in
102400+0 records out
6) 检查OCR一致性
[root@rac1 bin]# ./ocrcheck
PROT-601: Failed to initialize ocrcheck

7)使用cluvfy工具检查一致性
[root@rac1 cluvfy]# ./runcluvfy.sh comp ocr -n all
Verifying OCR integrity
Unable to retrieve nodelist from Oracle clusterware.
Verification cannot proceed.
8) 使用Import恢复OCR内容
[root@rac1 bin]# ./ocrconfig -import /u01/ocr.exp
9)再次检查OCR
[root@rac1 bin]# ./ocrcheck
10) 使用cluvfy工具检查
[root@rac1 cluvfy]# ./runcluvfy.sh comp ocr -n all

3.2.5 移动ocr文件位置
实例演示将OCR从/dev/raw/rac1移动到/dev/raw/raw3上。
1) 查看是否有OCR备份
[root@rac1 bin]#./ocrconfig -showbackup
如果没有备份,可以立即执行一次导出作为备份:
[root@rac1 bin]#./ocrconfig -export /u01/ocrbackup -s online
2) 查看当前OCR配置
[root@rac1 bin]# ./ocrcheck
3)添加一个Mirror OCR
[root@rac1 bin]#./ocrconfig -replace ocrmirror /dev/raw/raw4
4)确认添加成功
[root@rac1 bin]#./ocrcheck

5)改变primary OCR位置
[root@rac1 bin]#./ocrconfig -replace ocr /dev/raw/raw3
确认修改成功:
[root@rac1 bin]#./ocrcheck

6)使用ocrconfig命令修改后,所有RAC节点上的/etc/oracle/ocr.loc文件内容也会自动同步了,如果没有自动同步,可以手工的改成以下内容。
[root@rac1 bin]#more /etc/oracle/ocr.loc
ocrconfig_loc=/dev/raw/rac1
Ocrmirrorconfig_loc=/dev/raw/raw3
local_only=FALSE

热点排行