srvctl命令详解(原创)

SRVCTL概述

SRVCTL是ORACLE RAC集群配置管理的工具,可以管理Database、Instance、ASM、Service、Listener和Node Application,Node Application包括GSD,ONS,VIP。srvctl的命令格式为

srvctl <command> <target> [options]

srvctl

Usage: srvctl <command> <object> [<options>]

    command: enable|disable|start|stop|relocate|status|add|remove|modify|getenv|setenv|unsetenv|config

    objects: database|instance|service|nodeapps|asm|listener

For detailed help on each command and object and its options use:

    srvctl <command> <object> -h

如果需要跟踪srvctl命令的信息,需设置OS的SRVM_TRACE=true

$export SRVM_TRACE=true

$ srvctl config database -d czmmiao|more

/u01/app/oracle/product/10.2.0/db_1/jdk/jre/bin/Java -classpath /u01/app/oracle/product/10.2.0/db_1/jlib/netcfg.jar:/u01/app/oracle/

product/10.2.0/db_1/jdk/jre/lib/rt.jar:/u01/app/oracle/product/10.2.0/db_1/jdk/jre/lib/i18n.jar:/u01/app/oracle/product/10.2.0/db_1/

jlib/srvm.jar:/u01/app/oracle/product/10.2.0/db_1/jlib/srvmhas.jar:/u01/app/oracle/product/10.2.0/db_1/jlib/srvmasm.jar:/u01/app/ora

cle/product/10.2.0/db_1/srvm/jlib/srvctl.jar -DTRACING.ENABLED=true -DTRACING.LEVEL=2 oracle.ops.opsctl.OPSCTLDriver config database

 -d czmmiao

[main] [21:18:59:903] [OPSCTLDriver.setInternalDebugLevel:165]  tracing is true at level 2 to file null

[main] [21:19:0:36] [OPSCTLDriver.<init>:95]  Security manager is set

..................................................................

SRVCTL Config命令 

显示OCR中所有注册的数据库

$ srvctl config database

czmmiao

-d选项可以查看特定数据库配置,下面的配置显示,rac1节点上运行有czmmmiao1实例,$ORACLE_HOME为/u01/app/oracle/product/10.2.0/crs

$ srvctl config database -d czmmiao

rac1 czmmiao1 /u01/app/oracle/product/10.2.0/crs

rac2 czmmiao2 /u01/app/oracle/product/10.2.0/crs

-a选项查看详细信息

$ srvctl config database -d czmmiao -a

czmmiao2 czmmiao1 /u01/app/oracle/product/10.2.0/crs

czmmiao1 czmmiao2 /u01/app/oracle/product/10.2.0/crs

DB_NAME: czmmiao

ORACLE_HOME: /u01/app/oracle/product/10.2.0/crs

SPFILE: +DATA/czmmiao/spfileczmmiao.ora

DOMAIN: null

DB_ROLE: null

START_OPTIONS: null

POLICY:  AUTOMATIC

ENABLE FLAG: DB ENABLED

查看Node Application的配置

$ srvctl config nodeapps -n czmmiao1

rac1 czmmiao2 /u01/app/oracle/product/10.2.0/crs

查看VIP配置

$ srvctl config nodeapps -n czmmiao1 -a

VIP exists.: /czmmiao1-vip/192.168.2.113/255.255.255.0/eth1

查看GSD配置

$ srvctl config nodeapps -n czmmiao1 -g

GSD exists.

查看ONS配置

$ srvctl config nodeapps -n czmmiao1 -s

ONS daemon exists.

查看listener配置

$ srvctl config nodeapps -n czmmiao1 -l

Listener exists.

查看listener配置

$ srvctl config listener -n czmmiao1

czmmiao1 LISTENER_CZMMIAO1

查看ASM,输出的为ASM实例的$ORACLE_HOME

$ srvctl config asm -n czmmiao1

+ASM2 /u01/app/oracle/product/10.2.0/crs

查看数据库所有Service配置

