首頁  >  文章  >  資料庫  >  oracle rac如何關閉

oracle rac如何關閉

藏色散人
藏色散人原創
2021-12-29 15:12:144528瀏覽

關閉oracle rac的方法:1、停止各節點的監聽服務;2、關閉資料庫執行個體;3、關閉ASM實例;4、使用crs_stat指令查詢RAC節點的服務狀態是否正常;5、停止CRS集群軟體即可。

oracle rac如何關閉

本教學操作環境: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用户)

crs_stat -t -v

(2)停止CRS集群服务

停止两个节点的服务:

srvctl stop nodeapps -n node1
srvctl stop nodeapps -n node2

****

(3)停止CRS集群软件

[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.

注意:停止数据库集群软件,在一个节点执行即可,在节点2就不用执行了。

(4)再次查看两个节点的CRS服务状态:

[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. (服务已经关闭)

当上述操作都执行完成,并且正常关闭后,就可以将服务器的关闭了。

================

启动的顺序和关闭相反

启动服务器-->>启动服务-->>启动ASM-->>启动实例-->>启动监听

这里我们需要注意;Oracle RAC集群软件有一个属性可以设置,就是当服务器操作系统重启后,集群服务是否会随着操作系统一块启动;上边启动的顺序步骤是在:当禁用该自启动属性的情况下的操作顺序;关于该属性的查看与设置,详见下一篇稳文章:关于集群自启动的查看

(1)首先启动服务器

(2)启动CRS软件:

[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

(3)启动ASM

查看ASM状态

srvctl status asm -n node1

启动ASM

srvctl start asm -n node1
srvctl start asm -n node2

(4)启动实例

srvctl status database -d node1
srvctl start database -d node2

(5)启动监听

srvctl status listener   (RAC环境)
srvctl start listener  
或者 lsnrctl start

===============================

重启=关闭+启动

从上述各步可以看出,关闭和开启都是分步执行的,这样操作还有一个好处,可以帮助我们发现定位问题。

推荐教程:《Oracle使用教程

以上是oracle rac如何關閉的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn