iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >rac 启动和关闭
  • 141
分享到

rac 启动和关闭

2024-04-02 19:04:59 141人浏览 泡泡鱼
摘要

oracle 10g时代,我们很羡慕那些懂得Oracle9i的DBA,而不知不觉中度过了Oracle11g并迎接了12c时代,但是还是有不少DBA习惯于Oracle 10g的管理思维,尤其是在管理

oracle 10g时代,我们很羡慕那些懂得Oracle9i的DBA,而不知不觉中度过了Oracle11g并迎接了12c时代,但是还是有不少DBA习惯于Oracle 10g的管理思维,尤其是在管理或安装Oracle 11g RAC时,偶尔感到不知错所。 
 
在Oracle 11gR2 下的RAC,架构发生了变化,多了grid用户、警告日志位置也发生变化等。CRS的信息也是放在ASM 实例里的,所以要关asm,必须关闭crs,在Oracle  
 
11g环境 RAC + ASM之间层次架构如下图所示: 

rac 启动和关闭
 
 
而Oracle10g的RAC环境中,CRS的信息放在裸设备上,因此关闭asm后才关闭CRS才是正确的。 
 
除以上资源之外,我们还需要了解OHASD 资源,英文解释如下: 
 
      Oracle High Availability Services Daemon (OHASD) :This process anchors the lower part of the Oracle Clusterware stack, which consists of processes that facilitate cluster operations. 
 
      在11gR2里面启动CRS的时候,会提示ohasd已经启动。 那么这个OHASD到底包含哪些资源。 可以通过如下命令来查看: 
 
[grid@oracle1 ~]$ crsctl status resource -t 
 
-------------------------------------------------------------------------------- 
 
NAME          TARGET  STATE        SERVER                  STATE_DETAILS        
 
-------------------------------------------------------------------------------- 
 
Local Resources 
 
-------------------------------------------------------------------------------- 
 
ora.DATADG.dg 
 
              ONLINE  ONLINE      oracle1                                      
 
              ONLINE  ONLINE      oracle2                                      
 
ora.FRADG.dg 
 
              ONLINE  ONLINE      oracle1                                      
 
              ONLINE  ONLINE      oracle2                                      
 
ora.LISTENER.lsnr 
 
              ONLINE  ONLINE      oracle1                                      
 
              ONLINE  ONLINE      oracle2                                      
 
ora.OCRVT.dg 
 
              ONLINE  ONLINE      oracle1                                      
 
              ONLINE  ONLINE      oracle2                                      
 
ora.asm 
 
              ONLINE  ONLINE      oracle1                  Started              
 
              ONLINE  ONLINE      oracle2                  Started              
 
ora.gsd 
 
              OFFLINE OFFLINE      oracle1                                      
 
              OFFLINE OFFLINE      oracle2                                      
 
ora.net1.network 
 
              ONLINE  ONLINE      oracle1                                      
 
              ONLINE  ONLINE      oracle2                                      
 
ora.ons 
 
              ONLINE  ONLINE      oracle1                                      
 
              ONLINE  ONLINE      oracle2                                      
 
ora.reGIStry.acfs 
 
              ONLINE  ONLINE      oracle1                                      
 
              ONLINE  ONLINE      oracle2                                      
 
-------------------------------------------------------------------------------- 
 
Cluster Resources 
 
-------------------------------------------------------------------------------- 
 
ora.LISTENER_SCAN1.lsnr 
 
      1        ONLINE  ONLINE      oracle1                                      
 
ora.cvu 
 
      1        ONLINE  ONLINE      oracle2                                      
 
ora.oc4j 
 
      1        ONLINE  ONLINE      oracle2                                      
 
ora.oracle1.vip 
 
      1        ONLINE  ONLINE      oracle1                                      
 
ora.oracle2.vip 
 
      1        ONLINE  ONLINE      oracle2                                      
 
