RAC 管理(crs_stat、crsctl、srvctl)
RAC 管理(crs_stat、crsctl、srvctl)
OracleClusterware的命令集可以分为以下4种: 1、节点层olsnodes,这个命令用来显示集群点列表,可用的参数如下: $olsnodes -h 用法: olsnodes [-n] [-p][-i] [<node> | -l] [-g] [-v] 这些参数可以混合使用。 racnode1 racnode2 racnode11 racnode22 注:若命令不能运行,添加path,或直接进入命令所在目录运行。本例位于: /u01/crs/oracle/product/11.1.0/crs/bin 2、网络层网络层由各个节点的网络组件组成,包括2个物理网卡和3个IP地址。也只有一个命令:oifcfg。 Oifcfg命令的格式如下: 用法: oifcfg iflist [-p [-n]] <nodename> -为通信网络所知的主机名 这些属性中没有IP地址,但接口类型有两种,public和private,前者说明接口用于外部通信,用于Oracle Net和VIP地址,而后者说明接口用于Interconnect。 接口的配置方式分为两类: global和node-specific。前者说明集群所有节点的配置信息相同,也就是说所有节点的配置是对称的;而后者意味着这个节点的配置和其他节点配置不同,是非对称的。 [root@rac1 bin]# ./oifcfg iflist 3、集群层集群层是指由Clusterware组成的核心集群, 这一层负责维护集群内的共享设备,并为应用集群提供完整的集群状态视图,应用集群依据这个视图进行调整。这一层共有4个命令:crsctl,ocrconfig.后三个是针对OCR磁盘的。 3.1 CrsctlCrsctl命令可以用来检查CRS进程栈,每个crs进程状态,管理Votedisk,跟踪CRS进程功能。 3.1.1 检查crs状态[root@rac1 bin]# ./crsctl check crs Cluster Ready Services appears healthy Event Manager appears healthy 3.1.2 配置crs栈是否自启动CRS进程栈默认随着操作系统的启动而自启动,有时出于维护目的需要关闭这个特性,可以用root用户执行下面命令。 3.1.3 启动,停止crs栈Oracle在10.1时,必须通过重新启动系统重启Clusterware,但是从Oracle 10.2开始,可以通过命令来启动和停止CRS。 Attempting to start CRS stack 3.1.4 查看votedisk磁盘位置[root@rac1 bin]# ./crsctl query css votedisk 3.1.5 查看和修改crs参数?C查看参数:用get 3.1.6 跟踪crs模块,提供辅助功能CRS由CRS,CSS,EVM三个服务组成,每个服务又是由一系列module组成,crsctl允许对每个module进行跟踪,并把跟踪内容记录到日志中。 3.1.7 维护votedisk以图形方式安装Clusterware的过程中,在配置Votedisk时,如果选择External Redundancy策略,则只能填写一个Votedisk。但是即使使用External Redundancy作为冗余策略,也可以添加多个Vodedisk,只是必须通过crsctl命令来添加,添加多个Votedisk后,这些Votedisk互为镜像,可以防止Votedisk的单点故障。 3.2 ocr命令系列Oracle Clusterware把整个集群的配置信息放在共享存储上,这个存储就是OCR Disk.在整个集群中,只有一个节点能对OCR Disk进行读写操作,这个节点叫作Master Node,所有节点都会在内存中保留一份OCR的拷贝,同时哟一个OCR Process从这个内存中读取内容。OCR内容发生改变时,由Master Node的OCR Process负责同步到其他节点的OCR Process。 3.2.1 ocrdump该命令能以ASCII的方式打印出OCR的内容,但是这个命令不能用作OCR的备份恢复,也就是说产生的文件只能用作阅读,而不能用于恢复。 示例:把system.css键的内容以.xml格式打印输出到屏幕 3.2.2 ocrcheckOcrcheck命令用于检查OCR内容的一致性,命令执行过程会在$CRS_HOMElognodenameclient目录下产生ocrcheck_pid.log日志文件。 这个命令不需要参数。 3.2.3 ocrconfig该命令用于维护OCR磁盘,安装clusterware过程中,如果选择External Redundancy冗余方式,则只能输入一个OCR磁盘位置。但是Oracle允许配置两个OCR磁盘互为镜像,以防止OCR磁盘的单点故障。OCR磁盘和Votedisk磁盘不一样,OCR磁盘最多只能有两个,一个Primary OCR和一个Mirror OCR。 ?C查看自助备份 3.2.4 使用导出,导入进行备份和恢复Oracle推荐在对集群做调整时,比如增加,删除节点之前,应该对OCR做一个备份,可以使用export备份到指定文件,如果做了replace或者restore等操作,Oracle建议使用cluvfy comp ocr -n all命令来做一次全面的检查。该命令在clusterware的安装软件里。 [root@rac1 bin]# ./ocrconfig -export /u01/ocr.exp 3) 重启CRS 4) 检查CRS状态 5)破坏OCR内容 7)使用cluvfy工具检查一致性 3.2.5 移动ocr文件位置实例演示将OCR从/dev/raw/rac1移动到/dev/raw/raw3上。 5)改变primary OCR位置 6)使用ocrconfig命令修改后,所有RAC节点上的/etc/oracle/ocr.loc文件内容也会自动同步了,如果没有自动同步,可以手工的改成以下内容。 4、应用层应用层就是指RAC数据库了,这一层有若干资源组成,每个资源都是一个进程或者一组进程组成的完整服务,这一层的管理和维护都是围绕这些资源进行的。有如下命令:srvctl,crs_stat三个命令。 4.1.1 crs_statCrs_stat这个命令用于查看CRS维护的所有资源的运行状态,如果不带任何参数时,显示所有资源的概要信息。每个资源显示是各个属性:资源名称,类型,目录,资源运行状态等。 这些字段是所有资源共有的,但是根据资源类型不同,某些字段可以空值。 4.1.2 onsctl这个命令用于管理配置ONS(Oracle Notification Service). ONS是Oracle Clusterware实现FAN Event Push模型的基础。在传统模型中,客户端需要定期检查服务器来判断服务端状态,本质上是一个pull模型,Oracle10g引入了一个全新的PUSH机制?CFAN(Fast Application Notification),当服务端发生某些事件时,服务器会主动的通知客户端这种变化,这样客户端就能尽早得知服务端的变化。而引入这种机制就是依赖ONS实现, 在使用onsctl命令之前,需要先配置ONS服务。 4.1.2.1 ons配置内容在RAC环境中,需要使用$CRS_HOME下的ONS,而不是$ORACLE_HOME下面的ONS, 这点需要注意。 配置文件在$CRS_HOMEopmnconfons.config. 4.1.2.2 配置ons可以直接编译ONS的配置文件来修改配置,如果使用了OCR,则可以通过racgons命令进行配置,但必须以root用户来执行,如果用oracle用户来执行,不会提示任何错误,但也不会更改任何配置。 4.1.2.3 onsctl命令使用onsctl命令可以启动,停止,调试ONS,并重新载入配置文件,其命令格式如下: 4)使用debug选项,可以查看详细信息,其中最有意义的就是能显示所有连接。 4.1.3 srvctl该命令是RAC维护中最常用的命令,也是最复杂的命令。 这个工具可以操作下面的几种资源:Database,Instance,ASM,Service,Listener和Node Application,其中Node application又包括GSD,ONS,VIP。 这些资源除了使用srvctl工具统一管理外,某些资源还有自己独立的管理工具,比如ONS可以使用onsctl命令进行管理;Listener可以通过lsnrctl管理。 4.1.3.1 使用config查看配置1)查看数据库配置 ?C使用-a选项,查看VIP配置 ?C使用-g选项, 查看GSD: 4.1.3.2 使用add添加对象一般情况下,应用层资源都是在图形界面的帮助下注册到OCR中的,比如VIP,ONS实在安装最后阶段创建的,而数据库,ASM是执行DBCA的过程中自动注册到OCR中的,Listener是通过netca工具。 但是有些时候需要手工把资源注册到OCR中。 这时候就需要add命令了。 4.1.3.3 使用enable/disable启动,禁用对象缺省情况下数据库,实例,服务,ASM都是随着CRS的启动而自启动的,有时候由于维护的需要,可以先关闭这个特性。 4.1.3.4 使用remove删除对象使用remove命令删除的是对象在OCR中的定义信息,对象本省比如数据库的数据文件等不会被删除,以后随时可以使用add命令重新添加到OCR中。 4.1.3.5 启动,停止对象与查看对象在RAC环境下启动,关闭数据库虽然仍然可以使用SQL/PLUS方法,但是更推荐使用srvctl命令来做这些工作,这可以保证即使更新CRS中运行信息,可以使用start/stop命令启动,停止对象,然后使用status命令查看对象状态。 4.1.3.6 跟踪srcctl在Oracle 10g中要跟踪srvctl非常简单,只要设置srvm_trace=true这个OS环境变量即可,这个命令的所有函数调用都会输出到屏幕上,可以帮助用户进行诊断。 4.1.4 恢复设OCR磁盘和Votedisk磁盘全部破坏,并且都没有备份,该如何恢复,这时最简单的方法就是重新初始话OCR和Votedisk, 具体操作如下: 1) 停止所有节点的Clusterware Stack Crsctl stop crs; 2) 分别在每个节点用root用户执行$CRS_HOMEinstallrootdelete.sh脚本 3) 在任意一个节点上用root用户执行$CRS_HOMEinstallrootinstall.sh脚本 4) 在和上一步同一个节点上用root执行$CRS_HOMEroot.sh脚本 5) 在其他节点用root执行行$CRS_HOMEroot.sh脚本 6) 用netca命令重新配置监听,确认注册到Clusterware中 #crs_stat -t -v l向OCR中添加ASM #srvctl add asm -n rac1 -i +ASM1 -o /u01/app/product/database l启动ASM #srvctl start asm -n rac1 l手工向OCR中添加Database对象 #srvctl add database -d raw -o /u01/app/product/database l添加2个实例对象 #srvctl add instance -d raw -i rac1 -n rac1 l修改实例和ASM实例的依赖关系 #srvctl modify instance -d raw -i rac1 -s +ASM1 l启动数据库 #srvctl start database-d raw http://hi.baidu.com/timework/blog/item/bd44c06721015028ab184cba.html 使用秘诀: srvctl +<command:status,start,stop,config,modify,relocate>+<object:database,service,instance,nodeapps> + <option: -i,-d,-s,-n> srvctl -h srvctl stop instance -h srvctl relocate service -h AEG2_DB2:/oracle/product/10.2.0/crs>srvctl relocate service -h 根据你写出的长度不同的命令,会具体给出这个命令对应的作用的使用方法,非常好用。 ---------------------Start/Stop Instance-------------------- $ srvctl status database -d racdb $ srvctl stop instance -d racdb -i racdb1 -o abort $ srvctl status database -d racdb
-------------------Start/Stop CRS-------------------------- $ crsctl check crs $ crsctl stop crs $ /etc/init.crs stop $ crs_stop ?Call $ crsctl start crs $ /etc/init.crs start $ /etc/init.crs disable $ /etc/init.crs enable -----------------CRS Resource----------------------------- $ crs_stat $ crs_stat -t $ crsctl check boot $ crsctl check crs # /etc/init.crs disable # /etc/init.crs stop # su ?C oracle $ cd $ORA_CRS_HOME/bin $./ocrconfig -restore /opt/app/oracle/crs/cdata/crs/week.ocr # /etc/init.crs enable $ crsctl Usage: crsctl check crs - checks the viability of the CRS stack crsctl check cssd - checks the viability of CSS crsctl check crsd - checks the viability of CRS crsctl check evmd - checks the viability of EVM crsctl set css <parameter> <value> - sets a parameter override crsctl get css <parameter> - gets the value of a CSS parameter crsctl unset css <parameter> - sets CSS parameter to its default crsctl query css votedisk - lists the voting disks used by CSS crsctl add css votedisk <path> - adds a new voting disk crsctl delete css votedisk <path> - removes a voting disk crsctl enable crs - enables startup for all CRS daemons crsctl disable crs - disables startup for all CRS daemons crsctl start crs - starts all CRS daemons. crsctl stop crs - stops all CRS daemons. Stops CRS resources in case of cluster. crsctl start resources - starts CRS resources. crsctl stop resources - stops CRS resources. crsctl debug statedump evm - dumps state info for evm objects crsctl debug statedump crs - dumps state info for crs objects crsctl debug statedump css - dumps state info for css objects crsctl debug log css [module:level]{,module:level} ... - Turns on debugging for CSS crsctl debug trace css - dumps CSS in-memory tracing cache crsctl debug log crs [module:level]{,module:level} ... - Turns on debugging for CRS crsctl debug trace crs - dumps CRS in-memory tracing cache crsctl debug log evm [module:level]{,module:level} ... - Turns on debugging for EVM crsctl debug trace evm - dumps EVM in-memory tracing cache crsctl debug log res <resname:level> turns on debugging for resources crsctl query crs softwareversion [<nodename>] - lists the version of CRS software installed crsctl query crs activeversion - lists the CRS software operating version crsctl lsmodules css - lists the CSS modules that can be used for debugging crsctl lsmodules crs - lists the CRS modules that can be used for debugging crsctl lsmodules evm - lists the EVM modules that can be used for debugging SRVCTL命令介绍 SRVCTL命令可以控制RAC数据库中的instance,listener以及services。 通常SRVCTL在ORACLE用户下执行。下面我们来介绍srvctl命令。 1、通过SRVCTL命令来start/stop/check所有的实例: $ srvctl start|stop|status database -d <db_name> 2、start/stop指定的实例: $ srvctl start|stop|status instance -d <db_name> -i <instance_name> 3、列出当前RAC下所有的 $ srvctl config database -d <db_name> 4、start/stop/check 所有的nodeapps,比如:VIP,listener,ONS: $ srvctl start|stop|status nodeapps -n <node_name> 5、如果你使用ASM,srvctl也可以start/stop ASM实例: $ srvctl start|stop asm -n <node_name> [-i <asm_inst_name>] [-o<oracle_home>] 6、可以获取所有的环境信息: $ srvctl getenv database -d <db_name> [-i <instance_name>] 7、设置全局环境和变量: $ srvctl setenv database -d <db_name> -t LANG=en 8、从OCR中删除已有的数据库: $ srvctl remove database -d <db_name> 9、向OCR中添加一个数据库: $ srvctl add database -d <db_name> -o <oracle_home> [-m <domain_name>] [-p<spfile>] [-A <name|ip>/netmask] [-r {PRIMARY | PHYSICAL_STANDBY |LOGICAL_STANDBY}] [-s <start_options>] 10、向OCR中添加一个数据库的实例: $ srvctl add instance -d <db_name> -i <instance_name> -n <node1> $ srvctl add instance -d <db_name> -i <instance_name> -n <node2> 11、向OCR中添加一个ASM实例: $ srvctl add asm -n <node_name> -i <asm_inst_name> -o <oracle_home> 12、添加一个service $ srvctl add service -d <db_name> -s <service_name> -r <preferred_list> [-a <available_list>] [-P <TAF_policy>] [-u] 13、修改在其他节点上的service(修改的是配置,此时使用的实例不变) $ srvctl modify service -d <db_name> -s <service_name> -I <orig_instance_name> -t <target_instance_name> 14、relocate 某个节点的service到其他节点(当taf转到avail实例上后,又想转到pre的实例上,用relocate) srvctl relocate service -d <db_name> -s <service_name> -I <orig_instance_name> -t <target_instance_name> SRVCTL相关的选项 SRVCTL START/STOP/STATUS options: -d database name -i instance name -n node name (for nodeapps) SRVCTL ADD options: -A vip range,node,and database,address specification. The format of address string is: [<logical host name>]/<VIP address>/<net mask> [/<host interface1 [ | host interface2 |..]>] [,] [<logical host name>]/<VIP address>/<net mask> [/<host interface1[ | host interface2 |..]>] -a for services,list of available instances,this list cannot include preferred instances -m domain name with the format “us.domain.com” -n node name that will support one or more instances -o $ORACLE_HOME to locate Oracle binaries -P for services,TAF preconnect policy - NONE,PRECONNECT -r for services,list of preferred instances,this list cannot include available instances. -s spfile name -u updates the preferred or available list for the service to support the specified instance. Only one instance may be specified with the -u switch. Instances that already support the service should not be included. SRVCTL MODIFY options: -i <instance-name> -t <instance-name> : the instance name (-i) is replaced by the instance name (-t) -i <instance-name> -r : the named instance is modified to be a preferred instance -A address-list for VIP application, at node level -s <asm_inst_name> : add or remove ASM dependency SRVCTL RELOCATE options: -i <instance-name> -t <instance-name> : the instance name (-i) is replaced by the instance name (-t) CRS及相关服务的常用命令 1、查看状态的命令 # su ?C oracle -- 先切换到oracle用户 $ crs_stat -t -- 查看crs及所有的service的状态 Name Type Target State Host ------------------------------------------------------------ ora.oradb.db application ONLINE ONLINE db01 ora....radb.cs application ONLINE ONLINE db01 ora....db1.srv application ONLINE ONLINE db01 ora....db2.srv application ONLINE ONLINE db02 ora....b1.inst application ONLINE ONLINE db01 ora....b2.inst application ONLINE ONLINE db02 ora....C1.lsnr application ONLINE ONLINE db01 ora.db01.gsd application ONLINE ONLINE db01 ora.db01.ons application ONLINE ONLINE db01 ora.db01.vip application ONLINE ONLINE db01 ora....C2.lsnr application ONLINE ONLINE db02 ora.db02.gsd application ONLINE ONLINE db02 ora.db02.ons application ONLINE ONLINE db02 ora.db02.vip application ONLINE ONLINE db02 $ crsctl check crs -- 用crsctl命令,检查crs相关服务的状态 CSS appears healthy CRS appears healthy EVM appears healthy $ srvctl status nodeapps -n db01 (db02) -- 使用srvctl查看所有节点上的服务是否正常 VIP is running on node:db01 GSD is running on node:db01 Listener is running on node:db01 ONS daemon is running on node:db01 $ srvctl status database -d db -- 使用srvctl查看数据库状态 Instance db01 is running on node db01 Instance db02 is running on node db02 2、启动和关闭相关服务的命令 # su ?C oracle $ crs_start ?Call --启动所有的crs服务 $ crs_stop ?Call --停止所有的crs服务 $ crsctl start crs --启动crs服务 $ crsctl stop crs --停止crs服务 $ srvctl start nodeapps -n db01(db02) --启动某节点上所有的应用 $ srvctl stop nodeapps -n db01(db02) --停止某节点上所有的应用 $ srvctl start listener -n db01(db02) --启动某个节点的listener $ srvctl stop listener -n db01(db02) --停止某个节点的listener $ srvctl start instance ?Cd db ?Ci db01(db02) --启动某个instance $ srvctl stop instance ?Cd db ?Ci db01(db02) --停止某个instance $ srvctl start database ?Cd db --启动数据库 $ srvctl stop database ?Cd db --停止数据库 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |