【DB笔试面试712】在Oracle中,启动和关闭集群的命令是什么?

【DB笔试面试712】在Oracle中,启动和关闭集群的命令是什么?

题目部分

在Oracle中,启动和关闭集群的命令是什么?

     

答案部分

对于单机ASM或集群,可以使用如下的命令启动和关闭集群或单机ASM资源:

1crsctl start has
2crsctl stop has -f

对于集群,可以使用如下的命令启动和关闭集群:

1crsctl start crs
2crsctl stop crs -f

只有在ohasd运行的时候才可以使用如下的命令启动和关闭集群:

1crsctl start cluster -all
2crsctl stop cluster -all -f

对于以上命令,需要注意以下几点:

① 若使用crsctl直接关闭集群或单实例的ASM,则对于数据库资源都是直接执行的abort(类似于断电)操作,可能会导致坏块。因此,对于生产库,在关闭集群之前,一定首先要确保数据库资源已经正常关闭。

② 以上crsctl stop命令后都可以跟-f选项,表示强制关闭集群。

③ 对于集群而言,以上命令中的has、crs或cluster参数都适用。但是,对于单实例ASM而言,则只能使用has,而不能使用crs或cluster参数,否则会报如下的错误:

1CRS-4013: This command is not supported in a single-node configuration.

④ 使用命令“crsctl stop cluster -all”关闭集群后,集群还剩下的进程包括:ohasd、gipcd、gpnpd、mdnsd、ora.crf和ora.drivers.acfs等,详情如下:

 1[root@lhr-11gR2-rac1 ~]# ps -ef|grep d.bin
 2root     13395     1  0 16:15 ?        00:00:02 /u01/app/11.2.0/grid/bin/ohasd.bin reboot
 3grid     13514     1  0 16:15 ?        00:00:01 /u01/app/11.2.0/grid/bin/oraagent.bin
 4grid     13526     1  0 16:15 ?        00:00:00 /u01/app/11.2.0/grid/bin/mdnsd.bin
 5grid     13536     1  0 16:15 ?        00:00:00 /u01/app/11.2.0/grid/bin/gpnpd.bin
 6root     13546     1  0 16:15 ?        00:00:01 /u01/app/11.2.0/grid/bin/orarootagent.bin
 7grid     13549     1  0 16:15 ?        00:00:01 /u01/app/11.2.0/grid/bin/gipcd.bin
 8root     13560     1  0 16:15 ?        00:00:02 /u01/app/11.2.0/grid/bin/osysmond.bin
 9root     13883     1  0 16:17 ?        00:00:00 /u01/app/11.2.0/grid/bin/ologgerd -M -d /u01/app/11.2.0/grid/crf/db/lhr-11gr2-rac1
10root     15004 13305  0 16:26 pts/0    00:00:00 grep d.bin
11[root@lhr-11gR2-rac1 ~]#

集群的相关后台进程查看命令:ps -ef|grep d.bin,该命令输出结果如下所示:

 1[ZHLHRDB01:root]/]> ps -ef|grep d.bin
 2    root 12910838        1  31 16:12:12      -  0:00 /u01/app/11.2.0/grid/bin/ologgerd -m zlhrcb2101 -r -d /u01/app/11.2.0/grid/crf/db/zlhrcb1101
 3    root  6553890        1   6 16:11:35      -  0:01 /u01/app/11.2.0/grid/bin/ohasd.bin reboot
 4    grid  6684956        1   5 16:12:03      -  0:00 /u01/app/11.2.0/grid/bin/gipcd.bin
 5    root  6750494        1   8 16:12:03      -  0:00 /u01/app/11.2.0/grid/bin/osysmond.bin
 6    root  6816030        1   0 16:12:05      -  0:00 /bin/sh /u01/app/11.2.0/grid/bin/ocssd
 7    root  3342930        1   0 16:12:05      -  0:00 /u01/app/11.2.0/grid/bin/cssdagent
 8    grid  3408448  6816030  11 16:12:05      -  0:00 /u01/app/11.2.0/grid/bin/ocssd.bin
 9    root  3670608        1   0 16:12:03      -  0:00 /u01/app/11.2.0/grid/bin/orarootagent.bin
10    grid  3736148        1   0 16:11:59      -  0:00 /u01/app/11.2.0/grid/bin/mdnsd.bin
11    grid  8061810        1   0 16:11:59      -  0:00 /u01/app/11.2.0/grid/bin/oraagent.bin
12    root  8127338        1   0 16:12:04      -  0:00 /u01/app/11.2.0/grid/bin/cssdmonitor
13    grid  8192874        1   6 16:12:01      -  0:00 /u01/app/11.2.0/grid/bin/gpnpd.bin

可以使用如下的命令暴力关闭集群:

1kill -9 `ps -ef|grep d.bin| grep -v grep | awk '{print $2}'`
2ps -ef |grep d.bin|grep -v grep|awk '{print $2}' | xargs kill -9

需要注意的是,以上命令在生产库禁用。

上一篇:【复杂】CentOS 6.4下PXE+Kickstart无人值守安装操作系统


下一篇:【DB笔试面试712】在Oracle中,启动和关闭集群的命令是什么?