ORACLE RAC 中 SRVCTL 命令详细说明文档
发布日期:2022-03-15 04:11:24 浏览次数:45 分类:技术文章

本文共 8100 字,大约阅读时间需要 27 分钟。

SRVCTL是ORACLEi RAC集群配置管理的工具。本文是对SRVCTL的所有命令进行详细说明的一篇参考文档。

  
  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 mydb -o /ora/ora
  
  实例:向数据库添加实例
  
  srvctl add instance -d mydb -i mydb0 -n gm0
  
  srvctl add instance -d mydb -i mydb0 -n gm0
  
  srvctl add instance -d mydb -i mydb0 -n gm0
  
  SRVCTL Config
  
  显示保存在SRVM配置文件中的配置信息
  
  srvctl config database
  
  显示数据库配置列表
  
  srvctl config database -d database_name
  
  数据库配置信息显示的格式:
  
  nodename instancename oraclehome
  
  nodename instancename 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 modify instance -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 remove database -d mydb
  
  实例:删除数据库实例
  
  srvctl remove instance -d mydb -i mydb0
  
  srvctl remove instance -d mydb -i mydb0
  
  srvctl remove instance -d mydb -i mydb0
  
  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组权限信息,请参考ORACLEi的安装指南。
  
  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 mydb
  
  实例:启动指定的实例
  
  srvctl start instance -d mydb -i mydb,mydb
  
  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 mydb,mydb
  
  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 mydb
  
  实例:停止指定实例
  
  srvctl stop instance -d mydb -i mydb
  
  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

核实 RAC 集群/数据库配置

应在集群的所有节点上执行以下 RAC 核实检查!对于本指南,我将只从 linux1 中执行这些检查。

本节提供了几个可用于验证 Oracle RAC 10g 配置的 srvctl 命令和 SQL 查询。

有五个为 SRVCTL 定义的节点级任务:

  • 添加和删除节点级应用程序
  • 设置和取消设置节点级应用程序的环境
  • 管理节点应用程序
  • 管理 ASM 实例
  • 启动和停止一组包含虚拟 IP 地址、监听器、Oracle 通知服务和 Oracle 企业管理器代理的程序(出于维护目的)。

所有实例和服务的状态

$ srvctl status database -d orcl

Instance orcl1 is running on node linux1

Instance orcl2 is running on node linux2

单个实例的状态

$ srvctl status instance -d orcl -i orcl2

Instance orcl2 is running on node linux2

在数据库全局命名服务的状态

$ srvctl status service -d orcl -s orcltest

Service orcltest is running on instance(s) orcl2, orcl1

特定节点上节点应用程序的状态

$ srvctl status nodeapps -n linux1

VIP is running on node:linux1

GSD is running on node:linux1

Listener is running on node:linux1

ONS daemon is running on node:linux1

ASM 实例的状态

$ srvctl status asm -n linux1

ASM instance +ASM1 is running on node linux1.

列出配置的所有数据库

$ srvctl config database

orcl

显示 RAC 数据库的配置

$ srvctl config database -d orcl

linux1 orcl1 /u01/app/oracle/product/10.1.0/db_1

linux2 orcl2 /u01/app/oracle/product/10.1.0/db_1

显示指定集群数据库的所有服务

$ srvctl config service -d orcl

orcltest PREF:orcl2 orcl1 AVAIL:

显示节点应用程序的配置 -(VIP、GSD、ONS、监听器)

$ srvctl config nodeapps -n linux1 -a -g -s -l

VIP exists.:/vip-linux1/192.168.1.200/255.255.255.0/eth0:eth1

GSD exists.

ONS daemon exists.

Listener exists.

显示 ASM 实例的配置

$ srvctl config asm -n linux1

+ASM1 /u01/app/oracle/product/10.1.0/db_1

集群中所有正在运行的实例

SELECT

inst_id

, instance_number inst_no

, instance_name inst_name

, parallel

, status

, database_status db_status

, active_state state

, host_name host

FROM gv$instance

ORDER BY inst_id;

 

INST_ID  INST_NO INST_NAME  PAR STATUS  DB_STATUS    STATE     HOST