$ srvctl config service -d czmmiao -a

olap PREF: czmmiao2 AVAIL: czmmiao1 TAF: basic

查看某个Service的配置

$ srvctl config service -d czmmiao -s olap

olap PREF: czmmiao2 AVAIL: czmmiao1

查看某个Service的配置,包括TAF策略

$ srvctl config service -d czmmiao -s olap -a

olap PREF: czmmiao2 AVAIL: czmmiao1 TAF: basic

关于TAF策略配置,可以参见笔者的如下博客

http://czmmiao.iteye.com/blog/1735773

SRVCTL  Add命令 

添加数据库或实例的配置信息。在增加实例中,与-i一起指定的名字应该与INSTANCE_NAME 和 ORACLE_SID参数匹配。
srvctl add database -d <database name> [-m domain_name] -o <ORACLE_HOME path> -p <spfile location and name>
srvctl add instance -d <database name> -i <instance 1 name> -n <node 1 name >
srvctl add instance -d <database name> -i <instance 2 name> -n <node 2 name > 
命令参数:
-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 czmmiao

$srvctl disable database -d czmmiao

$srvctl enable database -d czmmiao -i czmmiao1

$srvctl disable database -d czmmiao -i czmmiao1 -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 rac
$srvctl remove instance -d rac -i rac1
$srvctl remove instance -d rac -i rac2 
SRVCTL Start命令 
启动数据库,所有实例或指定的实例,及启动所有相关未启动的监听。
注:对于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 rac
$ srvctl stop database -d rac -c “SYS/SYS_password as SYSDBA”
$srvctl start instance -d rac -i rac1,rac2

启停监听

$ srvctl stop listener -n node [-l listenername]
$srvctl start listener -n node1
$srvctl stop listener -n node2 
SRVCTL命令的小bug具体参见

http://yangtingkun.itpub.net/post/468/275571
如果用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 rac
$srvctl status instance -d rac -i rac1,rac2 
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 rac
$srvctl stop instance -d rac -i rac2
$ 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 rac 
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 rac -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 rac -t CLASSPATH
Updated @ 11-12-09 11:43

启停数据库 
STARTUP:
node1$srvctl start nodeapps -n rac1
node1$srvctl start nodeapps -n rac2
node1$srvctl start asm -n rac1
node1$srvctl start asm -n rac2
node1$srvctl start database -d rac
node1$srvctl start service -d rac
node1$crs_stat -t 
SHUTDOWN:
node1$srvctl stop service -d rac
node1$srvctl stop database -d rac
node1$srvctl stop asm -n rac2
node1$srvctl stop asm -n rac1
node1$srvctl stop nodeapps -n rac2
node1$srvctl stop nodeapps -n rac1
node1$crs_stat -t

参考至:《大话Oracle RAC》张晓明著
            http://www.cnblogs.com/sopost/archive/2010/05/06/2190111.html
            http://docs.oracle.com/cd/B28359_01/rac.111/b28254/srvctladmin.htm#i1011104

本文原创,转载请注明出处、作者

如有错误,欢迎指正

邮箱:czmcj@163.com

作者:czmmiao  文章出处:http://czmmiao.iteye.com/blog/1762900

时间: 2024-10-31 03:59:15

srvctl命令详解(原创)的相关文章

VirtualBox下配置串口以及stty命令详解(原创)

虚拟机于主机通过串口通信  我们需要先配置一下宿主机器上的virtualbox. 1. 在串口栏中勾选 []启用串口(E) 2. 端口编号选择COM1 3. 端口模式选择Host Pipe 4. 勾选 []创建通道(C) 5. Port/File Path: 填上 /tmp/serial. 也就是说我们在宿主机器的/tmp/中创建了serial的通道文件 此外,我们还要在宿主机器上设定一下串口.在此之前需要安装minicom软件 1. 运行minicom -s命令 2. CTRL+A调出配置界面

dd命令详解(原创)

dd指令使用  语法格式 dd   [option]  dd指令选项详解 if=file:输入文件名,缺省为标准输入 of=file:输出文件名,缺省为标准输出 ibs=bytes:一次读入 bytes 个字节(即一个块大小为 bytes 个字节) obs=bytes:一次写 bytes 个字节(即一个块大小为 bytes 个字节) bs=bytes:同时设置读写块的大小为 bytes ,可代替 ibs 和 obs cbs=bytes:一次转换 bytes 个字节,即转换缓冲区大小 skip=b

AIX的vmstat命令详解(原创)

vmstat概述  vmstat 命令报告关于内核线程.虚拟内存.磁盘.陷阱和 CPU 活动的统计信息.由 vmstat 命令生成的报告可以用于平衡系统负载活动.系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和. Interval 参数指定每个报告之间的时间量(以秒计).第一个报告包含系统启动后时间的统计信息.后续报告包含自从前一个报告起的时间间隔过程中所收集的统计信息.如果没有指定 Interval 参数,vmstat 命令生成单个报告然后退出.Count

AIX的SVMON命令详解(原创)

svmon概述  svmon 命令用于显示当前内存状态的信息,可通过 # lslpp bos.perf.tools 查看是否有安装.因为 svmon 命令在启用中断的用户级别运行,所以显示的信息不组成真正的内存快照. 在非常繁忙的系统中,svmon收集的数据和真实的数据有所差距,在svmon进程搜集的过程中,VMM(虚存管理器)可能已经发生改动了. 因为svmon使用的全是VMM中的数据,而VMM对内存的视图是基于内存段的,所以,理解svmon的输出,必须先理解段的概念. 段  段(segmen

AIX的topas命令详解(原创)

topas概述  topas 命令报告选定的本地系统活动的统计信息.该命令使用 curses 库以合适的格式来显示其输出,该格式适合于在一个 80x25 基于字符的显示器上或至少同样大小的图形显示器的窗口中进行查看.topas 命令需要在系统中安装 perfagent.tools 文件集. 如果 topas 命令调用时没有标志,则运行时正如用以下命令行来调用:topas -d20 -i2 -n20 -p20 -w20 -c20  程序按由 monitoring_interval_in_secon

GPT和parted命令详解(原创)

GPT概述 全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘的分区结构.它是可扩展固件接口标准的一部分,用来替代BIOS中的主引导记录分区表. 传统的主启动记录 (MBR) 磁盘分区支持最大卷为 2.2 TB (terabytes) ,每个磁盘最多有 4 个主分区(或 3 个主分区,1 个扩展分区和无限制的逻辑驱动器). 与MBR 分区方法相比,GPT 具有更多的优点,因为它允许每个磁盘有多达 128 个分区,支持高达 18 千兆兆字节 (exabyte

AIX的sar命令详解(原创)

sar概述 sar 命令将 操作系统中选定的累计活动计数器的内容写到标准输出.基于 Number 和 Interval 参数的值,记帐系统以指定的时间间隔(以秒为单位)和指定间隔次数写入信息.Number 参数的缺省采样时间间隔为 1 秒.收集的数据也可以保存在由 -o File 标志所指定的文件中.   计算等待磁盘 I/O 所花费 CPU 时间(wio 时间)百分比的方法的改进. 在 AIX 4.3.2 及早期操作系统版本中采用的方法在某些情况下会在 SMP 上显示出夸大的 wio 时间.w

find命令详解(原创)

概述 有时可能需要在系统中查找具有某一特征的文件(例如文件权限.文件属主.文件长度.文件类型等等).这样做可能有很多原因.可能出于安全性的考虑,或是一般性的系统管理任务,或许只是为了找出一个不知保存在什么地方的文件.find一个非常有效的工具,它可以遍历当前目录甚至于整个文件系统来查找某些文件或目录. 由于find具有如此强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下.即使系统中含有网络文件系统(NFS),find命令在该文件系统中同样有效,只要你具有相应的权限. 在运

crsctl命令详解(原创)

crsctl语法 $./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