您的位置:首页 > 数据库 > Oracle

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

2009-01-14 15:17 453 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: