有时候,我们会碰到客户提出需求,为rac数据库下的某个实例应用停掉,来做机器的正常维护,比如换HBA卡等
这个时候就需要我们DBA介入了,而且只关闭某个实例,而不影响到另外的实例和整个数据库的正常运行
Name
------------------------------------------------------------
ora....SM1.asmapplication
ora....C1.lsnrapplication
ora.rac1.gsd
ora.rac1.ons
ora.rac1.vip
ora....SM2.asmapplication
ora....C2.lsnrapplication
ora.rac2.gsd
ora.rac2.ons
ora.rac2.vip
ora.racdb.db
ora....b1.instapplication
ora....b2.instapplication
2.用srvctl停监听
[oracle@RAC2 ~]$ srvctl stop listener -n rac2
[oracle@RAC2 ~]$ crs_stat -t
Name
------------------------------------------------------------
ora....SM1.asmapplication
ora....C1.lsnrapplication
ora.rac1.gsd
ora.rac1.ons
ora.rac1.vip
ora....SM2.asmapplication
ora....C2.lsnrapplication
ora.rac2.gsd
ora.rac2.ons
ora.rac2.vip
ora.racdb.db
ora....b1.instapplication
ora....b2.instapplication
3.用srvctl停rac2实例
[oracle@RAC2 ~]$ srvctl stop instance -d racdb -i racdb2
[oracle@RAC2 ~]$ crs_stat -t
Name
------------------------------------------------------------
ora....SM1.asmapplication
ora....C1.lsnrapplication
ora.rac1.gsd
ora.rac1.ons
ora.rac1.vip
ora....SM2.asmapplication
ora....C2.lsnrapplication
ora.rac2.gsd
ora.rac2.ons
ora.rac2.vip
ora.racdb.db
ora....b1.instapplication
ora....b2.instapplication
4.用srvctl停实例2下面的asm
[oracle@RAC2 ~]$ srvctl stop asm -n rac2 -i +ASM2
[oracle@RAC2 ~]$ crs_stat -t
Name
------------------------------------------------------------
ora....SM1.asmapplication
ora....C1.lsnrapplication
ora.rac1.gsd
ora.rac1.ons
ora.rac1.vip
ora....SM2.asmapplication
ora....C2.lsnrapplication
ora.rac2.gsd
ora.rac2.ons
ora.rac2.vip
ora.racdb.db
ora....b1.instapplication
ora....b2.instapplication
5.用srvctl停止节点2上面的资源 manage nodeapp
[oracle@RAC2 ~]$ srvctl stop nodeapps -n rac2
CRS-0216: Could not stop resource'ora.rac2.LISTENER_RAC2.lsnr'.
[oracle@RAC2 ~]$ crs_stat -t
Name
------------------------------------------------------------
ora....SM1.asmapplication
ora....C1.lsnrapplication
ora.rac1.gsd
ora.rac1.ons
ora.rac1.vip
ora....SM2.asmapplication
ora....C2.lsnrapplication
ora.rac2.gsd
ora.rac2.ons
ora.rac2.vip
ora.racdb.db
ora....b1.instapplication
ora....b2.instapplication
6.停止CRS
首先用 ps -ef|grep d.bin 命令查找进程
[oracle@RAC2 ~]$ ps -ef|grep d.bin
oracle
root
root
oracle
oracle
[root@RAC2 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.
可以看出crs相关进程已经停止了
[root@RAC2 bin]# ps -ef|grep d.bin
root
[oracle@RAC1 ~]$ crs_stat -t
Name
------------------------------------------------------------
ora....SM1.asmapplication
ora....C1.lsnrapplication
ora.rac1.gsd
ora.rac1.ons
ora.rac1.vip
ora....SM2.asmapplication
ora....C2.lsnrapplication
ora.rac2.gsd
ora.rac2.ons
ora.rac2.vip
ora.racdb.db
ora....b1.instapplication
ora....b2.instapplication
可以看出没有实例2的相关资源online了
这个时候我们就可以关闭rac2机器了,进行相关维护操作
机器起来后 就会自动启动rac2上的所有资源,包括监听和数据库
这里手工启动演示下
[root@RAC2 bin]#./crsctl start crs
Attempting to start CRS stack
The CRS stack will be started shortly
[root@RAC2 bin]# ps -ef|grep d.bin
oracle
root
root
oracle
root
[oracle@RAC1 network-scripts]$ crs_stat -t
Name
------------------------------------------------------------
ora....SM1.asmapplication
ora....C1.lsnrapplication
ora.rac1.gsd
ora.rac1.ons
ora.rac1.vip
ora....SM2.asmapplication
ora....C2.lsnrapplication
ora.rac2.gsd
ora.rac2.ons
ora.rac2.vip
ora.racdb.db