zoukankan      html  css  js  c++  java
  • srvctl命令详解(原创)

    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

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 排队打水问题
    Java实现 蓝桥杯VIP 算法提高 排队打水问题
    Java实现 蓝桥杯VIP 算法提高 排队打水问题
    Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨
    Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨
    Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨
    Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨
    现在使用控件, 更喜欢继承(覆盖控件已有的函数,很奇怪的一种使用方式)
    Controls 属性与继承 TShape 类的小练习(使用TShape可以解决很多图形问题)
    QT创建窗口程序、消息循环和WinMain函数(为主线程建立了一个QEventLoop,并执行exec函数)
  • 原文地址:https://www.cnblogs.com/yaoyangding/p/13097130.html
Copyright © 2011-2022 走看看