目標:
- 熟悉主要進程的啟停順序
- 了解獨占模式 -excl
- crsctl start crs與crsctl start cluster 區別
1.熟悉主要進程的啟停順序
1.1 啟動節點rac1:
1 [root@rac1 bin]# ./crsctl start crs -excl 2 CRS-4123: Oracle High Availability Services has been started. --啟動OHASD進程 3 CRS-2672: Attempting to start 'ora.gipcd' on 'rac1' 4 CRS-2672: Attempting to start 'ora.mdnsd' on 'rac1' 5 CRS-2676: Start of 'ora.gipcd' on 'rac1' succeeded --啟動ora.gipcd 6 CRS-2676: Start of 'ora.mdnsd' on 'rac1' succeeded --啟動ora.mdnsd 7 CRS-2672: Attempting to start 'ora.gpnpd' on 'rac1' 8 CRS-2676: Start of 'ora.gpnpd' on 'rac1' succeeded --啟動ora.gpnpd 9 CRS-2672: Attempting to start 'ora.cssdmonitor' on 'rac1' 10 CRS-2676: Start of 'ora.cssdmonitor' on 'rac1' succeeded --啟動ora.cssdmonitor 11 CRS-2672: Attempting to start 'ora.cssd' on 'rac1' 12 CRS-2679: Attempting to clean 'ora.diskmon' on 'rac1' 13 CRS-2681: Clean of 'ora.diskmon' on 'rac1' succeeded --清除ora.diskmon 14 CRS-2672: Attempting to start 'ora.diskmon' on 'rac1' 15 CRS-2676: Start of 'ora.diskmon' on 'rac1' succeeded --啟動ora.diskmon 16 CRS-2676: Start of 'ora.cssd' on 'rac1' succeeded --啟動ora.cssd 17 CRS-2672: Attempting to start 'ora.ctssd' on 'rac1' 18 CRS-2672: Attempting to start 'ora.drivers.acfs' on 'rac1' 19 CRS-2676: Start of 'ora.ctssd' on 'rac1' succeeded --啟動ora.ctssd 20 CRS-2676: Start of 'ora.drivers.acfs' on 'rac1' succeeded --啟動ora.drivers.acfs 21 CRS-2672: Attempting to start 'ora.asm' on 'rac1' 22 CRS-2676: Start of 'ora.asm' on 'rac1' succeeded --啟動ora.asm 23 CRS-2672: Attempting to start 'ora.crsd' on 'rac1' 24 CRS-2676: Start of 'ora.crsd' on 'rac1' succeeded --啟動ora.crsd 25 26 觀察節點rac2: --節點未啟動,說明 crsctl start crs -excl 只啟動單節點進程 27 [root@rac2 bin]# ps -ef|grep grid 28 root 5823 4165 0 23:26 pts/1 00:00:00 grep grid 29 [root@rac2 bin]#
1.2 關閉節點rac1
1 [root@rac1 bin]# ./crsctl stop crs -f 2 CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'rac1' 3 CRS-2673: Attempting to stop 'ora.crsd' on 'rac1' 4 CRS-2677: Stop of 'ora.crsd' on 'rac1' succeeded --關閉ora.crsd 5 CRS-2673: Attempting to stop 'ora.cssdmonitor' on 'rac1' 6 CRS-2673: Attempting to stop 'ora.ctssd' on 'rac1' 7 CRS-2673: Attempting to stop 'ora.asm' on 'rac1' 8 CRS-2673: Attempting to stop 'ora.drivers.acfs' on 'rac1' 9 CRS-2673: Attempting to stop 'ora.mdnsd' on 'rac1' 10 CRS-2677: Stop of 'ora.cssdmonitor' on 'rac1' succeeded --關閉ora.cssdmonitor 11 CRS-2677: Stop of 'ora.mdnsd' on 'rac1' succeeded --關閉ora.mdnsd 12 CRS-2677: Stop of 'ora.ctssd' on 'rac1' succeeded --關閉ora.ctssd 13 CRS-2677: Stop of 'ora.drivers.acfs' on 'rac1' succeeded --關閉ora.drivers.acfs 14 CRS-2677: Stop of 'ora.asm' on 'rac1' succeeded --關閉ora.asm 15 CRS-2673: Attempting to stop 'ora.cssd' on 'rac1' 16 CRS-2677: Stop of 'ora.cssd' on 'rac1' succeeded --關閉ora.cssd 17 CRS-2673: Attempting to stop 'ora.gpnpd' on 'rac1' 18 CRS-2673: Attempting to stop 'ora.diskmon' on 'rac1' 19 CRS-2677: Stop of 'ora.gpnpd' on 'rac1' succeeded --關閉ora.gpnpd 20 CRS-2673: Attempting to stop 'ora.gipcd' on 'rac1' 21 CRS-2677: Stop of 'ora.diskmon' on 'rac1' succeeded --關閉ora.diskmon 22 CRS-2677: Stop of 'ora.gipcd' on 'rac1' succeeded --關閉ora.gipcd 23 CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'rac1' has completed --關閉OHASD進程 24 CRS-4133: Oracle High Availability Services has been stopped. 25 [root@rac1 bin]#
總結:重要進程的啟動順序為:OHASD -> ora.gpnpd -> ora.cssd -> ora.asm -> ora.crsd
2. 了解獨占模式 -excl
既然是以獨占模式啟動,那么有些資源一定是不能被其他節點共享的。出現搶占資源會出現什么情況
2.1 啟動節點rac1:
1 [root@rac1 bin]# ./crsctl start crs -excl -- -excl表示以獨占模式啟動 2 CRS-4123: Oracle High Availability Services has been started. 3 CRS-2672: Attempting to start 'ora.gipcd' on 'rac1' 4 CRS-2672: Attempting to start 'ora.mdnsd' on 'rac1' 5 CRS-2676: Start of 'ora.gipcd' on 'rac1' succeeded 6 CRS-2676: Start of 'ora.mdnsd' on 'rac1' succeeded 7 CRS-2672: Attempting to start 'ora.gpnpd' on 'rac1' 8 CRS-2676: Start of 'ora.gpnpd' on 'rac1' succeeded 9 CRS-2672: Attempting to start 'ora.cssdmonitor' on 'rac1' 10 CRS-2676: Start of 'ora.cssdmonitor' on 'rac1' succeeded 11 CRS-2672: Attempting to start 'ora.cssd' on 'rac1' 12 CRS-2679: Attempting to clean 'ora.diskmon' on 'rac1' 13 CRS-2681: Clean of 'ora.diskmon' on 'rac1' succeeded 14 CRS-2672: Attempting to start 'ora.diskmon' on 'rac1' 15 CRS-2676: Start of 'ora.diskmon' on 'rac1' succeeded 16 CRS-2676: Start of 'ora.cssd' on 'rac1' succeeded 17 CRS-2672: Attempting to start 'ora.ctssd' on 'rac1' 18 CRS-2672: Attempting to start 'ora.drivers.acfs' on 'rac1' 19 CRS-2676: Start of 'ora.ctssd' on 'rac1' succeeded 20 CRS-2676: Start of 'ora.drivers.acfs' on 'rac1' succeeded 21 CRS-2672: Attempting to start 'ora.asm' on 'rac1' 22 CRS-2676: Start of 'ora.asm' on 'rac1' succeeded 23 CRS-2672: Attempting to start 'ora.crsd' on 'rac1' 24 CRS-2676: Start of 'ora.crsd' on 'rac1' succeeded 25 [root@rac1 bin]#
2.2 RAC1在獨占模式下時,看看節點RAC2搶占資源時會發生什么:
1 [root@rac2 bin]# ./crsctl start crs -excl 2 CRS-4123: Oracle High Availability Services has been started. 3 CRS-2672: Attempting to start 'ora.gipcd' on 'rac2' 4 CRS-2672: Attempting to start 'ora.mdnsd' on 'rac2' 5 CRS-2676: Start of 'ora.gipcd' on 'rac2' succeeded 6 CRS-2676: Start of 'ora.mdnsd' on 'rac2' succeeded 7 CRS-2672: Attempting to start 'ora.gpnpd' on 'rac2' 8 CRS-2676: Start of 'ora.gpnpd' on 'rac2' succeeded 9 CRS-2672: Attempting to start 'ora.cssdmonitor' on 'rac2' 10 CRS-2676: Start of 'ora.cssdmonitor' on 'rac2' succeeded 11 CRS-2672: Attempting to start 'ora.cssd' on 'rac2' 12 CRS-2679: Attempting to clean 'ora.diskmon' on 'rac2' 13 CRS-2681: Clean of 'ora.diskmon' on 'rac2' succeeded 14 CRS-2672: Attempting to start 'ora.diskmon' on 'rac2' 15 CRS-2676: Start of 'ora.diskmon' on 'rac2' succeeded 16 CRS-4402: The CSS daemon was started in exclusive mode but found an active CSS daemon on node rac1, number 1, and is terminating 17 CRS-2674: Start of 'ora.cssd' on 'rac2' failed 18 CRS-2679: Attempting to clean 'ora.cssd' on 'rac2' 19 CRS-2681: Clean of 'ora.cssd' on 'rac2' succeeded 20 CRS-2673: Attempting to stop 'ora.diskmon' on 'rac2' 21 CRS-2677: Stop of 'ora.diskmon' on 'rac2' succeeded 22 CRS-2673: Attempting to stop 'ora.cssdmonitor' on 'rac2' 23 CRS-2677: Stop of 'ora.cssdmonitor' on 'rac2' succeeded 24 CRS-2673: Attempting to stop 'ora.gpnpd' on 'rac2' 25 CRS-2677: Stop of 'ora.gpnpd' on 'rac2' succeeded 26 CRS-2673: Attempting to stop 'ora.mdnsd' on 'rac2' 27 CRS-2677: Stop of 'ora.mdnsd' on 'rac2' succeeded 28 CRS-2673: Attempting to stop 'ora.gipcd' on 'rac2' 29 CRS-2677: Stop of 'ora.gipcd' on 'rac2' succeeded 30 CRS-4000: Command Start failed, or completed with errors. 31 [root@rac2 bin]#
出現狀況了(CRS-4402,CRS-2674),現在看看兩個節點的的進程狀況.
2.3 查看兩個節點此時的進程狀況
1 節點RAC1的進程狀態: 2 [root@rac1 bin]# ps -ef|grep grid 3 root 16810 1 0 00:56 ? 00:00:01 /u01/grid/bin/ohasd.bin exclusive 4 grid 16944 1 0 00:56 ? 00:00:00 /u01/grid/bin/oraagent.bin 5 grid 16959 1 0 00:56 ? 00:00:00 /u01/grid/bin/gipcd.bin 6 grid 16964 1 0 00:56 ? 00:00:00 /u01/grid/bin/mdnsd.bin 7 grid 16983 1 0 00:56 ? 00:00:00 /u01/grid/bin/gpnpd.bin 8 root 17020 1 0 00:56 ? 00:00:00 /u01/grid/bin/orarootagent.bin 9 grid 17640 1 0 01:02 ? 00:00:00 /u01/grid/bin/diskmon.bin -d -f 10 root 17708 14498 0 01:06 pts/1 00:00:00 grep grid 11 [root@rac1 bin]# 12 13 節點RAC2的進程狀態: 14 [root@rac2 bin]# ps -ef|grep grid 15 root 8557 1 0 01:01 ? 00:00:01 /u01/grid/bin/ohasd.bin exclusive 16 root 8929 7581 0 01:08 pts/1 00:00:00 grep grid 17 [root@rac2 bin]#
哈哈,在爭奪資源時RAC1,RAC2兩敗俱傷!獨占模式一般用於數據庫恢復,升級時。
以非獨占模式啟動則是去掉 -excl:crsctl start crs
3. crsctl start crs與crsctl start cluster 區別
Oracle 11g r2 把一些grid類的組件進行了打包,叫做 grid infrastructure ,簡稱GI,主要包括如下組件:
1) ohas :新增的 oracle high availability service。
2) crs:原有的clusterware 組件,功能有很大改變。
3) asm:以前是集成在dbca,現在單獨抽了出來,添加了asmca,增強了asmcmd,增強了advm,acfs。
4) oracle net:就是以前數據庫的監聽那部分,增加了scan。
1. crsctl start/stop crs 是對當前節點的相關資源進行操作的,是包含ohas的,通過check 可以查看結果
[grid@node1 bin]$ ./crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
crsctl start/stop crs 是會影響到這4種進程的
2. crsctl start/stop cluster 可對集群的所有節點(當然包括當前節點)的相關資源進行操作的,前提是目標節點ohas必需是OK的,通過check 可以查看結果
[grid@node1 bin]$ ./crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
添加 -all 或者 -n node1,node2 參數 可對集群的所有節點或者指定 的 node1,node2 節點操作
[grid@node1 bin]$ ./crsctl check cluster -all
**************************************************************
node1:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************
node2:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************
crsctl start/stop cluster 只會影響到 這三種進程,不會影響到 ohas。
可以通過 crsctl enable/disable has 來控制has的是否隨OS的啟動而啟動。類似 crs 也有 crsctl enable/disable crs