设为首页 收藏本站
查看: 940|回复: 0

[经验分享] oracle RAC工具srvctl

[复制链接]

尚未签到

发表于 2015-12-21 07:40:53 | 显示全部楼层 |阅读模式
czmmiao博客:
http://czmmiao.iyunv.com/blog/1762900   

SRVCTL概述

SRVCTL是ORACLE RAC集群配置管理的工具,可以管理Database、Instance、ASM、Service、Listener和Node Application,Node Application包括GSD,ONS,VIP。srvctl的命令格式为
srvctl   [options]
srvctl
Usage: srvctl   []
    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   -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.: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.iyunv.com/blog/1735773
SRVCTL  Add命令
添加数据库或实例的配置信息。在增加实例中,与-i一起指定的名字应该与INSTANCE_NAME 和 ORACLE_SID参数匹配。
srvctl add database -d  [-m domain_name] -o  -p
srvctl add instance -d  -i  -n
srvctl add instance -d  -i  -n

命令参数:
-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 abcserviceSRVCTL 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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-153953-1-1.html 上篇帖子: ORACLE RAC安装过程中碰到问题及解决方法 下篇帖子: PL/SQL Developer安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表