oracle集群 节点切换不,Oracle 11gR2 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監聽,確保應用無法通過監聽連接數據庫
[grid@oranode1 ~]$ srvctl stop listener -n oranode1
#使用crs_stat -t -v命令或者使用srvctl status listener命令檢查監聽運行情況
[grid@oranode1 ~]$ srvctl status listener -n oranode1
Listener LISTENER is enabled on node(s): oranode1
Listener LISTENER is not running on node(s): oranode1
[grid@oranode2 ~]$ srvctl status listener -n oranode2
Listener LISTENER is enabled on node(s): oranode2
Listener LISTENER is running on node(s): oranode2
#確保關閉前實例上沒有session在執行,如果有停機窗口的話建議殺一次local=no的會話
[oracle@oranode1 ~]$ ps -ef |grep -i local=no |wc -l
1
[oracle@oranode1 ~]$ 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
[oracle@oranode1 ~]$ 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.
#確保數據庫實例已經被關閉
[grid@oranode1 ~]$ 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 命令檢查
[grid@oranode1 ~]$ srvctl status database -d orcl
Instance orcl1 is not running on node oranode1
Instance orcl2 is running on node oranode2
--關閉集群節點一的ASM服務
[grid@oranode1 ~]$ 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服務
[root@oranode1 ~]# find / -name crsctl
/u01/app/11.2.0/grid/bin/crsctl
[root@oranode1 ~]# /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服務已經完全飄在了節點二上。
[grid@oranode2 ~]$ 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服務已經關閉
[grid@oranode2 ~]$ srvctl status asm -n oranode1
ASM is not running on oranode1
[grid@oranode2 ~]$ srvctl status asm -n oranode2
ASM is running on oranode2
--驗證集群節點一的oracle相關服務已經完全關閉
[grid@oranode1 ~]$ 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
[grid@oranode1 ~]$ 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服務
開啟步驟:
[root@oranode1 ~]# /u01/app/11.2.0/grid/bin/crsctl start crs
CRS-4123: Oracle High Availability Services has been started.
--確保節點一上CRS服務已經開啟成功
[grid@oranode1 ~]$ 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服務已經運行在兩個節點上
[grid@oranode1 ~]$ srvctl status asm
ASM is running on oranode2,oranode1
--開啟集群節點一數據庫實例
[grid@oranode1 ~]$ srvctl start instance -d orcl -i orcl1
--驗證是否啟動成功
[grid@oranode1 ~]$ srvctl status database -d orcl
Instance orcl1 is running on node oranode1
Instance orcl2 is running on node oranode2
--開啟完成后集群服務校驗,確保服務開啟成功且各自運行在集群節點上
[grid@oranode1 ~]$ 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
[grid@oranode1 ~]$
--節點停機開啟操作與節點一上操作順序一致
總結
以上是生活随笔為你收集整理的oracle集群 节点切换不,Oracle 11gR2 RAC集群单节点关闭开启的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php如何转换类型,PHP数据类型转换
- 下一篇: oracle主键增长方式,oracle