• SRVCTL详解


    1. SRVCTL概述

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

    srvctl <command> <target> [options]

    2. 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 PROD -o /u01/oracle/product/10.2.0/db_1 -p +DATA/PROD/spfilerac.ora
    $srvctl  add  instance  -d PROD -i PROD1 -n node1 -o $ORACLE_HOME
    $srvctl add service -d PROD -s Service2 -r "PROD1,PROD2" -a "PROD3,PROD4" -P basic 

     

    3. SRVCTL enable/disable命令 

    缺省情况下数据库、实例、服务、ASM都是随着CRS的启动而自动启动的,有时由于维护需要,可以先关闭这个特性

    $srvctl enable database -d PROD

    $srvctl disable database -d PROD

    $srvctl enable database -d PROD -i PROD1
    $srvctl disable database -d PROD -i PROD1 -s PRODSERVICE
     

    4. SRVCTL Modify命令 

      修改实例的节点配置信息,这些修改会在程序下次重新启动后生效,修改后的信息将永久保存。
      srvctl modify instance -d database_name -i instance_name -n node_name 
      Eg:
      $srvctl modify instance -d PROD -n new_node 


    5. 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 PROD
      $srvctl remove instance -d PROD -i PROD1
      $srvctl remove instance -d PROD -i PROD2

    6. SRVCTL Config命令

    显示保存在SRVM配置文件中的配置信息

    srvctl config database

    显示数据库配置列表

    srvctl config database -d database_name

    数据库配置信息显示的格式:

    nodename1 instancename1 oraclehome

    nodename2 instancename2 oraclehome

    Eg:

    $ srvctl config database PROD 

    $srvctl config database -d PROD 

    node1 PROD1 /u01/oracle/product/10.2.0/db_1

    node2 PROD2 /u01/oracle/product/10.2.0/db_1

    7. 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

    8. 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

    9. 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

     

    10. 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

    11. 启停监听

      $ srvctl stop listener -n node [-l listenername]
      $srvctl start listener -n node1
      $srvctl stop listener -n node2 

    如果用srvctl关闭监听后,再用lsnrctl start打开监听。这时srvctl仍然认为监听已经关闭。因此,再次使用srvctl关闭监听,似乎srvctl根本没有去执行。如果希望srvctl可以关闭监听,那么需要先用srvctl启动监听,然后再关闭。搜索了一下metalink,没有发现关于这个问题的说明。而且,这个问题只在关闭  监听时出现,启动监听则没有问题。svrctl显然只记录它自己的操作,而不去检查listener真正的状态。


    12. 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 

  • 相关阅读:
    16. InOrder
    15. BddStyle: given-willReturn、OneLiner风格
    12. atLeastOnce、atLeast、atMost、never、only、verifyNoMoreInteractions、verifyZeroInteractions
    11. verify验证方法调用
    sqlserver数据文件变更位置
    生产上的sqlserver数据库误删或者操作不当的补救措施
    linux centos7 安装配置jdk
    linux centos7 mysql5.7 设置端口以及远程访问
    linux centos7 安装mysq5.7步骤总结
    关于Netty的那点事
  • 原文地址:https://www.cnblogs.com/eniniemand/p/14327795.html
Copyright © 2020-2023  润新知