這節講叢集中CRSCTL 指令的一些東西
1. 關于CRSCTL
crsctl是我們和叢集軟體之間的一個接口,它調用API來操作叢集
11.2開始提供一個叢集相關的(cluster-aware)的指令讓我們對叢集進行開啟關閉和檢查動作
我們可以使用crsctl進行
- 開啟和期待Oracle叢集資源
- 啟用和禁用叢集程序
- 檢查叢集健康狀況
- 管理第三方應用資源
- 內建 Intelligent Platform Management Interface (IPMI)用來提供故障隔離支援以及確定叢集一緻性
- 調試Oracle叢集元件
1.1 Clusterized (Cluster Aware)指令
我們可以在一個節點中使用crsctl遠端操作其他節點,這個稱為Clusterized (Cluster Aware) Commands
它包括:
- crsctl check cluster
- crsctl start cluster
- crsctl stop cluster
1.2 一些備忘
- crsctl位于Grid_home/bin
- 很多crsctl可以使用-f參數強制執行而不用進行相關檢測
- 不要使用早期版本的crsctl操作11.2版本的叢集
1.3 以前版本廢棄的指令對比
下表為廢棄的指令和替代指令對
2.CRSCTL指令參考
crsctl指令可分為三類:
- Dual Environment 既可用于RAC環境也可用于Restart環境
- Oracle RAC Environmen 隻能用于RAC環境
- Oracle Restart Environment 隻能用于Restart環境,及OHAS服務
這裡列出比較重要的,全部指令請檢視
https://docs.oracle.com/cd/E11882_01/rac.112/e41959/crsref.htm#CWADD91147
2.1 Dual Environment
crsctl check css
該指令用來檢查Cluster Synchronization Services
crsctl check css
CRS-4529: Cluster Synchronization Services is online
crsctl check evm
該指令用來檢查 Event Manager
crsctl check evm
CRS-4533: Event Manager is online
crsctl get hostname
該指令用來擷取本地hostname
$ crsctl get hostname
lixora01
crsctl start resource
該指令開啟許多空閑的資源,多個資源指定方式有:
- 多個資源以空格隔開
- filter過濾
- -all指定全部
crsctl start resource {resource_name [...] | -w filter | -all} [-n server_name]
[-k cid] [-d did] [-env "env1=val1,env2=val2,..."] [-i] [-f]
舉例:
# crsctl start resource myResource -n server1
crsctl status resource
該指令用來擷取一個或多個resoure的狀态
crsctl status resource -t
crsctl stop resource
該指令用來停止運作中的資源
crsctl stop resource {resource_name [...] | -w "filter" | -all} [-n server_name]
[-k cid] [-d did] [-env "env1=val1,env2=val2,..."] [-i] [-f]
$ crsctl stop resource -n node1 -k 2
crsctl status type
該指令用來擷取一個或多個type的狀态
crsctl status type resource_type_name [...]] [-g] [-p] [-f]
$ crsctl status type ora.network.type
TYPE_NAME=ora.network.type
BASE_TYPE=ora.local_resource.type
2 Oracle RAC Environment
我們可以使用指令對RAC做如下操作
- Oracle Clusterware, the member nodes and server pools
- Oracle ASM (if installed)
- Cluster Synchronization Services
- Cluster Time Synchronization Services
crsctl add crs administrator
該指令增加一個使用者隻crs administrator組
crsctl add crs administrator -u user_name [-f]
# crsctl add crs administrator -u scott
crsctl add css votedisk
該指令用來增加voting disk,必須為裝置名不能為ASM磁盤組
$ crsctl add css votedisk /stor/grid/ -purge
$ crsctl add css votedisk /stor/grid/ -purge
crsctl check cluster
該指令用來檢查叢集的狀态(可以是整個叢集的CRS)
crsctl cluster [-all | [-n server_name [...]]
$ crsctl check cluster -all
crsctl check crs
該指令檢查目前節點的OHAS和CRS
$ crsctl check crs
CRS-4638: Oracle High Availablity Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
crsctl check resource
該指令用來檢查資源狀态
文法:
crsctl check resource {resource_name [...] | -w "filter" }
[-n node_name] [-k cardinality_id] [-d degree_id] }
舉例:
$ crsctl check resource appsvip
crsctl check ctss
該指令用來檢查Cluster Time Synchronization services
crsctl check ctss
CRS-4700: The Cluster Time Synchronization Service is in Observer mode.
crsctl config crs
該指令用來顯示OHAS自啟動配置,root使用者執行
crsctl config crs
CRS-4622: Oracle High Availability Services autostart is enabled.
crsctl delete crs administrator
該指令用來從crs administrator組删除使用者
文法:
crsctl delete crs administrator -u user_name [-f]
舉例:
# crsctl delete crs administrator -u scott
crsctl delete node
該指令用來删除節點
必須使用root使用者執行
crsctl delete node -n node_name
# crsctl delete node -n node06
crsctl disable crs
該指令用來禁用OHAS的開機自啟動
crsctl disable crs
CRS-4621: Oracle High Availability Services autostart is disabled.
crsctl stop cluster
該指令用來停止指定節點或所有節點的叢集服務
crsctl stop cluster [-all | -n server_name [...]] [-f]
# crsctl stop cluster -n node1
crsctl stop crs
該指令用于停止一個節點的叢集服務
2.3 Oracle Restart Environment
前面我們說到叢集服務啟動首先是啟動OHAS服務的
是以OHAS服務一旦停止,所有節點都将停止
crsctl check has
該指令用來檢查ohasd的狀态
crsctl check has
CRS-4638: Oracle High Availability Services is online
crsctl config has
該指令用來顯示High Availability Services的自啟動配置
crsctl config has
CRS-4622 Oracle High Availability Services autostart is enabled.
crsctl disable has
用來禁用 High Availability Services開機自啟動
crsctl disable has
CRS-4621 Oracle High Availability Services autostart is disabled.
crsctl enable has
用來啟用High Availability Services開機自啟動
crsctl enable has
CRS-4622 Oracle High Availability Services autostart is enabled.
crsctl start has
用來啟動Oracle High Availability Service
crsctl start has
crsctl stop has
用來關閉Oracle High Availability Service
crsctl stop has