在安装Oracle RAC集群环境后,与集群有关的进程会自动启动。这样就带来了一个问题,似乎这里有不可控的因素在里面。在默认情况下,主机重新启动后集群进程会随操作系统而启动,因主机在启动的过程中会消耗比较大的资源,加之集群进程所消耗的资源,对于性能比较差的环境有可能导致集群环境启动非常缓慢的情况(在低效率的虚拟机环境下该问题尤为突出)。另外,在计划停机的场景下,我们依然需要对集群进程做细粒度的控制。crsctl命令可以比较便捷的达到我们的维护目的。

注意:以上命令必须以root用户的身份来执行。

1.禁止Oracle集群随操作系统重启而自动启动
使用“crsctl disable crs”命令可以实现禁止Oracle集群在操作系统重新启动时被自动启动。注:此命令不会停止正在运行的Oracle集群环境,仅对后续的操作有影响。
[root@rac1 ~]# /oracle/app/crs/bin/crsctl disable crs

从此往后,集群启停将进入到手动管理模式,我们因此实现了更多的控制。

2.启用Oracle集群随操作系统重启而自动启动
这也是系统的默认行为。可以使用“crsctl enable crs”命令来实现。
[root@rac1 ~]# /oracle/app/crs/bin/crsctl enable crs

3.停止Oracle集群堆栈
使用“crsctl stop crs”命令可以停止Oracle集群堆栈。可以针对每一个具体RAC节点操作。
[root@rac1 ~]# /oracle/app/crs/bin/crsctl stop crs
Stopping resources. This could take several minutes.
Successfully stopped CRS resources.
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.

4.启动Oracle集群堆栈
使用“crsctl start crs”命令可以启动Oracle集群堆栈。可以针对每一个具体RAC节点操作。
[root@rac1 ~]# /oracle/app/crs/bin/crsctl start crs
Attempting to start CRS stack
The CRS stack will be started shortly

5.小结
建议将Oracle集群堆栈设置为手工启停模式,这样可以避免一些不必要的问题。我们的目标:Under Control!

Good luck.

secooler
10.11.17

-- The End --