天天看點

ORACLE RAC單節點啟停。

Oracle Product叢集因OS需要打patch需要單獨關閉節點進行維護,機器為個人測試Oracle 11g R2測試叢集

操作步驟

--确認叢集的db_unique_name,本初的db_unique_name為orcl

SQL> show parameter name

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

cell_offloadgroup_name               string

db_file_name_convert                 string

db_name                              string      orcl

db_unique_name                       string      orcl

global_names                         boolean     FALSE

instance_name                        string      orcl2

lock_name_space                      string

log_file_name_convert                string

processor_group_name                 string

service_names                        string      orcl

--确認叢集的instance_name

SQL> select instance_name,status from gv$instance;

INSTANCE_NAME    STATUS

---------------- ------------

orcl2            OPEN

orcl1            OPEN

#本處的兩個執行個體名為orcl1 和 orcl2

--關閉node1監聽,確定應用無法通過監聽連接配接資料庫

[[email protected] ~]$ srvctl stop listener -n oranode1

#使用crs_stat -t -v指令或者使用srvctl status listener指令檢查監聽運作情況

[[email protected] ~]$ srvctl status listener -n oranode1

Listener LISTENER is enabled on node(s): oranode1

Listener LISTENER is not running on node(s): oranode1

[[email protected] ~]$ srvctl status listener -n oranode2

Listener LISTENER is enabled on node(s): oranode2

Listener LISTENER is running on node(s): oranode2

#確定關閉前執行個體上沒有session在執行,如果有停機視窗的話建議殺一次local=no的會話

[[email protected] ~]$ ps -ef |grep -i local=no |wc -l

1

[[email protected] ~]$ ps -ef |grep -i local=no |cut -c 10-15|xargs kill -9

kill 7803: No such process

--關閉叢集節點一上的資料庫執行個體

[grid@oranode1 ~]$ srvctl stop instance -o immediate -d orcl -i orcl1

