ORACLE RAC 中 SRVCTL 命令详细说明文档

ORACLE RAC 中 SRVCTL 命令详细说明文档
简介:

SRVCTL是ORACLE9i RAC集群配置管理的工具。本文是对SRVCTL的所有命令进行详细说明的一篇参考文档。
读者对象:ORACLE9i RAC数据库集群管理员。
注:
RAC:     Real Application Clusters
SRVM:   Server Management
-------------------------------------------------------------------------------
l         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
表4-5 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 mydb -o /ora/ora9
实例:向数据库添加实例
srvctl add instance -d mydb -i  mydb01 -n gm01
srvctl add instance -d mydb -i  mydb02 -n gm02
srvctl add instance -d mydb -i  mydb03 -n gm03
        SRVCTL Config
显示保存在SRVM配置文件中的配置信息
srvctl config database
显示数据库配置列表
srvctl config database -d database_name
数据库配置信息显示的格式:
nodename1 instancename1 oraclehome
nodename2 instancename2 oraclehome
实例:显示数据库配置信息
srvctl config database -d mydb
l         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 mydb
l         SRVCTL Modify
修改实例的节点配置信息。这些修改会在程序下次重新启动后生效。修改后的信息将永久保存。
srvctl modify instance -d database_name -i instance_name -n node_name
实例:修改实例到另一个节点
srvctl modify  instance  -d mydb  -n my_new_node
l         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 mydb
实例:删除数据库实例
srvctl remove instance -d mydb -i  mydb01
srvctl remove instance -d mydb -i  mydb02
srvctl remove instance -d mydb -i  mydb03
l         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 mydb -t LANG=en
l         SRVCTL Start
启动数据库,所有实例或指定的实例,及启动所有相关未启动的监听。
-------------------------------------------------------------------------------
注:
对于start命令和其它一些可以使用连接字符串的操作,如果你不提供连接字符串,那么ORACLE会使用"/ as sysdba"在实例上执行相关的操作。另外,要执行类似的操作,你必须是OSDBA组的成员。关于更多的OSDBA组权限信息,请参考ORACLE9i的安装指南。
-------------------------------------------------------------------------------
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]
表4-6 SRVCTL Start命令详细选项
-------------------------------------------------------------------------------
命令   选项
-------------------------------------------------------------------------------
-o     在SQL*Plus直接传递的startup命令选项,可以包括PFILE
-c     使用SQL*Plus连接数据库实例的连接字符串
-------------------------------------------------------------------------------
实例:启动数据库及所有的实例
srvctl start database -d mydb
实例:启动指定的实例
srvctl start instance  -d mydb -i mydb1,mydb4
l         SRVCTL Status
显示指定数据库的当前状态
srvctl status database -d database_name
srvctl status instance -d database_name -i instance_name [,instance_name-list]
实例:显示数据和所有实例状态
srvctl status database -d mydb
实例:显示指定实例的状态
srvctl status instance -d mydb -i mydb1,mydb2
l         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]
表4-7 SRVCTL Stop命令详细选
-------------------------------------------------------------------------------
命令   选项
-------------------------------------------------------------------------------
-c     使用SQL*Plus连接数据库实例的连接字符串
-o     在SQL*Plus直接传递的shutdown命令选项
-------------------------------------------------------------------------------
实例:停止数据库所有的实例
srvctl stop database -d mydb
实例:停止指定实例
srvctl stop instance  -d mydb -i mydb1
l         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 mydb -t CLASSPATH
l         使用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
$p82786Instance rac11g1 is running on node ser1
Instance rac11g2 is running on node ser2
现在RAC数据库RAC11G已经可以通过SRVCTL命令来维护了。
利用srvctl config命令可以看到现有数据库的配置信息:
bash-3.00$ 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
$R r82786START_OPTIONS: null
POLICY:  AUTOMATIC
ENABLE FLAG: DB ENABLED 

posted on 2009-01-14 15:17  一江水  阅读(7231)  评论(0编辑  收藏  举报