使用crs_profile管理RAC资源配置文件

    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。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

与时俱进:ASM内存管理与创建表空间之ORA-569错误解决

杨廷琨(yangtingkun) 云和恩墨 CTO 高级咨询顾问,Oracle ACE总监,ITPUB Oracle数据库管理版版主 在一个测试数据库上创建表空...

39010
来自专栏杨建荣的学习笔记

关于Oracle重启数据库的一个bug(r5笔记第50天)

关于drop database在oracle中是致命的操作,这个操作自己在测试环境中体验过,会完全删除数据文件,因此这个操作非常敏感但是实用性不强,不过话说过来...

3504
来自专栏乐沙弥的世界

ORACLE_SID、DB_NAME、INSTANCE_NAME、DB_DOMIAN、GLOBAL_NAME

--=============================================================

903
来自专栏乐沙弥的世界

中小型数据库 RMAN CATALOG 备份恢复方案(三)

      在前两篇文章中描述了中小型数据库使用RMAN catalog设计备份与恢复方案,并给出了所有相关的脚本来从某种车程度上模拟Oracle Data G...

741
来自专栏杨建荣的学习笔记

Oracle 12c升级检查问题分析(r10笔记第69天)

今天计划把一个测试环境升级到12c,为了练练手,先在备库上来做。数据库版本是11.2.0.3.0,计划升级到12.1.0.2.0。 为了不影响原有的测试主库,我...

3878
来自专栏乐沙弥的世界

Oracle 表空间时点恢复(TSPITR)

表空间时点恢复,是Oracle在基于冷备,热备恢复以外的一种以表空间为粒度的,不完全恢复的形式来将表空间恢复到过去某个特定的时间点的一种恢复方式。它整合了RMA...

1272
来自专栏乐沙弥的世界

ORA-19815,ORA-19809 :limit exceeded for recovery files

    数据库重新启动的时候,收到了ORA-19815的错误。从错误的提示来看,是由于闪回区的空间被填满导致无法成功启动。这种情形我们通常考虑的是清除归档日志,...

853
来自专栏乐沙弥的世界

记一次奇怪的ORA-04028: cannot generate diana for object

      开发人员说新建了一个package,在编译的过程中出现了一些错误。提示为PL/SQL:ORA-00942: table or view does n...

521
来自专栏乐沙弥的世界

SYSAUX表空间管理及恢复

SYSAUX表空间是在10g之后引入的一个新的表空间,主要用于减轻对SYSTEM表空间的压力而作为SYSTEM表空间的辅助表空间。

922
来自专栏杨建荣的学习笔记

停止数据库没有响应的问题分析(r9笔记第51天)

昨天写了一篇停库没有响应的问题分析,其实对于我来说,还是有些不太踏实,里面有几点需要改进。 因为是测试环境,所以操作的时候就随意了一些,如果是生产环境,直接ki...

3504

扫码关注云+社区