連載
» 2017年05月02日 05時00分 公開

【Oracle Database】Oracle RAC環境の正常起動を確認する「crsctl status resource -t」の使いこなしTipsデータベースサポート最前線の現場から(11)(2/2 ページ)

[栗原章二,株式会社アシスト]
前のページへ 1|2       

「crsctl」コマンドがエラーになった場合に実施するコマンド

 前述した通り、「crsctl stat res -t」コマンドで各リソースの起動状況を確認できますが、「クラスタウェアが正常に起動していない」場合にはエラーとなります。つまり、「crsctl stat res -t」コマンドを実行してエラーとなったら、クラスタウェアがそもそも起動に失敗しているということになります。

 この場合には、以下のコマンドを実行してどこに問題があるかを特定します。これらは各ノードで実行します。

$ su - grid
$ crsctl stat res -t -init
$ ps -edf|grep d.bin
$ ps -edf|grep agent
$ ps -edf
「crsctl stat res -t」コマンドがエラーになった場合に実行するコマンド

 よくある原因としては、「ローカルディスクの空きが不足している」や「共有ディスクがOSレベルで参照できない」といったハードウェアやOS上の障害が挙げられます。ハードウェアやOSに問題がなければ、ソフトウェア上の原因を探ります。ソフトウェア上の原因によって起動できない場合には、考えられる原因は多岐にわたります。上記コマンドの出力結果を採取しておくことで、早期解決の調査に役立ちます。

トラブル事例と解決方法:VMware上で稼働するOracle RAC環境で「crsctl stat res -t」がエラーになる

 VMware上で稼働するOracle RAC環境の事例を紹介します。この環境では、ホストOSを変更する際にOSファイルをコピーして対応するのですが、NICが正しく認識されなくなるトラブルがよく発生するようです。

 「crsctl stat res -t」コマンドを実行したところ、CRS-4535CRS-4000のエラーが発生していました。

[root@node1 grid]# crsctl stat res -t
 
CRS-4535: Cluster Ready Servicesと通信できません
CRS-4000: コマンドStatusは失敗したか、またはエラーのある状態で完了しました。
「crsctl stat res -t」コマンドを実行したら、エラーが発生

 トラブルシューティングを行っていきます。

 まず、「crsctl stat res -t -init」を実行し、複数のリソースが起動していないことを確認します。「-init」オプションを付けることで、データベースやリスナーのようなユーザー側が扱うリソースではなく、「クラスタウェアの稼働に必要なデーモンリソースを確認」できます。

[root@node1 grid]# crsctl stat res -t -init
 
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.asm
      1        ONLINE  OFFLINE                               Instance Shutdown,ST
                                                             ABLE
ora.cluster_interconnect.haip
      1        ONLINE  OFFLINE                               STABLE
ora.crf
      1        ONLINE  OFFLINE                               STABLE
ora.crsd
      1        ONLINE  OFFLINE                               STABLE
ora.cssd
      1        ONLINE  OFFLINE      node1                    STARTING
ora.cssdmonitor
      1        ONLINE  ONLINE       node1                    STABLE
ora.ctssd
      1        ONLINE  OFFLINE                               STABLE
ora.diskmon
      1        OFFLINE OFFLINE                               STABLE
ora.drivers.acfs
      1        ONLINE  ONLINE       node1                    STABLE
ora.evmd
      1        ONLINE  INTERMEDIATE node1                    STABLE
ora.gipcd
      1        ONLINE  ONLINE       node1                    STABLE
ora.gpnpd
      1        ONLINE  ONLINE       node1                    STABLE
ora.mdnsd
      1        ONLINE  ONLINE       node1                    STABLE
ora.storage
      1        ONLINE  OFFLINE                               STABLE
--------------------------------------------------------------------------------
「crsctl stat res -t -init」コマンドで複数のリソースが起動していないことを確認

 続いて、クラスタウェアのアラートログを確認します。

