Oracle 11g RAC启动和关闭(2)


 
 
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 
 
 
 
使用crs_stat命令来进程验证。
 
[grid@oracle1 ~]$ crs_stat -t -v

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/ceb1d6c885ed8eefffb8c82b7a364b2e.html