srvctl即Server Control,是Oracle提供的一个命令行工具,用以用于管理Oracle的RAC环境。srvctl在Oracle 9i中被引入,Oracle10g、11g对其功能进行了很大的增强和改进。下面介绍下此命令的简单用法。
一、 查看实例状态(srvctl status)
查询所有实例和服务的状态:
[oracle@node-rac1 ~]srvctlstatusdatabase−dracdbInstanceracdb2isrunningonnodenode−rac2Instanceracdb1isrunningonnodenode−rac1查询实例racdb1的状态:[oracle@node−rac1 ] srvctl status instance -d racdb -i racdb1
Instance racdb1 is running on node node-rac1
查询实例racdb2的状态:
[oracle@node-rac1 ~]srvctlstatusinstance−dracdb−iracdb2Instanceracdb2isrunningonnodenode−rac2查询特定节点上应用程序的状态:[oracle@node−rac1 ] srvctl status nodeapps -n node-rac2
VIP is running on node: node-rac2
GSD is running on node: node-rac2
Listener is running on node: node-rac2
ONS daemon is running on node: node-rac2
查询特定节点上ASM实例的状态
[oracle@node-rac1 ~]$ srvctl status asm -n node-rac2
ASM instance +ASM2 is running on node node-rac2.
在上面的命令行操作中,都用到的参数是:
-d,即database name,表示数据库名称
-n,即node name,表示节点名称
-i,即instance name,表示实例名称
二、 查看RAC数据库设置信息(srvctl config)
显示 RAC 数据库的配置:
[oracle@node-rac1 ~]srvctlconfigdatabase−dracdbnode−rac2racdb2/u01/oracle/product/11.0.6/racdbnode−rac1racdb1/u01/oracle/product/11.0.6/racdb列出配置的所有数据库:[oracle@node−rac1 ] srvctl config database
racdb
显示指定节点的应用程序配置:
[oracle@node-rac1 ~]srvctlconfignodeapps−nnode−rac2VIPexists.:/node−vip2/192.168.12.240/255.255.255.0/eth0GSDexists.ONSdaemonexists.Listenerexists.显示指定节点的ASM实例配置:[oracle@node−rac1 ] srvctl config asm -n node-rac2
+ASM2 /u01/oracle/product/11.0.6/rac_db
三、 启动/关闭实例(srvctl start/stop)
停止Oracle RAC所有服务:
[oracle@node-rac1 ~]emctlstopdbconsole[oracle@node−rac1 ] srvctl stop instance -d racdb -i racdb1
[oracle@node-rac1 ~]srvctlstopasm−nnode−rac1[oracle@node−rac1 ] srvctl stop nodeapps -n node-rac1
也可以通过一条命令停止所有实例及其启用的服务:
[oracle@node-rac1 ~]srvctlstopdatabase−dracdb启动OracleRAC所有服务:[oracle@node−rac1 ] srvctl start nodeapps -n node-rac1
[oracle@node-rac1 ~]srvctlstartasm−nnode−rac1[oracle@node−rac1 ] srvctl start instance -d racdb -i racdb1
[oracle@node-rac1 ~]emctlstartdbconsole也可以通过一条命令启动所有实例及其启用的服务:[oracle@node−rac1 ]srvctl start database -d racdb
四、 增加/删除/修改实例(srvctl add/remove/modify)
增加一个服务,然后在节点间切换此服务:
[oracle@node-rac1 ~]srvctladdservice−dracdb−stest−rracdb1−aracdb2−PBASIC其中参数的含义如下:−r,表示首选实例−a,表示可用的实例−P,表示故障切换策略,有none、BASIC、preconnect三个可选项在集群节点之间切换集群服务:[oracle@node−rac1 ] srvctl start service -d racdb -s test -i racdb1
[oracle@node-rac1 ~]srvctlstatusservice−dracdb−stestServicetestisrunningoninstance(s)racdb1[oracle@node−rac1 ] srvctl stop service -d racdb -s test -i racdb1
[oracle@node-rac1 ~]srvctlstartservice−dracdb−stest−iracdb2[oracle@node−rac1 ] srvctl status service -d racdb -s test
Service test is running on instance(s) racdb2
从某个实例节点移除一个服务:
[oracle@node-rac1 ~]srvctlremoveservice−dracdb−stest−iracdb2testPREF:racdb1racdb2AVAIL:Removeservicetestfromtheinstanceracdb2?(y/[n])y使数据库服务对某个实例可用:[oracle@node−rac1 ] srvctl add service -d racdb -s test -u -a racdb2
[oracle@node-rac1 ~]srvctlstartservice−dracdb−stest[oracle@node−rac1 ] srvctl modify service -d racdb -s test -i racdb2 –r
本文转自南非蚂蚁51CTO博客,原文链接:http://blog.51cto.com/ixdba/970802 ,如需转载请自行联系原作者