8章 クラスタウェアの管理
本章はクラスタウェアの管理を行っていきます。
メンテナンス等でDBサーバを停止する場合など、
クラスタウェアの停止やリソース停止を行う必要があります。
本章ではこれらの作業方法について学んでいきます。
RACデータベースの作成
OracleのRAC環境はGI(Grid Infrastructure)というクラスタウェアで
リソースを管理しています。
GIに登録されたリソースを監視しており、もし監視対象のリソースに障害があった場合、
自動的に起動したり、別のノードにフェイルオーバーしたりします。
リソースとはクラスタウェアが監視する対象です。
リソースの登録は基本的には自動的に実施されます。
GIインストール時やDB作成時にVIPやリスナー、ASMを登録します。
DBCAでDB作成した場合は、DBやインスタンスなどを自動的に登録します。
SQL文でDBを作成した場合は、自動的には登録されません。
それではリソース一覧を確認してみましょう。
[構文] CRSリソース情報表示
$ $GRID_HOME/bin/crsctl stat res[ource} [-t]
resourceのキーワードはresで省略可能です。
では実際に試して見ます。
$ crsctl stat res
NAME=ora.ASMNET1LSNR_ASM.lsnr
TYPE=ora.asm_listener.type
TARGET=ONLINE , ONLINE
STATE=ONLINE on rac01, ONLINE on rac02
NAME=ora.ASMNET2LSNR_ASM.lsnr
TYPE=ora.asm_listener.type
TARGET=ONLINE , ONLINE
STATE=ONLINE on rac01, ONLINE on rac02
NAME=ora.DATA.dg
TYPE=ora.diskgroup.type
TARGET=ONLINE , ONLINE
STATE=ONLINE on rac01, ONLINE on rac02
NAME=ora.LISTENER.lsnr
TYPE=ora.listener.type
TARGET=ONLINE , ONLINE
STATE=ONLINE on rac01, ONLINE on rac02
NAME=ora.LISTENER_SCAN1.lsnr
TYPE=ora.scan_listener.type
TARGET=ONLINE
STATE=ONLINE on rac01
NAME=ora.LISTENER_SCAN2.lsnr
TYPE=ora.scan_listener.type
TARGET=ONLINE
STATE=ONLINE on rac02
NAME=ora.LISTENER_SCAN3.lsnr
TYPE=ora.scan_listener.type
TARGET=ONLINE
STATE=ONLINE on rac02
NAME=ora.MGMT.dg
TYPE=ora.diskgroup.type
TARGET=OFFLINE, ONLINE
STATE=OFFLINE, ONLINE on rac02
NAME=ora.MGMTLSNR
TYPE=ora.mgmtlsnr.type
TARGET=ONLINE
STATE=ONLINE on rac02
NAME=ora.asm
TYPE=ora.asm.type
TARGET=ONLINE , ONLINE , OFFLINE
STATE=ONLINE on rac01, ONLINE on rac02, OFFLINE
NAME=ora.chad
TYPE=ora.chad.type
TARGET=ONLINE , OFFLINE
STATE=ONLINE on rac01, OFFLINE
NAME=ora.cvu
TYPE=ora.cvu.type
TARGET=ONLINE
STATE=ONLINE on rac02
NAME=ora.mgmtdb
TYPE=ora.mgmtdb.type
TARGET=ONLINE
STATE=ONLINE on rac02
NAME=ora.net1.network
TYPE=ora.network.type
TARGET=ONLINE , ONLINE
STATE=ONLINE on rac01, ONLINE on rac02
NAME=ora.ons
TYPE=ora.ons.type
TARGET=ONLINE , ONLINE
STATE=ONLINE on rac01, ONLINE on rac02
NAME=ora.orcl.db
TYPE=ora.database.type
TARGET=ONLINE , ONLINE
STATE=ONLINE on rac01, ONLINE on rac02
NAME=ora.proxy_advm
TYPE=ora.proxy_advm.type
TARGET=ONLINE , ONLINE
STATE=ONLINE on rac01, ONLINE on rac02
NAME=ora.qosmserver
TYPE=ora.qosmserver.type
TARGET=ONLINE
STATE=ONLINE on rac02
NAME=ora.rac01.vip
TYPE=ora.cluster_vip_net1.type
TARGET=ONLINE
STATE=ONLINE on rac01
NAME=ora.rac02.vip
TYPE=ora.cluster_vip_net1.type
TARGET=ONLINE
STATE=ONLINE on rac02
NAME=ora.scan1.vip
TYPE=ora.scan_vip.type
TARGET=ONLINE
STATE=ONLINE on rac01
NAME=ora.scan2.vip
TYPE=ora.scan_vip.type
TARGET=ONLINE
STATE=ONLINE on rac02
NAME=ora.LISTENER_LEAF.lsnr
TYPE=ora.leaf_listener.type
TARGET=
STATE=
NAME=ora.scan3.vip
TYPE=ora.scan_vip.type
TARGET=ONLINE
STATE=ONLINE on rac02
各リソースの一覧が表示されました。
これらの表示されたリソースがクラスタによって監視されています。
特に何もしていなくても色々なリソースが登録されていますね、
これらはGI,DB作成時にOracleによって自動的に登録されます。
ただリソースが多くて見づらいですね。
このような場合は-tオプションで表示を変更できます。
$ crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr
ONLINE ONLINE rac01 STABLE
ONLINE ONLINE rac02 STABLE
ora.ASMNET2LSNR_ASM.lsnr
ONLINE ONLINE rac01 STABLE
ONLINE ONLINE rac02 STABLE
ora.DATA.dg
ONLINE ONLINE rac01 STABLE
ONLINE ONLINE rac02 STABLE
ora.LISTENER.lsnr
ONLINE ONLINE rac01 STABLE
ONLINE ONLINE rac02 STABLE
ora.MGMT.dg
OFFLINE OFFLINE rac01 STABLE
ONLINE ONLINE rac02 STABLE
ora.chad
ONLINE ONLINE rac01 STABLE
OFFLINE OFFLINE rac02 STABLE
ora.net1.network
ONLINE ONLINE rac01 STABLE
ONLINE ONLINE rac02 STABLE
ora.ons
ONLINE ONLINE rac01 STABLE
ONLINE ONLINE rac02 STABLE
ora.proxy_advm
ONLINE ONLINE rac01 STABLE
ONLINE ONLINE rac02 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE rac01 STABLE
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE rac02 STABLE
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE rac02 STABLE
ora.MGMTLSNR
1 ONLINE ONLINE rac02 169.254.46.137 192.1
68.100.102 192.168.2
00.102,STABLE
ora.asm
1 ONLINE ONLINE rac01 Started,STABLE
2 ONLINE ONLINE rac02 Started,STABLE
3 OFFLINE OFFLINE STABLE
ora.cvu
1 ONLINE ONLINE rac02 STABLE
ora.mgmtdb
1 ONLINE ONLINE rac02 Open,STABLE
ora.orcl.db
1 ONLINE ONLINE rac01 Open,HOME=/u01/app/o
racle/product/12.2.0
/dbhome_1,STABLE
2 ONLINE ONLINE rac02 Open,HOME=/u01/app/o
racle/product/12.2.0
/dbhome_1,STABLE
ora.qosmserver
1 ONLINE ONLINE rac02 STABLE
ora.rac01.vip
1 ONLINE ONLINE rac01 STABLE
ora.rac02.vip
1 ONLINE ONLINE rac02 STABLE
ora.scan1.vip
1 ONLINE ONLINE rac01 STABLE
ora.scan2.vip
1 ONLINE ONLINE rac02 STABLE
ora.scan3.vip
1 ONLINE ONLINE rac02 STABLE
--------------------------------------------------------------------------------
上記のほうが見やすいですね。
代替リソース名を見ればどのようなリソースなのかはわかりますね。
またLocal ResourcesとCluster Resourcesの2つのタイプがありますが、
Local Resourcesはフェイルオーバーしないリソースです。
Cluseter Resourcesはフェイルオーバーを行うリソースです。
dg:ASMディスクグループ
lsnr:リスナー
db:データベース
vip:VIPリソース
network:ネットワークインタフェース
Targetは現在の目標値であり、Stateは現在の状態となります。
例えば、停止中のDBはTarget,Stateは共にOFFLINEとなります。
その後、DBを起動するコマンドを実行した場合、
TargetはONLINE,StateはOFFLINEとなります。
起動完了後はState,Target共にONLINEとなります。
また対象のリソースだけ見たい場合は、絞込みも可能です。
$ crsctl stat res -w "TYPE = ora.listener.type" -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE ONLINE rac01 STABLE
ONLINE ONLINE rac02 STABLE
--------------------------------------------------------------------------------
$ crsctl stat res -w "TYPE = ora.database.type" -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.orcl.db
1 ONLINE ONLINE rac01 Open,HOME=/u01/app/o
racle/product/12.2.0
/dbhome_1,STABLE
2 ONLINE ONLINE rac02 Open,HOME=/u01/app/o
racle/product/12.2.0
/dbhome_1,STABLE
--------------------------------------------------------------------------------
リソースの起動停止
次にリソースの起動方法について確認していきましょう。
DBの起動停止はシングルデータベースのときは
SQL*Plusからstartup,shutdownを使用して停止をしていました。
RAC環境の場合もSQL*Plusからの起動停止は可能です。
ただし、SQL*Plusの場合、各インスタンスのみに影響するコマンドである為、
全インスタンスを停止する場合、すべてノードでshutdownコマンドを実行する必要があります。
RAC環境の場合、srvctlコマンドを使用してリソースの起動停止を行うことが出来ます。
[構文] DB起動/停止
$ srvctl [start|stop] database -d DB名
[構文] インスタンス起動/停止
$ srvctl [start|stop] instance -d DB名 -i インスタンス名
[構文] リスナー起動/停止
$ srvctl [start/stop] listener [-n 対象ノード]
[構文] SCANリスナーの起動停止
$ srvctl [start/stop] scan_listener
[構文] SCAN VIPの起動停止
$ srvctl [start/stop] scan
一覧表示はcrsctlコマンドですが、リソースの管理はsrvctlで似ているのでご注意ください。
またリスナーの起動についてはlsnrctlがありますが、
RAC環境においては非推奨となるのでsrvctlコマンドを使用してください。
クラスタウェアの起動停止
メンテナンス作業等でOS停止を行うときなどはクラスタウェアを停止する必要があります。
クラスタウェアを停止するとすべてのリソースも合わせて停止されますが、
DB,リスナー,SCANのリソースはあらかじめ停止しておきましょう。
その他のリソースは起動したまま停止しても問題ありません。
もしDB起動中にクラスタウェアを停止するとDBは強制停止となります。
[構文] クラスタウェアの起動/停止
# crsctl [start/stop] crs
[構文] クラスタウェアの起動確認
# crsctl check crs
クラスウェアの起動停止コマンドはrootで実行する必要があります。
またこのコマンドは発行したノードのみ実行される為、
両系のノードを起動停止したい場合、両系で実行してください。
# crsctl stop crs
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources
on 'rac01'
CRS-2673: Attempting to stop 'ora.crsd' on 'rac01'
CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on server 'rac01'
CRS-2673: Attempting to stop 'ora.chad' on 'rac01'
CRS-2673: Attempting to stop 'ora.ACFS.TEST1.advm' on 'rac01'
CRS-2673: Attempting to stop 'ora.orcl.db' on 'rac01'
CRS-2673: Attempting to stop 'ora.qosmserver' on 'rac01'
CRS-2677: Stop of 'ora.ACFS.TEST1.advm' on 'rac01' succeeded
CRS-2673: Attempting to stop 'ora.proxy_advm' on 'rac01'
CRS-2677: Stop of 'ora.chad' on 'rac01' succeeded
CRS-2673: Attempting to stop 'ora.mgmtdb' on 'rac01'
CRS-2677: Stop of 'ora.mgmtdb' on 'rac01' succeeded
CRS-2673: Attempting to stop 'ora.MGMTLSNR' on 'rac01'
CRS-2677: Stop of 'ora.orcl.db' on 'rac01' succeeded
CRS-2673: Attempting to stop 'ora.ACFS.dg' on 'rac01'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'rac01'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN1.lsnr' on 'rac01'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN2.lsnr' on 'rac01'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN3.lsnr' on 'rac01'
CRS-2673: Attempting to stop 'ora.cvu' on 'rac01'
CRS-2673: Attempting to stop 'ora.rac01.vip' on 'rac01'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'rac01' succeeded
CRS-2677: Stop of 'ora.LISTENER_SCAN2.lsnr' on 'rac01' succeeded
CRS-2677: Stop of 'ora.LISTENER_SCAN3.lsnr' on 'rac01' succeeded
CRS-2677: Stop of 'ora.LISTENER_SCAN1.lsnr' on 'rac01' succeeded
CRS-2673: Attempting to stop 'ora.scan1.vip' on 'rac01'
CRS-2673: Attempting to stop 'ora.scan2.vip' on 'rac01'
CRS-2673: Attempting to stop 'ora.scan3.vip' on 'rac01'
CRS-2677: Stop of 'ora.ACFS.dg' on 'rac01' succeeded
CRS-2677: Stop of 'ora.rac01.vip' on 'rac01' succeeded
CRS-2677: Stop of 'ora.scan3.vip' on 'rac01' succeeded
CRS-2677: Stop of 'ora.MGMTLSNR' on 'rac01' succeeded
CRS-2673: Attempting to stop 'ora.rac02.vip' on 'rac01'
CRS-2677: Stop of 'ora.scan1.vip' on 'rac01' succeeded
CRS-2677: Stop of 'ora.scan2.vip' on 'rac01' succeeded
CRS-2677: Stop of 'ora.rac02.vip' on 'rac01' succeeded
CRS-2677: Stop of 'ora.cvu' on 'rac01' succeeded
CRS-2677: Stop of 'ora.qosmserver' on 'rac01' succeeded
CRS-2677: Stop of 'ora.proxy_advm' on 'rac01' succeeded
CRS-2673: Attempting to stop 'ora.MGMT.dg' on 'rac01'
CRS-2673: Attempting to stop 'ora.DATA.dg' on 'rac01'
CRS-2677: Stop of 'ora.MGMT.dg' on 'rac01' succeeded
CRS-2677: Stop of 'ora.DATA.dg' on 'rac01' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'rac01'
CRS-2677: Stop of 'ora.asm' on 'rac01' succeeded
CRS-2673: Attempting to stop 'ora.ASMNET1LSNR_ASM.lsnr' on 'rac01'
CRS-2673: Attempting to stop 'ora.ASMNET2LSNR_ASM.lsnr' on 'rac01'
CRS-2677: Stop of 'ora.ASMNET2LSNR_ASM.lsnr' on 'rac01' succeeded
CRS-2677: Stop of 'ora.ASMNET1LSNR_ASM.lsnr' on 'rac01' succeeded
CRS-2673: Attempting to stop 'ora.ons' on 'rac01'
CRS-2677: Stop of 'ora.ons' on 'rac01' succeeded
CRS-2673: Attempting to stop 'ora.net1.network' on 'rac01'
CRS-2677: Stop of 'ora.net1.network' on 'rac01' succeeded
CRS-2792: Shutdown of Cluster Ready Services-managed resources on 'rac01' has completed
CRS-2677: Stop of 'ora.crsd' on 'rac01' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'rac01'
CRS-2673: Attempting to stop 'ora.crf' on 'rac01'
CRS-2673: Attempting to stop 'ora.drivers.acfs' on 'rac01'
CRS-2673: Attempting to stop 'ora.gpnpd' on 'rac01'
CRS-2673: Attempting to stop 'ora.mdnsd' on 'rac01'
CRS-2677: Stop of 'ora.drivers.acfs' on 'rac01' succeeded
CRS-2677: Stop of 'ora.crf' on 'rac01' succeeded
CRS-2677: Stop of 'ora.gpnpd' on 'rac01' succeeded
CRS-2677: Stop of 'ora.mdnsd' on 'rac01' succeeded
CRS-2677: Stop of 'ora.asm' on 'rac01' succeeded
CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on 'rac01'
CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'rac01' succeeded
CRS-2673: Attempting to stop 'ora.ctssd' on 'rac01'
CRS-2673: Attempting to stop 'ora.evmd' on 'rac01'
CRS-2677: Stop of 'ora.ctssd' on 'rac01' succeeded
CRS-2677: Stop of 'ora.evmd' on 'rac01' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'rac01'
CRS-2677: Stop of 'ora.cssd' on 'rac01' succeeded
CRS-2673: Attempting to stop 'ora.driver.afd' on 'rac01'
CRS-2673: Attempting to stop 'ora.gipcd' on 'rac01'
CRS-2677: Stop of 'ora.driver.afd' on 'rac01' succeeded
CRS-2677: Stop of 'ora.gipcd' on 'rac01' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources
on 'rac01' has completed
CRS-4133: Oracle High Availability Services has been stopped.
上記表示が出たらクラスタウェアを停止できています。
また起動コマンドを実行してみます。
# crsctl start crs
CRS-4123: Oracle High Availability Services has been started.
プロンプトはすぐに戻ってきますが、起動には少し時間がかかるので、
クラスタウェアが起動したかどうかはcheckコマンドで確認できます。
# 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
上記の出力のとおり、すべてのサービスがオンラインと
なればクラスタウェアの起動は完了です。
クラスタウェア(GI)はOSが起動すると自動的に起動します。
これはGIがデフォルト自動起動が有効となっているからです。
# crsctl config crs
CRS-4622: Oracle High Availability Services autostart is enabled.
上記コマンドで現在の自動起動が有効化どうかを確認できます。
現状デフォルトはenable(有効)となります。
自動起動を有効/無効にする場合は以下のコマンドを使用します。
[構文] クラスタウェア自動起動 有効/無効
# crsctl [enable/disable] crs
リソース属性
各リソースには監視チェック間隔や障害時の起動試行回数など、
各リソースによってそれぞれ様々な属性値が存在します。
これらの値は基本的には変更する必要はないので、参考情報として考えてください。
またoraから始まる接頭辞のリソースの構成変更はサポートされていません。
もし独自のリソースを新規にクラスタウェアに監視させたい場合は、
登録するリソースの属性値を設定する必要があります。
今回は独自リソースを登録する方法はご紹介しませんので、各属性値を把握していきたいと思います。
[構文] リソース属性の確認方法
$ crsctl stat res リソース名 -p
それではリスナーの属性値を確認してみましょう。
$ crsctl stat res ora.LISTENER.lsnr -p
NAME=ora.LISTENER.lsnr
TYPE=ora.listener.type
ACL=owner:grid:rwx,pgrp:oinstall:rwx,other::r--
ACTIONS=
ACTION_SCRIPT=%CRS_HOME%/bin/racgwrap%CRS_SCRIPT_SUFFIX%
ACTION_TIMEOUT=60
AGENT_FILENAME=%CRS_HOME%/bin/oraagent%CRS_EXE_SUFFIX%
AUTO_START=restore
CHECK_INTERVAL=60
CHECK_TIMEOUT=120
CLEAN_TIMEOUT=60
CSS_CRITICAL=no
DEGREE=1
DELETE_TIMEOUT=60
DESCRIPTION=Oracle Listener resource
ENABLED=1
ENDPOINTS=TCP:1521
IGNORE_TARGET_ON_FAILURE=no
INSTANCE_FAILOVER=1
INTERMEDIATE_TIMEOUT=0
LOAD=1
LOCAL_REGISTRATION_ADDRESS=
LOGGING_LEVEL=1
MODIFY_TIMEOUT=60
NLS_LANG=
OFFLINE_CHECK_INTERVAL=0
ORACLE_HOME=%CRS_HOME%
PORT=1521
RESOURCE_GROUP=
RESTART_ATTEMPTS=5
RESTART_DELAY=0
SCRIPT_TIMEOUT=60
SERVER_CATEGORY=ora.hub.category
START_CONCURRENCY=0
START_DEPENDENCIES=hard(type:ora.cluster_vip_net1.type) pullup(type:ora.cluster
_vip_net1.type)
START_DEPENDENCIES_RTE_INTERNAL=
START_TIMEOUT=180
STOP_CONCURRENCY=0
STOP_DEPENDENCIES=hard(intermediate:type:ora.cluster_vip_net1.type)
STOP_DEPENDENCIES_RTE_INTERNAL=
STOP_TIMEOUT=0
TARGET_DEFAULT=default
TYPE_VERSION=1.2
UPTIME_THRESHOLD=1d
USER_WORKLOAD=no
USR_ORA_ENV=
USR_ORA_OPI=false
WORKLOAD_CPU=0
WORKLOAD_CPU_CAP=0
WORKLOAD_MEMORY_MAX=0
WORKLOAD_MEMORY_TARGET=0
たくさんの属性値が表示されましたね。
このリスナーリソースの名前はoraが接頭辞にあるので、
属性値の変更はサポートされないリソースです。
CHECK_INTERVAL:checkアクションの実行を繰り返す時間間隔
RESTART_ATTEMPTS:Oracle Clusterwareが、リソースの再配置を試行する前に、
リソースの現行のサーバー上でリソースの再起動を試行する回数。
AUTO_START:クラスタ・サーバーの再起動後、Oracle Clusterwareによって
リソースを自動的に起動するかどうかを示します。
START_DEPENDENCIES:リソースを起動する際にOracle Clusterwareで考慮する一連の関係を指定します。
STOP_DEPENDENCIES:リソースを停止する際にOracle Clusterwareで考慮する一連の関係を指定します。
その他にも色々なパラメータがありますのでこちらはマニュアルを参照してください。
https://docs.oracle.com/cd/E49329_01/rac.121/b71322/resatt.htm#CHDECBJC
また-vオプションを指定するとその対象リソースの障害時の起動回数などを確認することが出来ます。
$ crsctl stat res ora.LISTENER.lsnr -v
NAME=ora.LISTENER.lsnr
TYPE=ora.listener.type
LAST_SERVER=rac01
STATE=ONLINE on rac01
TARGET=ONLINE
CARDINALITY_ID=ONLINE
OXR_SECTION=0
RESTART_COUNT=0
FAILURE_COUNT=0
FAILURE_HISTORY=
ID=ora.LISTENER.lsnr rac01 1
INCARNATION=1
LAST_RESTART=01/22/2018 14:45:39
LAST_STATE_CHANGE=01/22/2018 14:45:39
STATE_DETAILS=
INTERNAL_STATE=STABLE
TARGET_SERVER=rac01
RESOURCE_GROUP=
INSTANCE_COUNT=1
以上が属性値に関する情報となります。
投票ディスク、OCRファイル
クラスタウェアには投票ディスクとOCRファイルが存在します。
投票ディスクのパスは以下のコマンドで確認可能です。
# crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE c1483332cefa4fd1bfd2ed75e57f9781 (AFD:DATA1) [DATA]
Located 1 voting disk(s).
投票ディスクはディスクグループのヘッダーの領域を使用しています。
投票ディスクはDATAディスクグループに存在していることが分かります。
次にOCRファイルの確認方法です。
# ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 4
Total space (kbytes) : 409568
Used space (kbytes) : 2292
Available space (kbytes) : 407276
ID : 778019095
Device/File Name : +DATA
Device/File integrity check succeeded
Device/File not configured
Device/File not configured
Device/File not configured
Device/File not configured
Cluster registry integrity check succeeded
Logical corruption check succeeded
こちらもDATAディスクグループにOCRファイルが格納されています。
続いてOLRファイルもocrcheckコマンドを使用します。
オプションでlocalを指定すると確認が出来ます。
# ocrcheck -local
Status of Oracle Local Registry is as follows :
Version : 4
Total space (kbytes) : 409568
Used space (kbytes) : 1100
Available space (kbytes) : 408468
ID : 1666909954
Device/File Name : /u01/app/12.2.0/grid/cdata/rac01.olr
Device/File integrity check succeeded
Local registry integrity check succeeded
Logical corruption check succeeded
OLRファイルはASMではなくOS上に存在することが分かります。
OCRファイルの障害時の対応
OCRファイルが破損してた場合、復旧作業が必要です。
OCRファイルはバックアップからリストアする必要があります。
OCRは自動的にバックアップが取得されているので特に手動で取得する必要はありません。
自動バックアップは4時間おきに取得され、以下のファイルが保持されます。
・4時間おきの最新の3つ
・前日の最新の1つ
・1週間前の最新の1つ
# ocrconfig -showbackup
rac01 2017/12/27 17:07:16 +MGMT:/rac-cluster/OCRBACKUP/backup00.ocr.269.96385 0
rac01 2017/12/05 17:31:05 +MGMT:/rac-cluster/OCRBACKUP/backup01.ocr.286.94259 0
rac01 2017/12/05 13:30:56 +MGMT:/rac-cluster/OCRBACKUP/backup02.ocr.284.99847 0
rac01 2017/12/27 17:07:16 +MGMT:/rac-cluster/OCRBACKUP/day.ocr.282.96639 0
rac01 2017/12/27 17:07:16 +MGMT:/rac-cluster/OCRBACKUP/week.ocr.283.53641 0
PROT-25: Manual backups for the Oracle Cluster Registry are not available
OLRも自動で取得されています。
# ocrconfig -local -showbackup
rac01 2017/06/27 12:17:37 /u01/app/12.2.0/grid/cdata/rac01/backup_20170627_121737.olr 0
今回はこちらには掲載しませんがリカバリの方法はマニュアル等を参照し、
十分に注意してリカバリを実施してください。
また投票ディスクに関しては破損しても自動的に再作成を行う為、
特に対応は不要です。
OCRファイルはリソース情報を格納している為、
その情報がなくなってしまわないよう、復旧が必要です。
クラスタウェアに何か異常があった場合、クラスタウェアのログから問題を調査します。
また監視リソースの障害などについてもクラスタウェアのログを
参照することで詳しい情報を調べることが出来ます。
各種ログの格納先は下記のとおりです。
ちなみに12.2のバージョン以降、クラスタウェアのログは以下に作成されるようになりました。
クラスタウェアログ
$GRID_HOME/log/ホスト名/alertホスト名.log
CRS,CSSDログ
$GRID_BASE/diag/crs/rac01/crs/trace配下
また12.2以降はコマンドラインを使用してクラスタウェアログを表示することが可能になりました。
[構文] リソース属性の確認方法
$ crsctl query calog [-aftertime "timestamp"] [-beforetime "timestamp"]
[-duration "time_interval" | -follow] [-filter "filter_expression"]
[-fullfmt | -xmlfmt]
-aftertime "timestamp" :特定の時刻の後にログに記録されたアクティビティを表示します。
-beforetime "timestamp" :特定の時刻の前にログに記録されたアクティビティを表示します。
では実行してみます。
# crsctl query calog -aftertime "2018-02-02 12:00:00.000000"
2018-02-02 13:11:47.317000 : Starting Oracle Cluster Ready Services-managed resources
on server 'rac01' : 15175447015938270/46/1 :
2018-02-02 13:11:47.320000 : Server 'rac01' has been assigned to pool 'Generic'.
: 15175447015938270/46/2 :
2018-02-02 13:11:47.324000 : Server 'rac01' has been assigned to pool 'ora.orcl'.
: 15175447015938270/46/3 :
2018-02-02 13:11:47.513000 : Attempting to start 'ora.ASMNET2LSNR_ASM.lsnr' on 'rac01'
: 15175447015938270/47/1 :
2018-02-02 13:11:47.531000 : Attempting to start 'ora.ASMNET1LSNR_ASM.lsnr' on 'rac01'
: 15175447015938270/47/2 :
2018-02-02 13:11:47.755000 : Attempting to start 'ora.rac01.vip' on 'rac01'
: 15175447015938270/46/4 :
# crsctl query calog -aftertime "2018-02-02 12:00:00.000000" \
-beforetime "2018-02-02 13:15:00.000000"
2018-02-02 13:11:47.317000 : Starting Oracle Cluster Ready Services-managed resources on
server 'rac01' : 15175447015938270/46/1 :
2018-02-02 13:11:47.320000 : Server 'rac01' has been assigned to pool 'Generic'. :
15175447015938270/46/2 :
2018-02-02 13:11:47.324000 : Server 'rac01' has been assigned to pool 'ora.orcl'. :
15175447015938270/46/3 :
2018-02-02 13:11:47.513000 : Attempting to start 'ora.ASMNET2LSNR_ASM.lsnr' on 'rac01'
: 15175447015938270/47/1 :
2018-02-02 13:11:47.531000 : Attempting to start 'ora.ASMNET1LSNR_ASM.lsnr' on 'rac01'
: 15175447015938270/47/2 :
2018-02-02 13:11:47.755000 : Attempting to start 'ora.rac01.vip' on 'rac01' : 15175447
015938270/46/4 :
2018-02-02 13:11:47.759000 : Attempting to start 'ora.scan3.vip' on 'rac01' : 15175447
015938270/46/5 :
2018-02-02 13:11:47.762000 : Attempting to start 'ora.scan2.vip' on 'rac01' : 15175447
015938270/46/6 :
上記のように複数のオプションを指定することも可能です。
以上がクラスタウェアの管理方法となります。お疲れ様でした。