Oracle RAC管理:SRVCTL命令详解

需积分: 50 1 下载量 50 浏览量 更新于2024-09-09 收藏 8KB TXT 举报
"这篇文章主要介绍了Oracle RAC(Real Application Clusters)环境下的常用命令,特别是SRVCTL命令,用于管理RAC数据库中的实例、监听器和服务。通过示例输出展示了CRS(Cluster Resource Assistant)的状态,揭示了RAC集群中各种组件的运行情况。" 在Oracle RAC环境下,管理和维护数据库集群需要对一系列命令有深入的理解。SRVCTL是Oracle Grid Infrastructure提供的一种命令行工具,用于控制和管理RAC环境中的资源。下面我们将详细介绍几个关键的SRVCTL命令和它们的作用: 1. SRVCTL start instance -n hostname -d database_name 这个命令用于启动指定主机上名为`database_name`的数据库实例。 2. SRVCTL stop instance -n hostname -d database_name 对应地,这个命令用于停止指定主机上的数据库实例。 3. SRVCTL status instance -n hostname -d database_name 用于查看特定主机上数据库实例的状态,确认其是否在线或离线。 4. SRVCTL configure listener -n hostname -l listener_name 该命令用于配置监听器`listener_name`,可以用来修改监听器的参数。 5. SRVCTL start listener -n hostname -l listener_name 启动指定主机和监听器名称的监听器服务。 6. SRVCTL stop listener -n hostname -l listener_name 停止指定主机和监听器名称的监听器服务。 7. SRVCTL status listener -n hostname -l listener_name 查看监听器的状态,确保它正常工作并监听正确的端口。 8. SRVCTL start service -d database_name -s service_name 启动数据库`database_name`上的服务`service_name`。 9. SRVCTL stop service -d database_name -s service_name 停止数据库服务。 10. SRVCTL status service -d database_name -s service_name 检查服务状态,确认它是否在线并可供客户端连接。 此外,CRS_stat -t -v命令的输出展示了集群资源的状态。例如,ora.SM1.asm表示ASM实例,ora.C1.lsnr代表监听器,ora.rac1.gsd是Global Services Daemon (GSD),ora.rac1.ons是Oracle Notification Server,ora.rac1.vip是虚拟IP地址,ora.racdb.db是数据库实例,ora.b1.inst和ora.b2.inst是备援实例,而ora.rac1.nodeapps和ora.rac2.nodeapps则代表节点应用程序。这些状态信息对于监控和故障排查至关重要。 Oracle 10g RAC环境中,还有其他操作需要注意,如使用`lsnrctl`停止监听器,`emctl`停止企业管理器数据库控制台,以及`srvctl`停止数据库、节点应用程序等。 了解并熟练掌握这些Oracle RAC命令对于高效运维和保障数据库集群的稳定运行至关重要。在日常工作中,运维人员应根据具体情况灵活运用这些工具来管理和监控RAC环境。
2010-08-30 上传
oracle rac日常基本维护命令 所有实例和服务的状态 $ 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.2.0/db_1 linux2 orcl2 /u01/app/oracle/product/10.2.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.: /linux1-vip/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.2.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 rac1 2 2 orcl2 YES OPEN ACTIVE NORMAL rac2 位于磁盘组中的所有数据文件 select name from v$datafile union select member from v$logfile union select name from v$controlfile union select name from v$tempfile; NAME ------------------------------------------- +FLASH_RECOVERY_AREA/orcl/controlfile/current.258.570913191 +FLASH_RECOVERY_AREA/orcl/onlinelog/group_1.257.570913201 +FLASH_RECOVERY_AREA/orcl/onlinelog/group_2.256.570913211 +FLASH_RECOVERY_AREA/orcl/onlinelog/group_3.259.570918285 +FLASH_RECOVERY_AREA/orcl/onlinelog/group_4.260.570918295 +ORCL_DATA1/orcl/controlfile/current.259.570913189 +ORCL_DATA1/orcl/datafile/example.257.570913311 +ORCL_DATA1/orcl/datafile/indx.270.570920045 +ORCL_DATA1/orcl/datafile/sysaux.260.570913287 +ORCL_DATA1/orcl/datafile/system.262.570913215 +ORCL_DATA1/orcl/datafile/undotbs1.261.570913263 +ORCL_DATA1/orcl/datafile/undotbs1.271.570920865 +ORCL_DATA1/orcl/datafile/undotbs2.265.570913331 +ORCL_DATA1/orcl/datafile/undotbs2.272.570921065 +ORCL_DATA1/orcl/datafile/users.264.570913355 +ORCL_DATA1/orcl/datafile/users.269.570919829 +ORCL_DATA1/orcl/onlinelog/group_1.256.570913195 +ORCL_DATA1/orcl/onlinelog/group_2.263.570913205 +ORCL_DATA1/orcl/onlinelog/group_3.266.570918279 +ORCL_DATA1/orcl/onlinelog/group_4.267.570918289 +ORCL_DATA1/orcl/tempfile/temp.258.570913303 21 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  二: 启动/停止RAC集群 确保是以 oracle UNIX 用户登录的。我们将从rac1节点运行所有命令: # su – oracle $ hostname Rac1 停止 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 rac1 $ srvctl stop nodeapps –n rac1 启动 Oracle RAC 10g 环境 第一步是启动节点应用程序(虚拟 IP、GSD、TNS 监听器和 ONS)。当成功启动节点应用程序后,启动 ASM 实例。最后,启动 Oracle 实例(和相关服务)以及企业管理器数据库控制台。 $ export ORACLE_SID=orcl1 $ srvctl start nodeapps -n rac1 $ srvctl start asm -n rac1 $ srvctl start instance -d orcl -i orcl1 $ emctl start dbconsole 使用 SRVCTL 启动/停止所有实例 启动/停止所有实例及其启用的服务。我只是觉得有意思就把此步骤作为关闭所有实例的一种方法加进来了! $ srvctl start database -d orcl $ srvctl stop database -d orcl