1、简述crsctl和srvctl的区别
crsctl 是cluster control 用的,它管理的是cluster level的内容,如crsd cssd css 等进程和配置的管理
srvctl 是资源的管理,是cluster内资源的管理,比如instance asm listener vip ons gsd service .....
2、oracle对crsctl和srvctl的描述
CRSCTL
CRSCTL是DBA和Oracle Clusterware之间的接口,为Oracle Clusterware对象解析和调用Oracle Clusterware api。
Oracle Clusterware 11g release 2(11.2)引入了支持集群的命令,可以使用这些命令在集群上执行检查、启动和停止操作。您可以从集群中的任何节点在集群中的另一个节点上或集群中的所有节点上运行这些命令,具体取决于操作。
用户可以使用CRSCTL命令在Oracle集群软件上执行几个操作,例如:
启动和停止Oracle集群程序资源;
启用和禁用Oracle集群程序守护进程;
检查集群的运行状况;
管理代表第三方应用程序的资源;
将智能平台管理接口(IPMI)与Oracle集群软件集成,提供故障隔离支持,确保集群的完整性;
调试Oracle集群组件。
使用SRVCTL管理配置信息。可以使用SRVCTL命令添加、删除、启动、停止、修改、启用和禁用许多实体,例如数据库、实例、监听、scan监听、服务、grid命名服务(GNS)和Oracle ASM。
一些SRVCTL操作修改存储在Oracle集群注册表(OCR)中的配置数据。SRVCTL通过向Oracle集群件进程(CRSD)发送请求来执行其他操作,比如启动和停止实例,然后由CRSD启动或停止Oracle集群件资源。
3、CRSCTL命令的用法及举例
Usage:
crsctl check crs –checks the viability of the CRS stack 检查CRS堆栈的可行性
crsctl check cssd – checks the viability of CSS 检查CSS的可行性
crsctl check crsd – checks the viability of CRS 检查CRS的可行性
crsctl check evmd – checks the viability of EVM 检查EVM的可行性
crsctl set css– sets a parameter override 设置css参数
crsctl get css– gets the value of a CSS parameter 获取css参数的值
crsctl unset css– sets CSS parameter to its default 设置css参数默认值
crsctl query css votedisk – lists the voting disks used by CSS 列出voting disk盘的信息
crsctl add css votedisk– adds a new voting disk 添加一个voting disk
crsctl delete css votedisk– removes a voting disk 删除一个voting disk
crsctl enable crs – enables startup for all CRS daemons 开机自启动crs进程
crsctl disable crs – disables startup for all CRS daemons 关闭开机自启动crs进程
crsctl start crs – starts all CRS daemons. 启动crs进程
crsctl stop crs – stops all CRS daemons. Stops CRS resources in case of cluster. 关闭所有crs进程,关闭集群资源
crsctl start resources – starts CRS resources.启动crs资源
crsctl stop resources – stops CRS resources. 关闭crs资源
crsctl debug statedump evm – dumps state info for evm objects 获取evm的状态信息
crsctl debug statedump crs – dumps state info for crs objects 获取crs的状态信息
crsctl debug statedump css – dumps state info for css objects 获取css的状态信息
crsctl debug log css [module:level]{,module:level} … – Turns on debugging for CSS 调试css
crsctl debug trace css – dumps CSS in-memory tracing cache 获取css trace缓存跟踪
crsctl debug log crs [module:level]{,module:level} … – Turns on debugging for CRS 调试crs
crsctl debug trace crs – dumps CRS in-memory tracing cache 获取crs trace缓存跟踪
crsctl debug log evm [module:level]{,module:level} … – Turns on debugging for EVM 调试EVM
crsctl debug trace evm – dumps EVM in-memory tracing cache 获取evm trace缓存跟踪
crsctl debug log resturns on debugging for resources 获取资源信息
crsctl query crs softwareversion [] – lists the version of CRS software installed 列出所安装的CRS软件的版本
crsctl query crs activeversion – lists the CRS software operating version 列出CRS软件操作版本
crsctl lsmodules css – lists the CSS modules that can be used for debugging 列出可以用于调试的css模块
crsctl lsmodules crs – lists the CRS modules that can be used for debugging 列出可用于调试的crs模块
crsctl lsmodules evm – lists the EVM modules that can be used for debugging 列出可用于调试的evm模块
使用案例
检查crs状态
[grid@bx-orcl-02 ~]$ crsctl check crs
检查单个状态
[grid@bx-orcl-02 ~]$ crsctl check css
[grid@bx-orcl-02 ~]$ crsctl check ctss
CRS-4701: The Cluster Time Synchronization Service is in Active mode.
CRS-4702: Offset (in msec): 0
启动crs栈,必须使用root用户
# ./crsctl start crs
Attempting to start CRS stack
The CRS stack will be started shortly
停止crs栈,必须使用root用户
# ./crsctl stop crs
Stopping resources.
Successfully stopped CRS resources
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.
配置crs进程栈是否随着操作系统的启动而自启动,有时出于维护目的需要关闭这个特性,可以用root用户执行下面命令。
# ./crsctl disable crs
# ./crsctl enable crs
这个命令实际是修改了
/etc/oracle/scls_scr/raw/root/crsstart这个文件里的内容。
查看votedisk磁盘位置
[grid@bx-orcl-02 ~]$ crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 9fadab36332d4f56bfb4f5c72f514dff (/dev/mapper/griddg1) [GRIDDG]
2. ONLINE 92691835341b4fd2bf48a0ca5f18be37 (/dev/mapper/griddg2) [GRIDDG]
3. ONLINE 278f6e0260844ff5bff11f16293e6542 (/dev/mapper/griddg3) [GRIDDG]
增加votedisk
# ./crsctl add css votedisk {PATH}
删除votedisk
# ./crsctl delete css votedisk {PATH}
查看crs参数
[grid@bx-orcl-02 ~]$ crsctl get css misscount
CRS-4678: Successful get misscount 30 for Cluster Synchronization Services.
修改crs参数,必须为root用户
# ./crsctl set css miscount 60
跟踪crs模块,提供辅助功能
CRS由CRS,CSS,EVM三个服务组成,每个服务又是由一系列module组成,crsctl允许对每个module进行跟踪,并把跟踪内容记录到日志中。
[root@bx-orcl-02 ~]# oracle/app/grid/product/11.2.0/bin/crsctl lsmodules css
[root@bx-orcl-02 ~]# oracle/app/grid/product/11.2.0/bin/crsctl lsmodules evm
跟踪CSSD模块,需要root用户执行:
# ./crsctl debug log css "CSSD:1"
Configuration parameter trace is now set to 1.
Set CRSD Debug Module: CSSD Level: 1
查看跟踪日志
# pwd
/oracle/app/grid/product/11.2.0/log/bx-orcl-02/cssd
# more ocssd.log
4、SRVCTL命令的用法及举例
SRVCTL是ORACLE RAC集群配置管理的工具,可以管理Database、Instance、ASM、Service、Listener和Node Application,Node Application包括GSD,ONS,VIP。
srvctl的命令格式为
srvctl[options]
[grid@bx-orcl-02 ~]$ srvctl
用法:srvctl[]
命令:enable|disable|start|stop|relocate|status|add|remove|modify|getenv|setenv|unsetenv|config|convert|upgrade
对象:database|instance|service|nodeapps|vip|network|asm|diskgroup|listener|srvpool|server|scan|scan_listener|oc4j|home|filesystem|gns|cvu
有关各个命令和对象的详细帮助, 请使用:
srvctl -h 或
srvctl -h
如果需要跟踪srvctl命令的信息,需设置OS的SRVM_TRACE=true
[grid@bx-orcl-02 ~]$ export SRVM_TRACE=true
[grid@bx-orcl-02 ~]$ srvctl config database -d orcl|more
SRVCTL Config命令
显示OCR中所有注册的数据库
[grid@bx-orcl-02 ~]$ srvctl config database
orcl
-d选项可以查看特定数据库配置,下面的配置显示,rac1节点上运行有orcl1实例,$ORACLE_HOME为/oracle/app/oracle/product/11.2.0
[grid@bx-orcl-01 ~]$ srvctl config database -d orcl
数据库唯一名称: orcl
数据库名:
Oracle 主目录: oracle/app/oracle/product/11.2.0
Oracle 用户: oracle
Spfile: +DATADG/orcl/spfileorcl.ora
域:
启动选项: open
停止选项: immediate
数据库角色: PRIMARY
管理策略: AUTOMATIC
服务器池: orcl
数据库实例: orcl1,orcl2
磁盘组: DATADG
装载点路径:
服务:
类型: RAC
数据库是管理员管理的
-a选项查看详细信息
[grid@bx-orcl-01 ~]$ srvctl config database -d orcl -a
数据库唯一名称: orcl
数据库名:
Oracle 主目录: oracle/app/oracle/product/11.2.0
Oracle 用户: oracle
Spfile: +DATADG/orcl/spfileorcl.ora
域:
启动选项: open
停止选项: immediate
数据库角色: PRIMARY
管理策略: AUTOMATIC
服务器池: orcl
数据库实例: orcl1,orcl2
磁盘组: DATADG
装载点路径:
服务:
类型: RAC
数据库已启用
数据库是管理员管理的
查看Node Application的配置
[grid@bx-orcl-01 ~]$ srvctl config nodeapps
网络存在: 1/23.4.160.0/255.255.248.0/eth2, 类型 static
VIP 存在: /bx-orcl-01-vip/23.4.160.12/23.4.160.0/255.255.248.0/eth2, 托管节点 bx-orcl-01
VIP 存在: /bx-orcl-02-vip/23.4.160.13/23.4.160.0/255.255.248.0/eth2, 托管节点 bx-orcl-02
ONS 存在: 本地端口 6100, 远程端口 6200, EM 端口 2016
PRKO-2312 : GSD 不存在。
查看ASM,输出的为ASM实例的$ORACLE_HOME
$ srvctl config asm
[grid@bx-orcl-01 ~]$ srvctl config asm
ASM 主目录: oracle/app/grid/product/11.2.0
ASM 监听程序: LISTENER
查看数据库所有Service配置
$ srvctl config service -d orcl
查看某个Service的配置
$ srvctl config service -d orcl -s olap
SRVCTL Add命令
添加数据库或实例的配置信息。在增加实例中,与-i一起指定的名字应该与INSTANCE_NAME 和 ORACLE_SID参数匹配。
srvctl add database -d[-m domain_name] -o -p
srvctl add instance -n
srvctl add instance -i
命令参数:
-m 数据库域名 格式如”us.oracle.com”
指定的数据库域名必须匹配数据库INIT.ORA或者SPFILE中DB_DOMAIN 和DB_NAME参数。在增加数据库时,-d指定的数据库名必须与DB_NAME参数匹配
-n 实例节点名
-o $ORACLE_HOME(用来确定lsnrctl和Oracle等命令路径)
-p SPFILE 文件名
-S 服务名
-r 首选实例名
-a 备选实例名
-P TAF策略
$srvctl add database -d RAC -o /u01/oracle/product/10.2.0/db_1 -p +RAC_DISK/rac/spfilerac.ora
$srvctl add instance -d RAC -i rac1 -n node1 -o$ORACLE_HOME
$srvctl add service -d RAC -s Service2 -r "RAC1,RAC2" -a "RAC3,RAC4" -P basic
SRVCTL enable/disable命令
缺省情况下数据库、实例、服务、ASM都是随着CRS的启动而自动启动的,有时由于维护需要,可以先关闭这个特性
$srvctl enable database -d orcl
$srvctl disable database -d orcl
$srvctl enable database -d orcl -i orcl1
$srvctl disable database -d orcl -i orcl1 -s abcservice
SRVCTL Modify命令
修改实例的节点配置信息,这些修改会在程序下次重新启动后生效,修改后的信息将永久保存。
srvctl modify instance -d database_name -i instance_name -n node_name
Eg:
$srvctl modify instance -d rac -n new_node
SRVCTL Remove命令
这是用来删除SRVM库中配置信息的命令,对象相关的环境设置也同样删除,如果你未使用强制标志(-f),ORACLE将提示你确认是否删除。
使用强制选项(-f),删除操作将不进行提示
srvctl remove database -d database_name [-f]
srvctl remove instance -d database_name -i instance_name [-f]
命令参数:
-f 强制删除应用时不进行确认提示
Eg:
$srvctl remove database -d orcl
$srvctl remove instance -d orcl -i orcl1
$srvctl remove instance -d orcl -i orcl2
SRVCTL Start命令
启动数据库,所有实例或指定的实例,及启动所有相关未启动的监听,VIP。
注:对于start命令和其它一些可以使用连接字符串的操作,如果你不提供连接字符串,那么ORACLE会使用”/ as sysdba”在实例上执行相关的操作。另外,要执行类似的操作,你必须是OSDBA组的成员。
srvctl start database -d database_name [-o start_options] [-c connect_string]
srvctl start instance -d database_name -i instance_name [,instance_name-list] [-o start_options][-c connect_string]
命令参数:
-o 在SQL*Plus直接传递的startup命令选项,可以包括PFILE
-c 使用SQL*Plus连接数据库实例的连接字符串
Eg:
$srvctl start database -d orcl
$ srvctl stop database -d orcl -c “SYS/SYS_password as SYSDBA”
$srvctl start instance -d orcl -i orcl1,orcl2
启停监听
$ srvctl stop listener -n node [-l listenername]
$srvctl start listener -n node1
$srvctl stop listener -n node2
如果用srvctl关闭监听后,再用lsnrctl start打开监听。这时srvctl仍然认为监听已经关闭。因此,再次使用srvctl关闭监听,似乎srvctl根本没有去执行。如果希望srvctl可以关闭监听,那么需要先用srvctl启动监听,然后再关闭。搜索了一下metalink,没有发现关于这个问题的说明。而且,这个问题只在关闭监听时出现,启动监听则没有问题。svrctl显然只记录它自己的操作,而不去检查listener真正的状态。
SRVCTL Status命令
显示指定数据库的当前状态
srvctl status database -d database_name
srvctl status instance -d database_name -i instance_name [,instance_name-list]
Eg:
$ srvctl status database -d orcl
实例 orcl1 正在节点 bx-orcl-01 上运行
实例 orcl2 正在节点 bx-orcl-02 上运行
[grid@bx-orcl-01 ~]$ srvctl status instance -d orcl -i orcl1,orcl2
实例 orcl1 正在节点 bx-orcl-01 上运行
实例 orcl2 正在节点 bx-orcl-02 上运行
[grid@bx-orcl-01 ~]$ srvctl status instance -d orcl -i orcl1
实例 orcl1 正在节点 bx-orcl-01 上运行
SRVCTL Stop命令
停止数据库所有实例可者指定实例
srvctl stop database -d database_name [-o stop_options] [-c connect_string]
srvctl stop instance -d database_name -i instance_name [,instance_name_list] [-o stop_options][-c connect_string]
命令参数:
-c 使用SQL*Plus连接数据库实例的连接字符串
-o 在SQL*Plus直接传递的shutdown命令选项
Eg:
$srvctl stop database -d orcl
$srvctl stop instance -d orcl -i orcl2
$ srvctl stop service -d db_name [-s service_name_list [-i inst_name]]
$ srvctl stop asm -n node
使用SRVCONFIG导入和导出RAW设备配置信息
可使用SRVCONFIG导入和导出RAW设备配置信息,不管配置文件是在集群文件系统上还是在RAW设备上。你可以使用这种方法来备份与恢复SRVM配置信息。
Eg:
下面的命令用来导出配置信息的内容到你指定文件名的文本文件中。
$srvconfig -exp file_name
下面的命令用来从指定文本文件中导入配置信息到到你运行命令的RAC环境配置信息库。
$srvconfig -imp file_name
SRVCTL Getenv命令
getenv操作用来从SRVM配置文件中获取与显示环境变量
srvctl getenv database -d database_name [-t name[,name,……]]
srvctl getenv instance -d database_name -i instance_name [-t name[,name,……]]
Eg:
$srvctl getenv database -d orcl
SRVCTL Setenv命令
设置SRVM配置文件中的环境变量值。
srvctl setenv database -d database_name -t [,name=value,……]
srvctl setenv instance -d database_name [-i instance_name] -t [,name=value,……]
Eg:
$srvctl setenv database -d orcl -t LANG=en
SRVCTL Unsetenv命令
取消SRVM配置文件中环境变量定义值
srvctl unsetenv database -d database_name-t name[,name,……]
srvctl unsetenv instance -d database_name[-i instance_name] -t name[,name,……]
Eg:
$srvctl unsetenv database -d orcl -t CLASSPATH
启停数据库
STARTUP:
node1$srvctl start nodeapps -n bx-orcl-01
node1$srvctl start nodeapps -n bx-orcl-02
node1$srvctl start asm -n bx-orcl-01
node1$srvctl start asm -n bx-orcl-02
node1$srvctl start database -d orcl
node1$srvctl start service -d orcl
node1$crs_stat -t 或crsctl status resource -t
SHUTDOWN:
node1$srvctl stop service -d orcl
node1$srvctl stop database -d orcl
node1$srvctl stop asm -n bx-orcl-02
node1$srvctl stop asm -n bx-orcl-01
node1$srvctl stop nodeapps -n bx-orcl-02
node1$srvctl stop nodeapps -n bx-orcl-01
node1$crs_stat -t或crsctl status resource -t
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




