有时候,我们会碰到客户提出需求,为rac数据库下的某个实例应用停掉,来做机器的正常维护,比如换HBA卡等
这个时候就需要我们DBA介入了,而且只关闭某个实例,而不影响到另外的实例和整个数据库的正常运行
下面就具体步骤列出来:假设我们要停RAC2实例
1.用crs_stat显示资源的全部状态
[oracle@RAC2 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
ora.racdb.db application ONLINE ONLINE rac2
ora....b1.inst application ONLINE ONLINE rac1
ora....b2.inst application ONLINE ONLINE rac2
2.用srvctl停监听
[oracle@RAC2 ~]$ srvctl stop listener -n rac2
[oracle@RAC2 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application OFFLINE OFFLINE --可以看到监听资源已经停止
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
ora.racdb.db application ONLINE ONLINE rac2
ora....b1.inst application ONLINE ONLINE rac1
ora....b2.inst application ONLINE ONLINE rac2
3.用srvctl停rac2实例
[oracle@RAC2 ~]$ srvctl stop instance -d racdb -i racdb2
[oracle@RAC2 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application OFFLINE OFFLINE
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
ora.racdb.db application ONLINE ONLINE rac2
ora....b1.inst application ONLINE ONLINE rac1
ora....b2.inst application OFFLINE OFFLINE --可以看到实例2已经停止
4.用srvctl停实例2下面的asm
[oracle@RAC2 ~]$ srvctl stop asm -n rac2 -i +ASM2
[oracle@RAC2 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application OFFLINE OFFLINE --可以看到实例2下面的asm已经停止
ora....C2.lsnr application OFFLINE OFFLINE
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
ora.racdb.db application ONLINE ONLINE rac2
ora....b1.inst application ONLINE ONLINE rac1
ora....b2.inst application OFFLINE OFFLINE
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 Type Target State Host
------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application OFFLINE OFFLINE
ora....C2.lsnr application OFFLINE OFFLINE
ora.rac2.gsd application OFFLINE OFFLINE
ora.rac2.ons application OFFLINE OFFLINE
ora.rac2.vip application OFFLINE OFFLINE --可以看到实例2下面的gsd,ons,vip资源都已经停止
ora.racdb.db application ONLINE ONLINE rac2
ora....b1.inst application ONLINE ONLINE rac1
ora....b2.inst application OFFLINE OFFLINE
6.停止CRS
首先用 ps -ef|grep d.bin 命令查找进程
[oracle@RAC2 ~]$ ps -ef|grep d.bin
oracle 19373 19372 0 14:19 ? 00:00:07 /home/oracle/10gR2/db/bin/evmd.bin
root 19534 18342 2 14:19 ? 00:00:32 /home/oracle/10gR2/db/bin/crsd.bin reboot
root 19959 19543 0 14:19 ? 00:00:00 /home/oracle/10gR2/db/bin/oprocd.bin run -t 1000 -m 500 -f
oracle 20137 19576 0 14:19 ? 00:00:08 /home/oracle/10gR2/db/bin/ocssd.bin
oracle 30785 21369 0 14:45 pts/1 00:00:00 grep d.bin
[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 31791 7853 0 14:49 pts/1 00:00:00 grep d.bin
[oracle@RAC1 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application OFFLINE OFFLINE
ora....C2.lsnr application OFFLINE OFFLINE
ora.rac2.gsd application OFFLINE OFFLINE
ora.rac2.ons application OFFLINE OFFLINE
ora.rac2.vip application OFFLINE OFFLINE
ora.racdb.db application ONLINE ONLINE rac1
ora....b1.inst application ONLINE ONLINE rac1
ora....b2.inst application OFFLINE OFFLINE
可以看出没有实例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 1712 1711 4 14:56 ? 00:00:00 /home/oracle/10gR2/db/bin/evmd.bin
root 1850 31619 4 14:56 ? 00:00:00 /home/oracle/10gR2/db/bin/crsd.bin reboot
root 2318 1859 0 14:56 ? 00:00:00 /home/oracle/10gR2/db/bin/oprocd.bin run -t 1000 -m 500 -f
oracle 2462 1912 14 14:56 ? 00:00:00 /home/oracle/10gR2/db/bin/ocssd.bin
root 2494 7853 0 14:56 pts/1 00:00:00 grep d.bin
可以看到相关进程已经启动,需要等几分钟才会启动rac2相关资源
[oracle@RAC1 network-scripts]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
ora.racdb.db application ONLINE ONLINE rac1
ora....b1.inst application ONLINE ONLINE rac1
ora....b2.inst application ONLINE ONLINE rac2