• 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

  • 相关阅读:
    linux知识笔记4
    linux知识笔记3
    linux知识笔记2
    linux常用命令笔记1
    计算机网络
    软件测试理论5
    软件测试理论4
    软件测试理论3
    Yarn 常用命令
    mac shell终端编辑命令行快捷键
  • 原文地址:https://www.cnblogs.com/yaoyangding/p/13097130.html
Copyright © 2020-2023  润新知