ora.scan1.vip 
 
      1        ONLINE  ONLINE      oracle1                                      
 
ora.sjjczr.db 
 
      1        ONLINE  ONLINE      oracle1                  Open                
 
      2        ONLINE  ONLINE      oracle2                  Open                
 
[grid@oracle1 ~]$ 
 
  
 
在Oracle 10g中CRS Resource 包括GSD(Global Serveice Daemon),ONS(Oracle Notification Service),VIP, Database, Instance 和 Service。 
 
 在11.2中,对CRSD资源进行了重新分类: Local Resources 和 Cluster Resources。 OHASD 指的就是Cluster Resource. 
 
  
 
  
 
1. Oracle 11g RAC关闭和启动相关命令

 
  
 
1.1 使用crsctl stop has/crsctl stop crs 
 
用root用户,在Oracle11gR2中停止和启动集群的命令如下: 
 
#crsctl stop has [-f] 
 
#crsctl start has 
 
    对于crsctl stop has 只有一个可选的参数就是-f,该命令只能停执行该命令服务器上的HAS.而不能停所有节点上的。所以要把RAC 全部停掉,需要在所有节点执行该命令。 
 
  
 
下面的2个命令:使用crs 和 使用has 效果是完全一样的: 
 
#crsctl stop crs [-f] 
 
#crsctl start crs 
 
  
 
记得第一次在生产环境中安装Oracle 11gR2  RAC + ASM 时,当安装完后通过crs_stat  -t 命令查看状态总觉得不太对(在节点二上是的online状态的资源数量比节点一明显少得多),想重启CRS和ASM,用了#crsctl stop crs命令(未带 [ -f ] 参数),总是不太顺利。最终重启了服务器。后来想想,实际上也可以使用crsctl stop has [-f],没比要重启服务器。 
 
  
 
启动HAS: 
 
[root@rac1bin]# ./crsctl start has 
 
CRS-4123:Oracle High Availability Services has been started. 
 
[root@rac1bin]# 
 
  
 
从上面看只是启动了HAS。实际上后面会把Oracle Restart 管理的资源都会启动。这个可以使用crs_stat命令来进程验证。 
 
[grid@oracle1 ~]$ crs_stat -t -v 
 
Name          Type          R/RA  F/FT  Target    State    Host        
 
---------------------------------------------------------------------- 
 
ora.DATADG.dg  ora....up.type 0/5    0/    ONLINE    ONLINE    oracle1      
 
ora.FRADG.dg  ora....up.type 0/5    0/    ONLINE    ONLINE    oracle1      
 
ora....ER.lsnr ora....er.type 0/5    0/    ONLINE    ONLINE    oracle1      
 
ora....N1.lsnr ora....er.type 0/5    0/0    ONLINE    ONLINE    oracle1      
 
ora.OCRVT.dg  ora....up.type 0/5    0/    ONLINE    ONLINE    oracle1      
 
ora.asm        ora.asm.type  0/5    0/    ONLINE    ONLINE    oracle1      
 
ora.cvu        ora.cvu.type  0/5    0/0    ONLINE    ONLINE    oracle2      
 
ora.gsd        ora.gsd.type  0/5    0/    OFFLINE  OFFLINE                
 
ora....network ora....rk.type 0/5    0/    ONLINE    ONLINE    oracle1      
 
ora.oc4j      ora.oc4j.type  0/1    0/2    ONLINE    ONLINE    oracle2      
 
ora.ons        ora.ons.type  0/3    0/    ONLINE    ONLINE    oracle1      
 
ora....SM1.asm application    0/5    0/0    ONLINE    ONLINE    oracle1      
 
ora....E1.lsnr application    0/5    0/0    ONLINE    ONLINE    oracle1      
 
ora....le1.gsd application    0/5    0/0    OFFLINE  OFFLINE                
 
ora....le1.ons application    0/3    0/0    ONLINE    ONLINE    oracle1      
 
ora....le1.vip ora....t1.type 0/0    0/0    ONLINE    ONLINE    oracle1      
 
ora....SM2.asm application    0/5    0/0    ONLINE    ONLINE    oracle2      
 
ora....E2.lsnr application    0/5    0/0    ONLINE    ONLINE    oracle2      
 
ora....le2.gsd application    0/5    0/0    OFFLINE  OFFLINE                
 
ora....le2.ons application    0/3    0/0    ONLINE    ONLINE    oracle2      
 
ora....le2.vip ora....t1.type 0/0    0/0    ONLINE    ONLINE    oracle2      
 
ora....ry.acfs ora....fs.type 0/5    0/    ONLINE    ONLINE    oracle1      
 
ora.scan1.vip  ora....ip.type 0/0    0/0    ONLINE    ONLINE    oracle1      
 
ora.sjjczr.db  ora....se.type 0/2    0/1    ONLINE    ONLINE    oracle1      
 
  
 
  
 
1.2 使用crsctl stop cluster [-all]… 
 
该命令的语法如下: 
 
crsctl stop cluster [[-all]|[-n<server>[...]]] [-f] 
 
crsctl start cluster [[-all]|[-n<server>[...]]] 
 
  
 
该参数支持的选项更多,可以同时操控所有的节点。如果不指定参数,那么只对当前节点有效。 
 
  
 
如: 
 
[root@rac1 ~]# ./crsctl start cluster -n rac1 rac2 
 
--停止当前节点集群: 
 
[root@rac1 bin]# ./crsctl stop cluster 
 
  
 
2.停止和启动Resource 
 
    当直接停止集群时,相关的Resource 也会被停止。 但实际情况下,我们操作更多的是对某些资源的启动或关闭等操作。具体就是使用SRVCTL 命令。该命令不常用总被忘记,因此可以用帮助选项 –h 来查看命令帮助: 
 
[grid@rac1 ~]$  Srvclt –h 
 
这个命令显示的结果太长,不好查看,可以进一步的查看帮助: 
 
 [grid@rac1 ~]$ srvctl start -h 
 
  
 
  
 
RAC 运行状态通用的命令如下: 
 
[root@vcdwdb1 ~]# srvctl -h 
 
-bash: srvctl: command not found 
 
[root@vcdwdb1 ~]# su - grid 
 
[grid@vcdwdb1 ~]$ srvctl -h 
 
用法: srvctl [-V]    --显示内容很多,如下对内容进行了挑选后粘贴 
 
用法: srvctl start nodeapps [-n <node_name>] [-g] [-v] 
 
用法: srvctl stop nodeapps [-n <node_name>] [-g] [-f] [-r] [-v] 
 
用法: srvctl status nodeapps 
 
用法: srvctl start vip { -n <node_name> | -i <vip_name> } [-v] 
 
用法: srvctl stop vip { -n <node_name>  | -i <vip_name> } [-f] [-r] [-v] 
 
用法: srvctl relocate vip -i <vip_name> [-n <node_name>] [-f] [-v] 
 
用法: srvctl status vip { -n <node_name> | -i <vip_name> } [-v] 
 
用法: srvctl start asm [-n <node_name>] [-o <start_options>] 
 
用法: srvctl stop asm [-n <node_name>] [-o <stop_options>] [-f] 
 
用法: srvctl config asm [-a] 
 
用法: srvctl status asm [-n <node_name>] [-a] [-v] 
 
用法: srvctl config listener [-l <lsnr_name>] [-a] 
 
用法: srvctl start listener [-l <lsnr_name>] [-n <node_name>] 
 
用法: srvctl stop listener [-l <lsnr_name>] [-n <node_name>] [-f] 
 
用法: srvctl status listener [-l <lsnr_name>] [-n <node_name>] [-v] 
 
用法: srvctl start scan [-i <ordinal_number>] [-n <node_name>] 
 
用法: srvctl stop scan [-i <ordinal_number>] [-f] 
 
用法: srvctl relocate scan -i <ordinal_number> [-n <node_name>] 
 
用法: srvctl status scan [-i <ordinal_number>] [-v] 
 
用法: srvctl config cvu 
 
用法: srvctl start cvu [-n <node_name>] 
 
用法: srvctl stop cvu [-f] 
 
用法: srvctl relocate cvu [-n <node_name>] 
 
用法: srvctl status cvu [-n <node_name>] 
 
  
 
  
 
也可以进一步查看配置信息,如下: 
 
[grid@vcdwdb1 ~]$ srvctl start -h 
 
SRVCTL start 命令启动启用 Oracle Clusterware 的未运行的对象。 
 
用法: srvctl start database -d <db_unique_name> [-o <start_options>] [-n <node>] 
 
用法: srvctl start instance -d <db_unique_name> {-n <node_name> [-i <inst_name>] | -i <inst_name_list>} [-o <start_options>] 
 
用法: srvctl start service -d <db_unique_name> [-s "<service_name_list>" [-n <node_name> | -i <inst_name>] ] [-o <start_options>] 
 
用法: srvctl start nodeapps [-n <node_name>] [-g] [-v] 
 
用法: srvctl start vip { -n <node_name> | -i <vip_name> } [-v] 
 
用法: srvctl start asm [-n <node_name>] [-o <start_options>] 
 
用法: srvctl start listener [-l <lsnr_name>] [-n <node_name>] 
 
用法: srvctl start scan [-i <ordinal_number>] [-n <node_name>] 
 
用法: srvctl start scan_listener [-n <node_name>] [-i <ordinal_number>] 
 
用法: srvctl start oc4j [-v] 
 
用法: srvctl start home -o <oracle_home> -s <state_file> -n <node_name> 
 
用法: srvctl start filesystem -d <volume_device> [-n <node_name>] 
 
用法: srvctl start diskgroup -g <dg_name> [-n "<node_list>"] 
 
用法: srvctl start gns [-l <log_level>] [-n <node_name>] [-v] 
 
用法: srvctl start cvu [-n <node_name>] 
 
有关各个命令和对象的详细帮助, 请使用: 
 
  srvctl <command> <object> -h 
 
[grid@vcdwdb1 ~]$ srvctl start listener -h 
 
  
 
启动监听程序。 
 
  
 
用法: srvctl start listener [-l <lsnr_name>] [-n <node_name>] 
 
    -l <lsnr_name>          监听程序名 
 
    -n <node_name>          节点名 
 
    -h                      输出用法 
 
[grid@vcdwdb1 ~]$ 
 
  
 
  
 
[grid@vcdwdb1 ~]$ srvctl status -h 
 
SRVCTL status 命令显示对象的当前状态。 
 
用法: srvctl status database -d <db_unique_name> [-f] [-v] 
 
用法: srvctl status instance -d <db_unique_name> {-n <node_name> | -i <inst_name_list>} [-f] [-v] 
 
用法: srvctl status service -d <db_unique_name> [-s "<service_name_list>"] [-f] [-v] 
 
用法: srvctl status nodeapps 
 
用法: srvctl status vip { -n <node_name> | -i <vip_name> } [-v] 
 
用法: srvctl status listener [-l <lsnr_name>] [-n <node_name>] [-v] 
 
用法: srvctl status asm [-n <node_name>] [-a] [-v] 
 
用法: srvctl status scan [-i <ordinal_number>] [-v] 
 
用法: srvctl status scan_listener [-i <ordinal_number>] [-v] 
 
用法: srvctl status srvpool [-g <pool_name>] [-a] 
 
用法: srvctl status server -n "<server_list>" [-a] 
 
用法: srvctl status oc4j [-n <node_name>] [-v] 
 
