profile通常指配置文件,crs_profile望文生义可知,就是管理集群的配置文件。在Oraclele RAC中,所有的CRS资源存放在OCR磁盘中,对于OCR更形象的比喻是类似于Windows的注册表。我们知道Windows注册表由类似树状的节点构成,其形式是KEY-VALUE,集群中的资源也是如此。Windows注册表可以整个导出,分支导出,也可以导入注册表信息。针对集群资源的管理crs_profile结合crs_register与crs_unregisterd等同于一个类似于Windows的regedit 管理工具。这么说就不陌生了吧,接着往下看。
一、crs_profile的帮助信息 对于Oracle clusterware大部分集群命令行工具而言,都提供丰富的操作指导。命令行下直接输入crs_profile将给出帮助信息 oracle@bo2dbp:~> crs_profile Usage: crs_profile -create resource_name -t application [-dir directory_path] [-a action_script] [-B binary_pathname] [-d description] [-h hosting_members] [-r required_resources] [-l optional_resources] [-p placement_policy] [-o as=auto_start,ci=check_interval,ft=failure_threshold, fi=failure_interval,ra=restart_attempts,fd=failover_delay, st=script_timeout,ap=active_placement,bt=rebalance, ut=uptime_threshold,rt=start_timeout,pt=stop_timeout] [-f] [-q]
crs_profile -create resource_name -I template_file [-dir directory_path] [-f] [-q]
crs_profile -delete resource_name [-dir directory_path] [-q]
crs_profile -print [resource_name [...]] [-dir directory_path] [-q]
crs_profile -template resource_name [-dir directory_path] [-O template_file]
crs_profile -template -t application [-O template_file]
crs_profile -update resource_name [-dir directory_path] [option ...] [-o option,...] [-q]
crs_profile -validate resource_name [-dir directory_path] [-q]
二、使用crs_profile操作集群资源
1、查看当前集群中的资源
#使用crs_stat查看集群中含srv的配置信息
oracle@bo2dbp:~> crs_stat -p | grep srv
NAME=ora.GOBO4.GOBO4_SRV.GOBO4A.srv
NAME=ora.ora10g.hr_ora10g.ora10g1.srv
DESCRIPTION=ora.ora10g.hr_ora10g.ora10g1.srv
#使用crs_stat查看集群的service服务当前处于online状态
oracle@bo2dbp:~> crs_stat -t | grep srv
ora....O4A.srv application ONLINE ONLINE bo2dbp
ora....0g1.srv application ONLINE ONLINE bo2dbp
2、使用crs_profile导出指定的集群资源信息到文件
oracle@bo2dbp:~> crs_profile -create ora.ora10g.hr_ora10g.ora10g1.srv -t application #导出到缺省路径
oracle@bo2dbp:~> crs_profile -create ora.ora10g.hr_ora10g.ora10g1.srv -t application -dir /users/oracle #导出到指定路径
oracle@bo2dbp:~> ls -hltr ora.ora10g.hr_ora10g.ora10g1.srv*
-rw-r--r-- 1 oracle oinstall 820 2012-11-07 17:34 ora.ora10g.hr_ora10g.ora10g1.srv.cap
oracle@bo2dbp:~> ls -hltr $ORA_CRS_HOME/crs/public/ora.ora10g.hr_ora10g.ora10g1.srv* #此处是缺省路径
-rw-r--r-- 1 oracle oinstall 833 2012-11-07 17:29 /u01/oracle/crs/crs/public/ora.ora10g.hr_ora10g.ora10g1.srv.cap
3、 查看已导出的资源配置文件的信息
oracle@bo2dbp:~> crs_profile -print ora.ora10g.hr_ora10g.ora10g1.srv #未指定路径的时候print缺省路径的内容
NAME=ora.ora10g.hr_ora10g.ora10g1.srv
TYPE=application
ACTION_SCRIPT=/u01/oracle/crs/crs/public/ora.ora10g.hr_ora10g.ora10g1.srv.scr
ACTIVE_PLACEMENT=0
AUTO_START=restore
CHECK_INTERVAL=60
DESCRIPTION=ora.ora10g.hr_ora10g.ora10g1.srv
FAILOVER_DELAY=0
FAILURE_INTERVAL=0
FAILURE_THRESHOLD=0
HOSTING_MEMBERS=
OPTIONAL_RESOURCES=
PLACEMENT=balanced
REQUIRED_RESOURCES=
RESTART_ATTEMPTS=1
SCRIPT_TIMEOUT=60
START_TIMEOUT=0
STOP_TIMEOUT=0
UPTIME_THRESHOLD=7d
USR_ORA_ALERT_NAME=
USR_ORA_CHECK_TIMEOUT=0
USR_ORA_CONNECT_STR=/ as sysdba
USR_ORA_DEBUG=0
USR_ORA_DISCONNECT=false
USR_ORA_FLAGS=
USR_ORA_IF=
USR_ORA_INST_NOT_SHUTDOWN=
USR_ORA_LANG=
USR_ORA_NETMASK=
USR_ORA_OPEN_MODE=
USR_ORA_OPI=false
USR_ORA_PFILE=
USR_ORA_PRECONNECT=none
USR_ORA_SRV=
USR_ORA_START_TIMEOUT=0
USR_ORA_STOP_MODE=immediate
USR_ORA_STOP_TIMEOUT=0
USR_ORA_VIP=
4、资源配置文件中常用子项说明
参数名称 说明 参数指令(以create为例)
-------------- ----------------- --------------------------
NAME 资源名称 crs_profile –create resource_name
TYPE 资源类型(application, generic) crs_profile –create resource_name –t …
ACTION_SCRIPT 用来管理HA方案脚本 crs_profile –create resource_name –a …
ACTIVE_PLACEMENT 资源贮存的位置/节点 crs_profile –create resource_name –o –ap …
AUTO_START 资源自启动 crs_profile –create resource_name –o –as …
CHECK_INTERVAL 资源监控间隔 crs_profile –create resource_name –o –ci …
FAILOVER_DELAY 资源failover的等待时间 crs_profile –create resource_name –o –fd …
FAILURE_INTERVAL 资源重启尝试间隔 crs_profile –create resource_name –o –fi …
FAILURE_THRESHOLD 资源重启尝试次数(最大20次) crs_profile –create resource_name –o –ft …
HOSTING_MEMBERS 资源启动或者failover的首要节点选择 crs_profile –create resource_name –h …
PLACEMENT 资源启动或者failover的节点选择模式 crs_profile –create resource_name -p
REQUIRED_RESOURCES 当前资源所依赖的资源 crs_profile –create resource_name -r
RESTART_ATTEMPTS 资源重配置之前的尝试启动次数 crs_profile –create resource_name –o –ra …
SCRIPT_TIMEOUT 等待ACTION_SCRIPT的结果返回时间 crs_profile –create resource_name –o –st …
USR_ORA_VIP Vip地址 crs_profile –create vip_name -t application –a $ORA_CRS_HOME/bin/uservip –o oi=…,ov=…,on=…
5、删除已导出的资源配置文件
oracle@bo2dbp:~> crs_profile -delete ora.ora10g.hr_ora10g.ora10g1.srv -dir /users/oracle
oracle@bo2dbp:~> crs_profile -print ora.ora10g.hr_ora10g.ora10g1.srv -dir /users/oracle #再次查看时提示配置文件不存在
CRS-0181: Cannot access the resource profile 'ora.ora10g.hr_ora10g.ora10g1.srv'.
6、更新资源配置文件中的项
oracle@bo2dbp:~> crs_profile -update ora.ora10g.hr_ora10g.ora10g1.srv -o as=never #此处更新资源配置文件中的AUTO_START项
oracle@bo2dbp:~> crs_profile -print ora.ora10g.hr_ora10g.ora10g1.srv
NAME=ora.ora10g.hr_ora10g.ora10g1.srv
TYPE=application
ACTION_SCRIPT=/u01/oracle/crs/crs/public/ora.ora10g.hr_ora10g.ora10g1.srv.scr
ACTIVE_PLACEMENT=0
AUTO_START=never #此时,此项已经由原来的restore变成never
CHECK_INTERVAL=60
DESCRIPTION=ora.ora10g.hr_ora10g.ora10g1.srv
FAILOVER_DELAY=0
FAILURE_INTERVAL=0
FAILURE_THRESHOLD=0
HOSTING_MEMBERS=
OPTIONAL_RESOURCES=
PLACEMENT=balanced
REQUIRED_RESOURCES=
RESTART_ATTEMPTS=1
SCRIPT_TIMEOUT=60
START_TIMEOUT=0
STOP_TIMEOUT=0
UPTIME_THRESHOLD=7d
USR_ORA_ALERT_NAME=
USR_ORA_CHECK_TIMEOUT=0
USR_ORA_CONNECT_STR=/ as sysdba
USR_ORA_DEBUG=0
USR_ORA_DISCONNECT=false
USR_ORA_FLAGS=
USR_ORA_IF=
USR_ORA_INST_NOT_SHUTDOWN=
USR_ORA_LANG=
USR_ORA_NETMASK=
USR_ORA_OPEN_MODE=
USR_ORA_OPI=false
USR_ORA_PFILE=
USR_ORA_PRECONNECT=none
USR_ORA_SRV=
USR_ORA_START_TIMEOUT=0
USR_ORA_STOP_MODE=immediate
USR_ORA_STOP_TIMEOUT=0
USR_ORA_VIP=
#AUTO_START的值也可以用0,1,2来表示,其中0 等同always, 1 等同restore, 2 等同never
7、验证资源配置文件的正确性
oracle@bo2dbp:~> crs_profile -validate ora.ora10g.hr_ora10g.ora10g1.srv
#下面尝试将AUTO_START项值改为3
oracle@bo2dbp:~> vi $ORA_CRS_HOME/crs/public/ora.ora10g.hr_ora10g.ora10g1.srv.cap
oracle@bo2dbp:~> crs_profile -print ora.ora10g.hr_ora10g.ora10g1.srv | grep AUTO_START
AUTO_START=3
#下面验证的时候产生了错误
oracle@bo2dbp:~> crs_profile -validate ora.ora10g.hr_ora10g.ora10g1.srv
Error: AUTO_START invalid: 3
CRS-0180: Resource '/u01/oracle/crs/crs/public/ora.ora10g.hr_ora10g.ora10g1.srv.cap' validation failed.
#再次使用update参数更新配置文件
oracle@bo2dbp:~> crs_profile -update ora.ora10g.hr_ora10g.ora10g1.srv -o as=1
oracle@bo2dbp:~> crs_profile -print ora.ora10g.hr_ora10g.ora10g1.srv | grep AUTO_START
AUTO_START=1
oracle@bo2dbp:~> crs_profile -validate ora.ora10g.hr_ora10g.ora10g1.srv #此处验证成功
8、导出资源配置模板
#下面导出指定资源模板
oracle@bo2dbp:~> crs_profile -template ora.ora10g.hr_ora10g.ora10g1.srv
oracle@bo2dbp:~> ls -hltr *temp*
-rw-r--r-- 1 oracle oinstall 700 2012-11-07 18:27 template.cap
#可以看到下面的模板配置文件中包含了指定资源所需的所有子项,有些子项不需要的则其值为空
oracle@bo2dbp:~> more template.cap
NAME=
TYPE=application
ACTION_SCRIPT=
ACTIVE_PLACEMENT=0
AUTO_START=1
CHECK_INTERVAL=60
DESCRIPTION=
FAILOVER_DELAY=0
FAILURE_INTERVAL=0
FAILURE_THRESHOLD=0
HOSTING_MEMBERS=
OPTIONAL_RESOURCES=
PLACEMENT=balanced
REQUIRED_RESOURCES=
RESTART_ATTEMPTS=1
SCRIPT_TIMEOUT=60
START_TIMEOUT=0
STOP_TIMEOUT=0
UPTIME_THRESHOLD=7d
USR_ORA_ALERT_NAME=
USR_ORA_CHECK_TIMEOUT=0
USR_ORA_CONNECT_STR=/ as sysdba
USR_ORA_DEBUG=0
USR_ORA_DISCONNECT=false
USR_ORA_FLAGS=
USR_ORA_IF=
USR_ORA_INST_NOT_SHUTDOWN=
USR_ORA_LANG=
USR_ORA_NETMASK=
USR_ORA_OPEN_MODE=
USR_ORA_OPI=false
USR_ORA_PFILE=
USR_ORA_PRECONNECT=none
USR_ORA_SRV=
USR_ORA_START_TIMEOUT=0
USR_ORA_STOP_MODE=immediate
USR_ORA_STOP_TIMEOUT=0
USR_ORA_VIP=
#导出所有application的资源配置通用模板
oracle@bo2dbp:~> crs_profile -template -t application -O tmplate.cap
oracle@bo2dbp:~> ls -hltr *.cap
-rw-r--r-- 1 oracle oinstall 700 2012-11-07 18:27 template.cap
-rw-r--r-- 1 oracle oinstall 706 2012-11-07 18:32 tmplate.cap
#Author : Robinson
#Blog : http://blog.csdn.net/robinson_0612
三、总结 crs_profile是用于管理OCR配置文件中资源的工具,可以对application等资源进行导出以实现备份,以及导出后进行更新,查看等。 对于其更新之后的新的配置文件可以使用crs_register工具将其注册到OCR。