-------- -------- ---------- --- ------- ------------ --------- -------

1        1 orcl1      YES OPEN    ACTIVE       NORMAL    linux1

2        2 orcl2      YES OPEN    ACTIVE       NORMAL    linux2

位于磁盘组中的所有数据文件

select name from v$datafile

union

select member from v$logfile

union

select name from v$controlfile

union

select name from v$tempfile;

 

NAME

-------------------------------------------

+ORCL_DATA1/orcl/controlfile/current.256.1

+ORCL_DATA1/orcl/datafile/indx.269.1

+ORCL_DATA1/orcl/datafile/sysaux.261.1

+ORCL_DATA1/orcl/datafile/system.259.1

+ORCL_DATA1/orcl/datafile/undotbs1.260.1

+ORCL_DATA1/orcl/datafile/undotbs1.270.1

+ORCL_DATA1/orcl/datafile/undotbs2.263.1

+ORCL_DATA1/orcl/datafile/undotbs2.271.1

+ORCL_DATA1/orcl/datafile/users.264.1

+ORCL_DATA1/orcl/datafile/users.268.1

+ORCL_DATA1/orcl/onlinelog/group_1.257.1

+ORCL_DATA1/orcl/onlinelog/group_2.258.1

+ORCL_DATA1/orcl/onlinelog/group_3.265.1

+ORCL_DATA1/orcl/onlinelog/group_4.266.1

+ORCL_DATA1/orcl/tempfile/temp.262.1

 

15 rows selected.

属于“ORCL_DATA1”磁盘组的所有 ASM 磁盘

SELECT path

FROM   v$asm_disk

WHERE  group_number IN (select group_number

from v$asm_diskgroup

where name = 'ORCL_DATA1');

 

PATH

----------------------------------

ORCL:VOL1

ORCL:VOL2

ORCL:VOL3

 


26. 启动和停止集群

此时,我们已经完全安装并配置了 Oracle RAC 10g 并拥有了一个功能完善的集群化数据库。

至此完成所有工作后,您可能会问“那我又怎样启动和停止服务呢?”如果您遵循了本指南中的说明,则所有服务(包括 CRS、所有 Oracle 实例、企业管理器数据库控制台等)应在 Linux 节点每次重新引导时自动启动。

但有时您可能想要关闭某个节点,然后手动重新启动它。或者,您可能发现企业管理器没有而需要启动它。本节提供了启动和停止集群环境的命令(使用 SRVCTL)。

确保您是以 oracle UNIX 用户登录的。我们将从 linux1 运行本节中的所有命令:

# su - oracle

 

$ hostname

linux1

停止 Oracle RAC 10g 环境

第一步是停止 Oracle 实例。当此实例(和相关服务)关闭后,关闭 ASM 实例。最后,关闭节点应用程序(虚拟 IP、GSD、TNS 监听器和 ONS)。

$ export ORACLE_SID=orcl1

$ emctl stop dbconsole

$ srvctl stop instance -d orcl -i orcl1

$ srvctl stop asm -n linux1

$ srvctl stop nodeapps -n linux1

启动 Oracle RAC 10g 环境

第一步是启动节点应用程序(虚拟 IP、GSD、TNS 监听器和 ONS)。当成功启动节点应用程序后,启动 ASM 实例。最后,启动 Oracle 实例(和相关服务)以及企业管理器数据库控制台。

$ export ORACLE_SID=orcl1

$ srvctl start nodeapps -n linux1

$ srvctl start asm -n linux1

$ srvctl start instance -d orcl -i orcl1

$ emctl start dbconsole

使用 SRVCTL 启动/停止所有实例

启动/停止所有实例及其启用的服务。我只是觉得有意思就把此步骤作为关闭所有实例的一种方法加进来了!

$ srvctl start database -d orcl

 

$ srvctl stop database -d orcl

 

转载于:https://www.cnblogs.com/weixun/archive/2013/05/13/3076737.html

转载地址:https://blog.csdn.net/weixin_30536513/article/details/99835670 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:在nodejs中的集成虹软人脸识别
下一篇:eclipse 中自定义EL表达式时创建tld文件

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年03月28日 11时37分05秒