天天看點

[Oracle叢集軟體全解析]CRSCTL Utility 參考這節講叢集中CRSCTL 指令的一些東西

這節講叢集中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 以前版本廢棄的指令對比

下表為廢棄的指令和替代指令對

[Oracle叢集軟體全解析]CRSCTL Utility 參考這節講叢集中CRSCTL 指令的一些東西
[Oracle叢集軟體全解析]CRSCTL Utility 參考這節講叢集中CRSCTL 指令的一些東西
[Oracle叢集軟體全解析]CRSCTL Utility 參考這節講叢集中CRSCTL 指令的一些東西

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

[Oracle叢集軟體全解析]CRSCTL Utility 參考這節講叢集中CRSCTL 指令的一些東西

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