用法: srvctl status home -o <oracle_home> -s <state_file> -n <node_name> 
 
用法: srvctl status filesystem -d <volume_device> [-v] 
 
用法: srvctl status diskgroup -g <dg_name> [-n "<node_list>"] [-a] [-v] 
 
用法: srvctl status cvu [-n <node_name>] 
 
用法: srvctl status gns [-n <node_name>] [-v] 
 
有关各个命令和对象的详细帮助, 请使用: 
 
  srvctl <command> <object> -h 
 
  
 
 [grid@vcdwdb1 ~]$ srvctl config -h 
 
SRVCTL config 命令显示存储在 OCR 中的对象配置。 
 
用法: srvctl config database [-d <db_unique_name> [-a] ] [-v] 
 
用法: srvctl config service -d <db_unique_name> [-s <service_name>] [-v] 
 
用法: srvctl config nodeapps [-a] [-g] [-s] 
 
用法: srvctl config vip { -n <node_name> | -i <vip_name> } 
 
用法: srvctl config network [-k <network_number>] 
 
用法: srvctl config asm [-a] 
 
用法: srvctl config listener [-l <lsnr_name>] [-a] 
 
用法: srvctl config scan [-i <ordinal_number>] 
 
用法: srvctl config scan_listener [-i <ordinal_number>] 
 
用法: srvctl config srvpool [-g <pool_name>] 
 
用法: srvctl config oc4j 
 
用法: srvctl config filesystem -d <volume_device> 
 
用法: srvctl config gns [-a] [-d] [-k] [-m] [-n <node_name>] [-p] [-s] [-V] [-q <name>] [-l] [-v] 
 
用法: srvctl config cvu 
 
有关各个命令和对象的详细帮助, 请使用: 
 
  srvctl <command> <object> -h 
 
例如: 
 
[grid@vcdwdb1 ~]$ srvctl config asm 
 
ASM 主目录: /u01/app/11.2.0/grid_home 
 
ASM 监听程序: LISTENER 
 
[grid@vcdwdb1 ~]$ srvctl config asm -a 
 
ASM 主目录: /u01/app/11.2.0/grid_home 
 
ASM 监听程序: LISTENER 
 
ASM 已启用。 
 
[grid@vcdwdb1 ~]$ 
 
[grid@vcdwdb1 ~]$ srvctl config listener -a 
 
名称: LISTENER 
 
网络: 1, 所有者: grid 
 
主目录: <CRS home> 
 
  节点 vcdwdb2,vcdwdb1 上的 /u01/app/11.2.0/grid_home 
 
端点: tcp:1521 
 
  
 
总结: 
 
在Oracle 11g环境中,Oracle的关闭和启动顺序如下: 
 
  
 
关闭顺序: 
 
1、关闭数据库,oracl用户执行srvctl命令: 
 
 [oracle@rac1 ~]$ srvctl stop database -d ORCL ---停止所有节点上的实例 
 
或者每个节点登录数据库后执行sql>shutdown immediate 
 
2,停止HAS(High Availability Services),必须以root用户 
 
[root@rac1 oracle]# cd /u01/grid/11.2.0/grid/bin 
 
[root@rac1 bin]# ./crsctl stop has –f 
 
  
 
3,停止集群服务,必须以root用户: 
 
[root@rac1 oracle]# cd /u01/grid/11.2.0/grid/bin 
 
 [root@rac1 bin]# ./crsctl stop cluster -all  ----停止所有节点服务 
 
或[root@rac1 bin]# ./crsctl stop cluster        ----停止本节点集群服务,每个节点分别执行  
 
也可以如下控制所停节点: 
 
[root@rac1 bin]#  ./crsctl stop cluster -n rac1 rac2 
 
如果在一个节点停止其他所有节点的,而不一一执行命令,则也可以采用: 
 
[root@rac1 bin]# ./crsctl stop cluster –all 
 
  
 
启动顺序: 
 
