ORACLE RAC 中 SRVCTL 命令详细说明

本文详细介绍ORACLERAC环境下SRVCTL命令的使用方法,包括添加、配置、获取、修改、删除数据库及其实例的操作命令,并提供具体实例帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ORACLE RAC 中 SRVCTL 命令详细说明  
        注:
            RAC:     Real Application Clusters
            SRVM:    Server Management
    SRVCTL Add
        添加数据库或实例的配置信息。在增加实例中,与-i一起指定的名字应该与INSTANCE_NAME
        和 ORACLE_SID参数匹配。
        
        srvctl add database -d database_name [-m domain_name] -o oracle_home [-s spfile]
        srvctl add instance -d database_name  -i instance_name -n node_name
        SRVCTL Add命令详细选项
            -m     数据库域名  格式如"us.mydomain.com"
                    -m 选项指定的数据库域名必须匹配数据库INIT.ORA或者SPFILE中DB_DOMAIN
                    和DB_NAME参数。在增加数据库时,-d指定的数据库名必须与DB_NAME参数匹配                    
            -n     实例节点名
            -o     $ORACLE_HOME(用来确定lsnrctl和Oracle等命令路径)
            -s     SPFILE 文件名

        实例:添加一个新的数据库
            srvctl add  database  -d racdb -o /ora/ora9

            srvctl add instance -d racdb -i  racdb01 -n gm01
            srvctl add instance -d racdb -i  racdb02 -n gm02
            srvctl add instance -d racdb -i  racdb03 -n gm03
   
    srvctl config database
        显示数据库配置列表
    srvctl config database -d database_name
        数据库配置信息显示的格式:
        nodename1 instancename1 oraclehome
        nodename2 instancename2 oraclehome
        实例:显示数据库配置信息
             srvctl config database -d racdb

    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,...]]
        实例:列出数据库的所有环境变量
             srvctl getenv database -d racdb
    SRVCTL Modify
        修改实例的节点配置信息。这些修改会在程序下次重新启动后生效。修改后的信息将永久保存。
        srvctl modify instance -d database_name -i instance_name -n node_name
        实例:修改实例到另一个节点
             srvctl modify  instance  -d racdb  -n my_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]
        SRVCTL Remove命令详细选项

         -f 强制删除应用时不进行确认提示

        实例:删除数据库
              srvctl remove  database  -d racdb
        实例:删除数据库实例
              srvctl remove instance -d racdb -i  racdb01
              srvctl remove instance -d racdb -i  racdb02
              srvctl remove instance -d racdb -i  racdb03
    SRVCTL Setenv
        设置SRVM配置文件中的环境变量值。
        
        srvctl setenv database -d database_name -t name=value [,name=value,...]
        srvctl setenv instance -d database_name [-i instance_name] -t name=value [,name=value,...]
        实例:设置数据库环境变量
              srvctl setenv database -d racdb -t LANG=en
    SRVCTL Start
        启动数据库,所有实例或指定的实例,及启动所有相关未启动的监听。
        注:
            对于start命令和其它一些可以使用连接字符串的操作,如果你不提供连接字符串,
            那么ORACLE会使用"/ as sysdba"在实例上执行相关的操作。另外,要执行类似的操作,
            你必须是OSDBA组的成员。关于更多的OSDBA组权限信息,请参考ORACLE的安装指南。

        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]
        SRVCTL Start命令详细选项
            -o     在SQL*Plus直接传递的startup命令选项,可以包括PFILE
            -c     使用SQL*Plus连接数据库实例的连接字符串

        实例:启动数据库及所有的实例
                srvctl start database -d racdb
               
        实例:启动指定的实例
                srvctl start instance  -d racdb -i racdb1,racdb4
    SRVCTL Status
        显示指定数据库的当前状态
        srvctl status database -d database_name
        srvctl status instance -d database_name -i instance_name [,instance_name-list]
        实例:显示数据和所有实例状态
                srvctl status database -d racdb
        实例:显示指定实例的状态
                srvctl status instance -d racdb -i racdb1,racdb2

    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]
        
        SRVCTL Stop命令详细选
                -c     使用SQL*Plus连接数据库实例的连接字符串
                -o     在SQL*Plus直接传递的shutdown命令选项

        实例:停止数据库所有的实例
                srvctl stop database -d racdb
        实例:停止指定实例
                srvctl stop instance  -d racdb -i racdb1
    SRVCTL Unsetenv
        取消SRVM配置文件中环境变量定义值
        srvctl unsetenv database -d database_name-t name[,name,...]
        srvctl unsetenv instance -d database_name[-i instance_name] -t name[,name,...]
        实例:取消环境变量,回到缺省值
                srvctl unsetenv database -d racdb -t CLASSPATH
    使用SRVCONFIG导入和导出RAW设备配置信息
        你可使用SRVCONFIG导入和导出RAW设备配置信息,不管配置文件是在集群文件系统上还
        是在RAW设备上。你可以使用这种方法来备份与恢复SRVM配置信息。

        例如:
        下面的命令用来导出配置信息的内容到你指定文件名的文本文件中。
        srvconfig -exp file_name
        下面的命令用来从指定文本文件中导入配置信息到到你运行命令的RAC环境配置信息库。
        srvconfig -imp file_name
    使用SRVCTL添加数据库信息
        如果使用DBCA建库,在创建好RAC数据库后,DBCA自动将数据库信息添加到SRVCTL管理器中。
        但是如果手工创建数据库,或者通过备份恢复的数据库,就需要手工添加数据库信息了。
        当前服务器上安装了两套RAC数据库,分别是rac11g和ractest,其中ractest是通过dbca创
        建的,而rac11g是通过备份恢复的。
        $ srvctl status database -d rac11g
                PRKR-1001 : cluster database rac11gdoes not exist
                PRKO-2005 : Application error: Failure in getting Cluster Database Configuration for: rac11g

        $ srvctl status database -d ractest
                Instance ractest1 is running on node ser1
                Instance ractest2 is running on node ser2
               
               
        对于dbca创建的数据库,srvctl中包含了数据库和实例的信息,而对于备份恢复的数据库rac11g来
        说,srvctl中不包含数据库和实例信息。下面通过srvctl add命令来添加数据库和实例信息:
        $ srvctl add database -d rac11g-o /data/oracle/product/11.1/database
                              -m us.oracle.com -p +DATA/RAC11G/spfilerac11g.ora
                              
        $ srvctl add instance -d rac11g-i rac11g1 -n ser1
        $ srvctl add instance -d rac11g-i rac11g2 -n ser2
        
        
    检查数据库状态:
        $ srvctl status database -d rac11g
         Instance rac11g1 is not running on node ser1
         Instance rac11g2 is not running on node ser2
        数据库目前没有启动,利用srvctl start命令启动数据库:
        $ srvctl start db -d rac11g
        $ srvctl status db -d rac11g
          Instance rac11g1 is running on node ser1
          Instance rac11g2 is running on node ser2
         
        现在RAC数据库RAC11G已经可以通过SRVCTL命令来维护了。
        利用srvctl config命令可以看到现有数据库的配置信息:
        $ srvctl config database -d rac11g-a
          ser1 rac11g1 /data/oracle/product/11.1/database
          ser2 rac11g2 /data/oracle/product/11.1/database
          DB_UNIQUE_NAME: rac11g
          DB_NAME: null
          ORACLE_HOME: /data/oracle/product/11.1/database
          SPFILE: +DATA/RAC11G/spfilerac11g.ora
          DOMAIN: us.oracle.com
          DB_ROLE: null
          START_OPTIONS: null
          POLICY:  AUTOMATIC
          ENABLE FLAG: DB ENABLED

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值