♣
题目部分
在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
需要注意的是,以上命令在生产库禁用。