トップ > DBA上級 RAC > 8章
8章 クラスタウェアの管理
本章はクラスタウェアの管理を行っていきます。

メンテナンス等でDBサーバを停止する場合など、
クラスタウェアの停止やリソース停止を行う必要があります。
本章ではこれらの作業方法について学んでいきます。


RACデータベースの作成



OracleのRAC環境はGI(Grid Infrastructure)というクラスタウェアで
リソースを管理しています。
GIに登録されたリソースを監視しており、もし監視対象のリソースに障害があった場合、
自動的に起動したり、別のノードにフェイルオーバーしたりします。

CRSによるリソース監視
リソースとはクラスタウェアが監視する対象です。
リソースの登録は基本的には自動的に実施されます。

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 :

上記のように複数のオプションを指定することも可能です。

以上がクラスタウェアの管理方法となります。お疲れ様でした。