11g R2的RAC默认开机会自启动,当然如果需要手工启动。手工启动按照cluster, HAS, database的顺序启动即可,具体命令如下: 
 
1、启动集群(cluster) 
 
[root@rac1 ~]# ./crsctl start cluster -all  --所有节点同时启动 
 
或者只启动指定节点的 
 
[root@rac1 ~]# ./crsctl start cluster -n rac1 rac2  --两个节点同时启动 
 
  
 
2、启动HAS(High Availability Services),必须以root用户 
 
[root@rac1 bin]# ./crsctl start has  
 
以上has启动命令需要在每个节点分别执行 
 
  
 
3、启动数据库,oracl用户执行srvctl命令(假设数据库名为ORCL): 
 
 [oracle@rac1 ~]$ srvctl start database -d ORCL ---停止所有节点上的实例 
 
或者每个节点登录数据库后执行SQL>startup  
 
  


您可能感兴趣的文档:

--结束END--

本文标题: rac 启动和关闭

本文链接: https://www.lsjlt.com/news/35203.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle怎么查询当前用户所有的表
    要查询当前用户拥有的所有表,可以使用以下 sql 命令:select * from user_tables; 如何查询当前用户拥有的所有表 要查询当前用户拥有的所有表,可以使...
    99+
    2024-05-15
    oracle
  • oracle怎么备份表中数据
    oracle 表数据备份的方法包括:导出数据 (exp):将表数据导出到外部文件。导入数据 (imp):将导出文件中的数据导入表中。用户管理的备份 (umr):允许用户控制备份和恢复过程...
    99+
    2024-05-15
    oracle
  • oracle怎么做到数据实时备份
    oracle 实时备份通过持续保持数据库和事务日志的副本来实现数据保护,提供快速恢复。实现机制主要包括归档重做日志和 asm 卷管理系统。它最小化数据丢失、加快恢复时间、消除手动备份任务...
    99+
    2024-05-15
    oracle 数据丢失
  • oracle怎么查询所有的表空间
    要查询 oracle 中的所有表空间,可以使用 sql 语句 "select tablespace_name from dba_tablespaces",其中 dba_tabl...
    99+
    2024-05-15
    oracle
  • oracle怎么创建新用户并赋予权限设置
    答案:要创建 oracle 新用户,请执行以下步骤:以具有 create user 权限的用户身份登录;在 sql*plus 窗口中输入 create user identified ...
    99+
    2024-05-15
    oracle
  • oracle怎么建立新用户
    在 oracle 数据库中创建用户的方法:使用 sql*plus 连接数据库;使用 create user 语法创建新用户;根据用户需要授予权限;注销并重新登录以使更改生效。 如何在 ...
    99+
    2024-05-15
    oracle
  • oracle怎么创建新用户并赋予权限密码
    本教程详细介绍了如何使用 oracle 创建一个新用户并授予其权限:创建新用户并设置密码。授予对特定表的读写权限。授予创建序列的权限。根据需要授予其他权限。 如何使用 Oracle 创...
    99+
    2024-05-15
    oracle
  • oracle怎么查询时间段内的数据记录表
    在 oracle 数据库中查询指定时间段内的数据记录表,可以使用 between 操作符,用于比较日期或时间的范围。语法:select * from table_name wh...
    99+
    2024-05-15
    oracle
  • oracle怎么查看表的分区
    问题:如何查看 oracle 表的分区?步骤:查询数据字典视图 all_tab_partitions,指定表名。结果显示分区名称、上边界值和下边界值。 如何查看 Oracle 表的分区...
    99+
    2024-05-15
    oracle
  • oracle怎么导入dump文件
    要导入 dump 文件,请先停止 oracle 服务,然后使用 impdp 命令。步骤包括:停止 oracle 数据库服务。导航到 oracle 数据泵工具目录。使用 impdp 命令导...
    99+
    2024-05-15
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作