2015-10-23 12:21:09.659 [OCSSD(11098)]CRS-1713: CSSDデーモンがhubモードで起動しています
2015-10-23 12:21:16.383 [OCSSD(11098)]CRS-1707: ノードnode1、番号1のリース取得が完了しました
2015-10-23 12:21:17.695 [OCSSD(11098)]CRS-1605: CSSD投票ファイルがオンラインです: /dev/sdb1。詳細は/u01/app/grid/diag/crs/node1/crs/trace/ocssd.trcを参照してください。
2015-10-23 12:21:17.739 [OCSSD(11098)]CRS-1672: 現在使用可能な投票ファイル数1は必要な投票ファイル数の下限1を下回っています。
2015-10-23 12:31:08.317 [CSSDAGENT(11082)]CRS-5818: コマンド'start'を中断しました(リソース'ora.cssd'に対して)。詳細は(:CRSAGF00113:) {0:9:3}(/u01/app/grid/diag/crs/node1/crs/trace/ohasd_cssdagent_root.trc)を参照してください。
2015-10-23 12:31:08.318 [OCSSD(11098)]CRS-1656: 致命的なエラーのためCSSデーモンを停止中です。詳細は(:CSSSC00012:)(/u01/app/grid/diag/crs/node1/crs/trace/ocssd.trc)を参照してください
2015-10-23 12:31:08.320 [OCSSD(11098)]CRS-1603: ノードnode1のCSSDがユーザーによってシャットダウンされました。
Fri Oct 23 12:31:13 2015
Errors in file /u01/app/grid/diag/crs/node1/crs/trace/ocssd.trc  (incident=17):
CRS-8503 [] [] [] [] [] [] [] [] [] [] [] []
Incident details in: /u01/app/grid/diag/crs/node1/crs/incident/incdir_17/ocssd_i17.trc
2015-10-23 12:31:14.338 [OCSSD(11098)]CRS-8503: Oracle Clusterware OCSSDプロセス(オペレーティング・システム・プロセスID 11098)で致命的な信号または例外コード6が発生しました
Sweep [inc][17]: completed
2015-10-23 12:31:18.926 [OHASD(10803)]CRS-2757: コマンド'Start'は、リソース'ora.cssd'からの応答を待機中にタイムアウトしました。詳細は(:CRSPE00163:) {0:9:3}(/u01/app/grid/diag/crs/node1/crs/trace/ohasd.trc)を参照してください。
クラスタウェアのアラートログを確認

 アラートログによると、「cssd(Cluster Syncronization Service Daemon)」プロセスが起動しないのでクラスタウェアの起動も失敗していることが分かりました。

 cssdは、インターコネクトのNICを利用してノード間通信の死活監視を実施するプロセスです。そのため、cssdが起動しない根本の原因はNIC周りとなると推測できます。

[root@node1 grid]# ifconfig -a eth1
 
eth1      Link encap:Ethernet  HWaddr 08:00:27:21:E5:91 
          inet6 addr: fe80::a00:27ff:fe21:e591/64 Scope:Link /* ←IPアドレスを取得できていない */
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5580250 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7031319 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3639319599 (3.3 GiB)  TX bytes:6033603209 (5.6 GiB)
NICの設定を確認

 NICの設定を確認したところ、インターコネクトのNICでIPアドレスを取得できていないことが分かりました。そもそもは、「インターコネクトのNICが起動していなかった」のが原因でした。NICを正しく起動したら、トラブルは解消されました。IPアドレスを取得できず、cssdプロセスの起動に失敗。結果として、クラスタウェアの起動も失敗したということになります。



 「crsctl status resource -t」コマンドは、Oracle RACを構成する複数のコンポーネントの状態を一括して確認できる便利なコマンドです。クラスタ環境を構築しているならば、今後のスムーズな運用のため、本コマンドの使い方を運用マニュアルや手順書に組み込んでおくことをお勧めします。

筆者紹介

栗原章二

2006年アシストに入社。2011年よりバックサポートとして、お客さま対応メンバーのフォローを行っている。サポートメンバーが利用する多種多様な検証環境を構築する活動も行う



前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。