關閉oracle rac的方法:1、停止各節點的監聽服務;2、關閉資料庫執行個體;3、關閉ASM實例;4、使用crs_stat指令查詢RAC節點的服務狀態是否正常;5、停止CRS集群軟體即可。
本教學操作環境:Windows7系統、Oracle 11g版、Dell G3電腦。
如何正確啟動關閉 Oracle RAC?
如果要關閉Oracle叢集資料庫系統,簡單粗暴的方式是,作業系統執行OS指令:shutdown -h now;
這種方式比較暴力,可以將資料庫系統關閉,但是這樣操作,Oracle的某些服務可能沒有正常關閉,再次啟動OS之後會出現好多服務處於UNKNOW的狀態。
那麼如何正確的根據Oracle工作機制來關閉和啟動RAC?
RAC#關閉的合理順序:(注意事項:退出所有的客戶端連接,例如SQLplus ...)
#停止各節點的監聽服務-->>關閉資料庫(實例)-->>關閉ASM實例-->>關閉節點叢集服務-->>關閉伺服器
1.停止各節點的監聽服務
檢查監聽狀態:
srvctl status listener -n node1
#關閉監聽:##
[oracle@node1 ~]$ srvctl stop listener -n node1 [oracle@node2 ~]$ srvctl stop listener -n node2
可以用上述指令在兩個節點上分別停止對應的監聽,也可以用下列指令在一個節點上執行,停止所有的監聽。
[oracle@node1 ~]$ srvctl stop listener
#再次檢查監聽狀態:
##2.關閉資料庫實例
#(1)檢視資料庫實例名稱:select instance_name from v$instance;
#例如查到的資料庫實例名稱為:DEVDB
##(2)使用srvctl (service control)指令依序關閉叢集服務(注意:退出上邊的sqlplus客戶端,否則資料庫無法正常關閉)
A.檢查資料庫實例狀態(oracle使用者下執行)srvctl status database -d DEVDB (数据库实例名根据实际填写,并且区分大小写)
b 關閉資料庫實例:srvctl stop database -d DEVDB
以上指令僅在一個節點上執行就可以,也可以分別在兩個節點上分開執行下列指令,實現相同的功能。 srvctl stop instance -d DEVDB -i devdb1 (填写自实际的INSTANCE_NAME)
srvctl stop instance -d DEVDB -i devdb2
C 查看關閉狀態:srvctl status database -d DEVDB # 3.关闭ASM实例 查看ASM运行状态:srvctl status asm -n node1 停止ASM实例: srvctl stop asm -n node1 4.关闭RAC(CRS)集群服务 (1)使用crs_stat 命令查询RAC节点的服务状态是否正常 (root或者grid用户) (2)停止CRS集群服务 停止两个节点的服务: **** (3)停止CRS集群软件 注意:停止数据库集群软件,在一个节点执行即可,在节点2就不用执行了。 (4)再次查看两个节点的CRS服务状态: 当上述操作都执行完成,并且正常关闭后,就可以将服务器的关闭了。 ================ 启动的顺序和关闭相反 启动服务器-->>启动服务-->>启动ASM-->>启动实例-->>启动监听 这里我们需要注意;Oracle RAC集群软件有一个属性可以设置,就是当服务器操作系统重启后,集群服务是否会随着操作系统一块启动;上边启动的顺序步骤是在:当禁用该自启动属性的情况下的操作顺序;关于该属性的查看与设置,详见下一篇稳文章:关于集群自启动的查看。 (1)首先启动服务器 (2)启动CRS软件: 查看服务: (3)启动ASM 查看ASM状态 启动ASM (4)启动实例 (5)启动监听 =============================== 重启=关闭+启动 从上述各步可以看出,关闭和开启都是分步执行的,这样操作还有一个好处,可以帮助我们发现定位问题。 推荐教程:《Oracle使用教程》crs_stat -t -v
srvctl stop nodeapps -n node1
srvctl stop nodeapps -n node2
[root@node1 ~]# find / -name crsctl
[root@node1 ~]# /u01/grid/11.2.0.4/bin/crsctl stop crs (分别在两个节点的root用户下执行)
CRS-2791: 正在启动用于关闭 'rac1' 上 Oracle High Availability Services 管理的资源的操作
CRS-2673: 尝试停止 'ora.crsd' (在 'rac1' 上)
CRS-2790: 正在启动关闭 'rac1' 上集群就绪服务管理的资源的操作
CRS-2673: 尝试停止 'ora.asm' (在 'rac1' 上)
CRS-2677: 成功停止 'ora.asm' (在 'rac1' 上)
CRS-2792: 关闭 'rac1' 上集群就绪服务管理的资源的操作已完成
CRS-2677: 成功停止 'ora.crsd' (在 'rac1' 上)
CRS-2673: 尝试停止 'ora.cssdmonitor' (在 'rac1' 上)
CRS-2673: 尝试停止 'ora.ctssd' (在 'rac1' 上)
CRS-2673: 尝试停止 'ora.evmd' (在 'rac1' 上)
CRS-2673: 尝试停止 'ora.asm' (在 'rac1' 上)
CRS-2673: 尝试停止 'ora.mdnsd' (在 'rac1' 上)
CRS-2677: 成功停止 'ora.cssdmonitor' (在 'rac1' 上)
CRS-2677: 成功停止 'ora.evmd' (在 'rac1' 上)
CRS-2677: 成功停止 'ora.mdnsd' (在 'rac1' 上)
CRS-2677: 成功停止 'ora.ctssd' (在 'rac1' 上)
CRS-2677: 成功停止 'ora.asm' (在 'rac1' 上)
CRS-2673: 尝试停止 'ora.cssd' (在 'rac1' 上)
CRS-2677: 成功停止 'ora.cssd' (在 'rac1' 上)
CRS-2673: 尝试停止 'ora.gpnpd' (在 'rac1' 上)
CRS-2673: 尝试停止 'ora.diskmon' (在 'rac1' 上)
CRS-2677: 成功停止 'ora.gpnpd' (在 'rac1' 上)
CRS-2673: 尝试停止 'ora.gipcd' (在 'rac1' 上)
CRS-2677: 成功停止 'ora.gipcd' (在 'rac1' 上)
CRS-2677: 成功停止 'ora.diskmon' (在 'rac1' 上)
CRS-2793: 关闭 'rac1' 上 Oracle High Availability Services 管理的资源的操作已完成
CRS-4133: Oracle High Availability Services has been stopped.
[grid@node1 ~]$ crs_stat -t -v
CRS-0184: Cannot communicate with the CRS daemon. (服务已经关闭)
[grid@node2 ~]$ crs_stat -t -v
CRS-0184: Cannot communicate with the CRS daemon. (服务已经关闭)
[root@node1 ~]# find / -name crsctl
[root@node1 ~]# /u01/grid/11.2.0.4/bin/crsctl start crs
srvctl status nodeapps -n node1
srvctl status nodeapps -n node2
crsctl status res – -t
srvctl status asm -n node1
srvctl start asm -n node1
srvctl start asm -n node2
srvctl status database -d node1
srvctl start database -d node2
srvctl status listener (RAC环境)
srvctl start listener
或者 lsnrctl start
以上是oracle rac如何關閉的詳細內容。更多資訊請關注PHP中文網其他相關文章!