SRVCTL是Oracle9i RAC集群配置治理的工具。本文是对SRVCTL的所有命令进行具体说明的一篇参考文档。
读者对象:ORACLE9i RAC数据库集群治理员。
注:
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 -ddatabase_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 adddatabase-d mydb -o /ora/ora9
实例:向数据库添加实例
srvctl add instance -d mydb -imydb01 -n gm01
srvctl add instance -d mydb -imydb02 -n gm02
srvctl add instance -d mydb -imydb03 -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
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
SRVCTL Modify
修改实例的节点配置信息。这些修改会在程序下次重新启动后生效。修改后的信息将永久保存。
srvctl modify instance -d database_name -i instance_name -n node_name
实例:修改实例到另一个节点
srvctl modifyinstance-d mydb-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 removedatabase-d mydb
实例:删除数据库实例
srvctl remove instance -d mydb -imydb01
srvctl remove instance -d mydb -imydb02
srvctl remove instance -d mydb -imydb03
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
SRVCTL Start
启动数据库,所有实例或指定的实例,及启动所有相关未启动的监听。
注:
对于start命令和其它一些可以使用连接字符串的操作,假如你不提供连接字符串,那么ORACLE会使用"/ as sysdba"在实例上执行相关的操作。另外,要执行类似的操作,你必须是OSDBA组的成员。关于更多的OSDBA组权限信息,请参考ORACLE9i的安装指南。
srvctl start database -d database_name [-ostart_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
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
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
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
使用SRVCONFIG导入和导出RAW设备配置信息
你可使用SRVCONFIG导入和导出RAW设备配置信息,不管配置文件是在集群文件系统上还是在RAW设备上。你可以使用这种方法来备份与恢复SRVM配置信息。
例如:
下面的命令用来导出配置信息的内容到你指定文件名的文本文件中。
srvconfig -eXP file_name
下面的命令用来从指定文本文件中导入配置信息到到你运行命令的RAC环境配置信息库。
srvconfig -imp file_name