[[email protected] ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Thu Apr 13 12:41:30 2017

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to an idle instance.

#確定資料庫執行個體已經被關閉

[[email protected] ~]$ crs_stat -t -v

Name           Type           R/RA   F/FT   Target    State     Host        

----------------------------------------------------------------------

ora....DISK.dg ora....up.type 0/5    0/     ONLINE    ONLINE    oranode1    

ora.DATA.dg    ora....up.type 0/5    0/     ONLINE    ONLINE    oranode1    

ora....ER.lsnr ora....er.type 0/5    0/     ONLINE    ONLINE    oranode2    

ora....N1.lsnr ora....er.type 0/5    0/0    ONLINE    ONLINE    oranode2    

ora.asm        ora.asm.type   0/5    0/     ONLINE    ONLINE    oranode1    

ora.cvu        ora.cvu.type   0/5    0/0    ONLINE    ONLINE    oranode2    

ora.gsd        ora.gsd.type   0/5    0/     OFFLINE   OFFLINE               

ora....network ora....rk.type 0/5    0/     ONLINE    ONLINE    oranode1    

ora.oc4j       ora.oc4j.type  0/1    0/2    ONLINE    ONLINE    oranode2    

ora.ons        ora.ons.type   0/3    0/     ONLINE    ONLINE    oranode1    

ora....SM1.asm application    0/5    0/0    ONLINE    ONLINE    oranode1    

ora....E1.lsnr application    0/5    0/0    OFFLINE   OFFLINE               

ora....de1.gsd application    0/5    0/0    OFFLINE   OFFLINE               

ora....de1.ons application    0/3    0/0    ONLINE    ONLINE    oranode1    

ora....de1.vip ora....t1.type 0/0    0/0    ONLINE    ONLINE    oranode1    

ora....SM2.asm application    0/5    0/0    ONLINE    ONLINE    oranode2    

ora....E2.lsnr application    0/5    0/0    ONLINE    ONLINE    oranode2    

ora....de2.gsd application    0/5    0/0    OFFLINE   OFFLINE               

ora....de2.ons application    0/3    0/0    ONLINE    ONLINE    oranode2    

ora....de2.vip ora....t1.type 0/0    0/0    ONLINE    ONLINE    oranode2    

ora.orcl.db    ora....se.type 0/2    0/1    ONLINE    ONLINE    oranode2    

ora....ry.acfs ora....fs.type 0/5    0/     ONLINE    ONLINE    oranode1    

ora.scan1.vip  ora....ip.type 0/0    0/0    ONLINE    ONLINE    oranode2 

#可以看到,未關閉叢集節點一上的執行個體前,ora.orcl.db的服務是在節點一上,關閉節點一的資料庫執行個體後,ora.orcl.db已經飄在了節點二上了。

#或者使用srvctl status database 指令檢查

[[email protected] ~]$ srvctl status database -d orcl

Instance orcl1 is not running on node oranode1

Instance orcl2 is running on node oranode2

--關閉叢集節點一的ASM服務

[[email protected] ~]$ srvctl stop asm -n oranode1

PRCR-1014 : Failed to stop resource ora.asm

PRCR-1065 : Failed to stop resource ora.asm

CRS-2529: Unable to act on 'ora.asm' because that would require stopping or relocating 'ora.CLUSTER_DISK.dg', but the force option was not specified

#此處關閉asm執行個體在報錯,由于ora.CLUSTER_DISK的存在,指明此需要強制指定參數-f才能關閉ASM.此處如果是執行-f參數的話将會已shutdown abort的方式強制關閉資料庫,生産環境上執行此指令有風險

--#11Gr2下,ASM是cssd下管理的,需要把cssd關閉後,才能關閉ASM服務

--切換到root下執行crsctl stop crs的方式關閉整個叢集節點一的CRS服務

[[email protected] ~]# find / -name crsctl

/u01/app/11.2.0/grid/bin/crsctl

[[email protected] ~]# /u01/app/11.2.0/grid/bin/crsctl stop crs

CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'oranode1'

CRS-2673: Attempting to stop 'ora.crsd' on 'oranode1'

CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'oranode1'

CRS-2673: Attempting to stop 'ora.CLUSTER_DISK.dg' on 'oranode1'

CRS-2673: Attempting to stop 'ora.registry.acfs' on 'oranode1'

CRS-2673: Attempting to stop 'ora.DATA.dg' on 'oranode1'

CRS-2673: Attempting to stop 'ora.oranode1.vip' on 'oranode1'

CRS-2677: Stop of 'ora.oranode1.vip' on 'oranode1' succeeded

CRS-2672: Attempting to start 'ora.oranode1.vip' on 'oranode2'

CRS-2677: Stop of 'ora.registry.acfs' on 'oranode1' succeeded

CRS-2677: Stop of 'ora.DATA.dg' on 'oranode1' succeeded

CRS-2676: Start of 'ora.oranode1.vip' on 'oranode2' succeeded

CRS-2677: Stop of 'ora.CLUSTER_DISK.dg' on 'oranode1' succeeded

CRS-2673: Attempting to stop 'ora.asm' on 'oranode1'

CRS-2677: Stop of 'ora.asm' on 'oranode1' succeeded

CRS-2673: Attempting to stop 'ora.ons' on 'oranode1'

CRS-2677: Stop of 'ora.ons' on 'oranode1' succeeded

CRS-2673: Attempting to stop 'ora.net1.network' on 'oranode1'

CRS-2677: Stop of 'ora.net1.network' on 'oranode1' succeeded

CRS-2792: Shutdown of Cluster Ready Services-managed resources on 'oranode1' has completed

CRS-2677: Stop of 'ora.crsd' on 'oranode1' succeeded

CRS-2673: Attempting to stop 'ora.crf' on 'oranode1'

CRS-2673: Attempting to stop 'ora.ctssd' on 'oranode1'

CRS-2673: Attempting to stop 'ora.evmd' on 'oranode1'

CRS-2673: Attempting to stop 'ora.asm' on 'oranode1'

CRS-2673: Attempting to stop 'ora.drivers.acfs' on 'oranode1'

CRS-2673: Attempting to stop 'ora.mdnsd' on 'oranode1'

CRS-2677: Stop of 'ora.crf' on 'oranode1' succeeded

CRS-2677: Stop of 'ora.evmd' on 'oranode1' succeeded

CRS-2677: Stop of 'ora.mdnsd' on 'oranode1' succeeded

CRS-2677: Stop of 'ora.ctssd' on 'oranode1' succeeded

CRS-2677: Stop of 'ora.asm' on 'oranode1' succeeded

CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on 'oranode1'

CRS-2677: Stop of 'ora.drivers.acfs' on 'oranode1' succeeded

CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'oranode1' succeeded

CRS-2673: Attempting to stop 'ora.cssd' on 'oranode1'

CRS-2677: Stop of 'ora.cssd' on 'oranode1' succeeded

CRS-2673: Attempting to stop 'ora.gipcd' on 'oranode1'

CRS-2677: Stop of 'ora.gipcd' on 'oranode1' succeeded

CRS-2673: Attempting to stop 'ora.gpnpd' on 'oranode1'

CRS-2677: Stop of 'ora.gpnpd' on 'oranode1' succeeded

CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'oranode1' has completed

CRS-4133: Oracle High Availability Services has been stopped.

#可以看到,CRS指令執行輸出,節點一的cluster服務已經完全飄在了節點二上。

[[email protected] ~]$ crs_stat -t -v

Name           Type           R/RA   F/FT   Target    State     Host        

----------------------------------------------------------------------

ora....DISK.dg ora....up.type 0/5    0/     ONLINE    ONLINE    oranode2    

ora.DATA.dg    ora....up.type 0/5    0/     ONLINE    ONLINE    oranode2    

ora....ER.lsnr ora....er.type 0/5    0/     ONLINE    ONLINE    oranode2    

ora....N1.lsnr ora....er.type 0/5    0/0    ONLINE    ONLINE    oranode2    

ora.asm        ora.asm.type   0/5    0/     ONLINE    ONLINE    oranode2    

ora.cvu        ora.cvu.type   0/5    0/0    ONLINE    ONLINE    oranode2    

ora.gsd        ora.gsd.type   0/5    0/     OFFLINE   OFFLINE               

ora....network ora....rk.type 0/5    0/     ONLINE    ONLINE    oranode2    

ora.oc4j       ora.oc4j.type  0/1    0/2    ONLINE    ONLINE    oranode2    

ora.ons        ora.ons.type   0/3    0/     ONLINE    ONLINE    oranode2    

ora....de1.vip ora....t1.type 0/0    0/0    ONLINE    ONLINE    oranode2    

ora....SM2.asm application    0/5    0/0    ONLINE    ONLINE    oranode2    

ora....E2.lsnr application    0/5    0/0    ONLINE    ONLINE    oranode2    

ora....de2.gsd application    0/5    0/0    OFFLINE   OFFLINE               

ora....de2.ons application    0/3    0/0    ONLINE    ONLINE    oranode2    

ora....de2.vip ora....t1.type 0/0    0/0    ONLINE    ONLINE    oranode2    

ora.orcl.db    ora....se.type 0/2    0/1    ONLINE    ONLINE    oranode2    

ora....ry.acfs ora....fs.type 0/5    0/     ONLINE    ONLINE    oranode2    

ora.scan1.vip  ora....ip.type 0/0    0/0    ONLINE    ONLINE    oranode2

--確定ASM服務已經關閉

[[email protected] ~]$ srvctl status asm -n oranode1

ASM is not running on oranode1

[[email protected] ~]$ srvctl status asm -n oranode2

ASM is running on oranode2

--驗證叢集節點一的oracle相關服務已經完全關閉

[[email protected] ~]$ ps -ef |grep -i ora

root      1555     1  0 12:03 ?        00:00:10 /u01/app/11.2.0/grid/jdk/jre/bin/java -Xms64m -Xmx256m -classpath /u01/app/11.2.0/grid/tfa/oranode1/tfa_home/jar/RATFA.jar:/u01/app/11.2.0/grid/tfa/oranode1/tfa_home/jar/je-4.0.103.jar:/u01/app/11.2.0/grid/tfa/oranode1/tfa_home/jar/ojdbc6.jar oracle.rat.tfa.TFAMain /u01/app/11.2.0/grid/tfa/oranode1/tfa_home

root      1775  1704  0 12:03 ?        00:00:01 hald-addon-storage: polling /dev/sr0 (every 2 sec)

grid     11980 11916  0 13:14 pts/0    00:00:00 grep -i ora

[[email protected] ~]$ ps -ef |grep -i asm

grid     11988 11916  0 13:14 pts/0    00:00:00 grep -i asm

--確定叢集節點二可以正常通路

SQL> select instance_name,status from gv$instance;

INSTANCE_NAME    STATUS

---------------- ------------

orcl2            OPEN

#在配合os更新檔打完後需要開啟節點一上ORACLE服務

開啟步驟:

[[email protected] ~]# /u01/app/11.2.0/grid/bin/crsctl start crs

CRS-4123: Oracle High Availability Services has been started.

--確定節點一上CRS服務已經開啟成功

[[email protected] ~]$ crs_stat -t

Name           Type           Target    State     Host        

------------------------------------------------------------

ora....DISK.dg ora....up.type ONLINE    ONLINE    oranode1    

ora.DATA.dg    ora....up.type ONLINE    ONLINE    oranode1    

ora....ER.lsnr ora....er.type ONLINE    ONLINE    oranode2    

ora....N1.lsnr ora....er.type ONLINE    ONLINE    oranode2    

ora.asm        ora.asm.type   ONLINE    ONLINE    oranode1    

ora.cvu        ora.cvu.type   ONLINE    ONLINE    oranode2    

ora.gsd        ora.gsd.type   OFFLINE   OFFLINE               

ora....network ora....rk.type ONLINE    ONLINE    oranode1    

ora.oc4j       ora.oc4j.type  ONLINE    ONLINE    oranode2    

ora.ons        ora.ons.type   ONLINE    ONLINE    oranode1    

ora....SM1.asm application    ONLINE    ONLINE    oranode1    

ora....E1.lsnr application    OFFLINE   OFFLINE               

ora....de1.gsd application    OFFLINE   OFFLINE               

ora....de1.ons application    ONLINE    ONLINE    oranode1    

ora....de1.vip ora....t1.type ONLINE    ONLINE    oranode1    

ora....SM2.asm application    ONLINE    ONLINE    oranode2    

ora....E2.lsnr application    ONLINE    ONLINE    oranode2    

ora....de2.gsd application    OFFLINE   OFFLINE               

ora....de2.ons application    ONLINE    ONLINE    oranode2    

ora....de2.vip ora....t1.type ONLINE    ONLINE    oranode2    

ora.orcl.db    ora....se.type ONLINE    ONLINE    oranode2    

ora....ry.acfs ora....fs.type ONLINE    ONLINE    oranode1    

ora.scan1.vip  ora....ip.type ONLINE    ONLINE    oranode2

--確定ASM服務已經運作在兩個節點上

[[email protected] ~]$ srvctl status asm

ASM is running on oranode2,oranode1

--開啟叢集節點一資料庫執行個體

[[email protected] ~]$ srvctl start instance -d orcl -i orcl1

--驗證是否啟動成功

[[email protected] ~]$ srvctl status database -d orcl

Instance orcl1 is running on node oranode1

Instance orcl2 is running on node oranode2

--開啟完成後叢集服務校驗,確定服務開啟成功且各自運作在叢集節點上

[[email protected] ~]$ crs_stat -t

Name           Type           Target    State     Host        

------------------------------------------------------------

ora....DISK.dg ora....up.type ONLINE    ONLINE    oranode1    

ora.DATA.dg    ora....up.type ONLINE    ONLINE    oranode1    

ora....ER.lsnr ora....er.type ONLINE    ONLINE    oranode1    

ora....N1.lsnr ora....er.type ONLINE    ONLINE    oranode2    

ora.asm        ora.asm.type   ONLINE    ONLINE    oranode1    

ora.cvu        ora.cvu.type   ONLINE    ONLINE    oranode2    

ora.gsd        ora.gsd.type   OFFLINE   OFFLINE               

ora....network ora....rk.type ONLINE    ONLINE    oranode1    

ora.oc4j       ora.oc4j.type  ONLINE    ONLINE    oranode2    

ora.ons        ora.ons.type   ONLINE    ONLINE    oranode1    

ora....SM1.asm application    ONLINE    ONLINE    oranode1    

ora....E1.lsnr application    ONLINE    ONLINE    oranode1    

ora....de1.gsd application    OFFLINE   OFFLINE               

ora....de1.ons application    ONLINE    ONLINE    oranode1    

ora....de1.vip ora....t1.type ONLINE    ONLINE    oranode1    

ora....SM2.asm application    ONLINE    ONLINE    oranode2    

ora....E2.lsnr application    ONLINE    ONLINE    oranode2    

ora....de2.gsd application    OFFLINE   OFFLINE               

ora....de2.ons application    ONLINE    ONLINE    oranode2    

ora....de2.vip ora....t1.type ONLINE    ONLINE    oranode2    

ora.orcl.db    ora....se.type ONLINE    ONLINE    oranode1    

ora....ry.acfs ora....fs.type ONLINE    ONLINE    oranode1    

ora.scan1.vip  ora....ip.type ONLINE    ONLINE    oranode2    

[[email protected] ~]$ 

--節點停機開啟操作與節點一上操作順序一緻