Database Support Blog

Database Support Blog>RACの手動起動(crsctl start crs)は、waitオプションの利用を推奨

  • Oracle Database
2016.05.02

RACの手動起動(crsctl start crs)は、waitオプションの利用を推奨

RAC運用マニュアルを改善

Real Application Clusters(RAC)の手動起動(crsctl start crs)では、waitオプションの利用を推奨します。

RACの手動起動(crsctl start crs)が失敗した際、Oracle Database 11g R2では「CRS-4123:Oracle High Availability Services has been started.」というメッセージのみ出力され、起動シーケンス(内部プロセスの起動成功の有無や起動順番)は確認出来ませんでした。

Oracle Database 12c R1からは新しく3つのオプションを付与して起動することができるようになりました。特に、waitオプションを利用すると、起動に失敗した場合に問題発生箇所の特定がスムーズに行え、問題解決の短縮につながります。

crctl start crsの3つのオプション

  • nowait(デフォルト)
  • wait
  • waithas

RACを手動起動する代表的なケース

RACを手動起動する代表的なケースとして、メンテナンス時が挙げられます。

通常、デフォルト設定でOS起動時にRACは自動起動します。しかし、共有ディスクのメンテナンス(ハードウェアの交換など)時などには、自動起動を無効にし、メンテナンス終了後にRACを手動起動させるというケースがあります。

nowaitオプションとwaitオプションでの出力の違い

従来のバージョンでは(nowaitオプション相当)CRS-4123しか出力されませんでしたが、Oracle Database 12c R1からは、waitオプションが追加され、起動シーケンスが確認できます。

nowaitオプション(デフォルト)

OHASDの起動ログのみが表示されます。

[root@webrac12c-n1 grid]# crsctl start crs -nowait
CRS-4123: Oracle High Availability Services has been started.

waitオプション

OHASDとデーモンリソースとCRSリソースの起動ログが表示されます。
※CRSリソースとは、データベースやリスナーなどクラスタウェアに管理されるリソースです。

[root@webrac12c-n1 grid]# crsctl start crs -wait
CRS-4123: Starting Oracle High Availability Services-managed resources
CRS-2672: 'ora.mdnsd'('webrac12c-n1')の起動を試行しています
CRS-2672: 'ora.evmd'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.evmd'('webrac12c-n1')の起動が成功しました
CRS-2676: 'ora.mdnsd'('webrac12c-n1')の起動が成功しました
CRS-2672: 'ora.gpnpd'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.gpnpd'('webrac12c-n1')の起動が成功しました
CRS-2672: 'ora.gipcd'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.gipcd'('webrac12c-n1')の起動が成功しました
CRS-2672: 'ora.cssdmonitor'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.cssdmonitor'('webrac12c-n1')の起動が成功しました
CRS-2672: 'ora.cssd'('webrac12c-n1')の起動を試行しています
CRS-2672: 'ora.diskmon'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.diskmon'('webrac12c-n1')の起動が成功しました
CRS-2789: Cannot stop resource 'ora.diskmon' as it is not running on server 'webrac12c-n1'
CRS-2676: 'ora.cssd'('webrac12c-n1')の起動が成功しました
CRS-2672: 'ora.cluster_interconnect.haip'('webrac12c-n1')の起動を試行しています
CRS-2672: 'ora.ctssd'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.ctssd'('webrac12c-n1')の起動が成功しました
CRS-2676: 'ora.cluster_interconnect.haip'('webrac12c-n1')の起動が成功しました
CRS-2672: 'ora.asm'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.asm'('webrac12c-n1')の起動が成功しました
CRS-2672: 'ora.storage'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.storage'('webrac12c-n1')の起動が成功しました
CRS-2672: 'ora.crsd'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.crsd'('webrac12c-n1')の起動が成功しました
CRS-6017: サーバー: webrac12c-n1でのリソースの自動起動を処理しています
CRS-2673: 'ora.LISTENER_SCAN1.lsnr'('webrac12c-n2')の停止を試行しています
CRS-2672: 'ora.ons'('webrac12c-n1')の起動を試行しています
CRS-2673: 'ora.webrac12c-n1.vip'('webrac12c-n2')の停止を試行しています
CRS-2677: 'ora.LISTENER_SCAN1.lsnr'('webrac12c-n2')の停止が成功しました
CRS-2673: 'ora.scan1.vip'('webrac12c-n2')の停止を試行しています
CRS-2677: 'ora.webrac12c-n1.vip'('webrac12c-n2')の停止が成功しました
CRS-2672: 'ora.webrac12c-n1.vip'('webrac12c-n1')の起動を試行しています
CRS-2677: 'ora.scan1.vip'('webrac12c-n2')の停止が成功しました
CRS-2672: 'ora.scan1.vip'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.webrac12c-n1.vip'('webrac12c-n1')の起動が成功しました
CRS-2672: 'ora.LISTENER.lsnr'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.scan1.vip'('webrac12c-n1')の起動が成功しました
CRS-2672: 'ora.LISTENER_SCAN1.lsnr'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.ons'('webrac12c-n1')の起動が成功しました
CRS-2676: 'ora.LISTENER.lsnr'('webrac12c-n1')の起動が成功しました
CRS-2676: 'ora.LISTENER_SCAN1.lsnr'('webrac12c-n1')の起動が成功しました
CRS-2672: 'ora.cdbrac.db'('webrac12c-n1')の起動を試行しています
CRS-6023: Starting Oracle Cluster Ready Services-managed resources
CRS-6017: Processing resource auto-start for servers: webrac12c-n1
CRS-2672: 'ora.cvu'('webrac12c-n1')の起動を試行しています
CRS-2672: 'ora.scan3.vip'('webrac12c-n1')の起動を試行しています
CRS-2672: 'ora.scan2.vip'('webrac12c-n1')の起動を試行しています
CRS-2672: 'ora.webrac12c-n2.vip'('webrac12c-n1')の起動を試行しています
CRS-6017: Processing resource auto-start for servers: webrac12c-n1
CRS-2676: 'ora.cvu'('webrac12c-n1')の起動が成功しました
CRS-2676: 'ora.scan3.vip'('webrac12c-n1')の起動が成功しました
CRS-2672: 'ora.LISTENER_SCAN3.lsnr'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.webrac12c-n2.vip'('webrac12c-n1')の起動が成功しました
CRS-2676: 'ora.scan2.vip'('webrac12c-n1')の起動が成功しました
CRS-2672: 'ora.LISTENER_SCAN2.lsnr'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.LISTENER_SCAN3.lsnr'('webrac12c-n1')の起動が成功しました
CRS-2676: 'ora.LISTENER_SCAN2.lsnr'('webrac12c-n1')の起動が成功しました
CRS-6016: Resource auto-start has completed for server webrac12c-n1
CRS-6024: Completed start of Oracle Cluster Ready Services-managed resources
CRS-4123: Oracle High Availability Services has been started.
[root@webrac12c-n1 grid]#

waitオプションを付与してRACの起動に失敗した際の結果

nowaitオプションで起動に失敗した場合には、正常時と同様にCRS-4123が出力されるだけです。起動コマンドからだけでは正常に起動したかどうか判断することが出来ません。しかし、waitオプションを利用して起動に失敗した場合には、以下のように問題発生箇所が即座に確認できます。

[root@node1 grid]# crsctl start crs -wait
CRS-4123: Oracle高可用性サービス管理下のリソースを起動しています
CRS-2672: 'ora.mdnsd'('node1')の起動を試行しています
CRS-2672: 'ora.evmd'('node1')の起動を試行しています
CRS-2676: 'ora.mdnsd'('node1')の起動が成功しました
CRS-2676: 'ora.evmd'('node1')の起動が成功しました
CRS-2672: 'ora.gpnpd'('node1')の起動を試行しています
CRS-2676: 'ora.gpnpd'('node1')の起動が成功しました
CRS-2672: 'ora.gipcd'('node1')の起動を試行しています
CRS-2676: 'ora.gipcd'('node1')の起動が成功しました
CRS-2672: 'ora.cssdmonitor'('node1')の起動を試行しています
CRS-2676: 'ora.cssdmonitor'('node1')の起動が成功しました
CRS-2672: 'ora.cssd'('node1')の起動を試行しています
CRS-2672: 'ora.diskmon'('node1')の起動を試行しています
CRS-2676: 'ora.diskmon'('node1')の起動が成功しました
CRS-2883: Clusterwareスタックの起動中にリソース'ora.cssd'が失敗しました。 ★問題箇所★
CRS-4406: Oracle高可用性サービスの同期起動に失敗しました。
CRS-4000: コマンドStartは失敗したか、またはエラーのある状態で完了しました。
[root@node1 grid]#

補足:waithasオプションの説明と実行結果

waithasオプションでは、OHASDとデーモンリソースの起動ログが表示されます。データベースやリスナーなどのリソースは表示されません。そのため、waitオプションの利用をおすすめします。
※デーモンリソースとは、CRSDやCSSDなどクラスタウェアの根幹となるプロセスです。

[root@webrac12c-n1 grid]# crsctl start crs -waithas
CRS-4123: Starting Oracle High Availability Services-managed resources
CRS-2672: 'ora.mdnsd'('webrac12c-n1')の起動を試行しています
CRS-2672: 'ora.evmd'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.evmd'('webrac12c-n1')の起動が成功しました
CRS-2676: 'ora.mdnsd'('webrac12c-n1')の起動が成功しました
CRS-2672: 'ora.gpnpd'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.gpnpd'('webrac12c-n1')の起動が成功しました
CRS-2672: 'ora.gipcd'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.gipcd'('webrac12c-n1')の起動が成功しました
CRS-2672: 'ora.cssdmonitor'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.cssdmonitor'('webrac12c-n1')の起動が成功しました
CRS-2672: 'ora.cssd'('webrac12c-n1')の起動を試行しています
CRS-2672: 'ora.diskmon'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.diskmon'('webrac12c-n1')の起動が成功しました
CRS-2789: Cannot stop resource 'ora.diskmon' as it is not running on server 'webrac12c-n1'
CRS-2676: 'ora.cssd'('webrac12c-n1')の起動が成功しました
CRS-2672: 'ora.cluster_interconnect.haip'('webrac12c-n1')の起動を試行しています
CRS-2672: 'ora.ctssd'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.ctssd'('webrac12c-n1')の起動が成功しました
CRS-2676: 'ora.cluster_interconnect.haip'('webrac12c-n1')の起動が成功しました
CRS-2672: 'ora.asm'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.asm'('webrac12c-n1')の起動が成功しました
CRS-2672: 'ora.storage'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.storage'('webrac12c-n1')の起動が成功しました
CRS-2672: 'ora.crsd'('webrac12c-n1')の起動を試行しています
CRS-2676: 'ora.crsd'('webrac12c-n1')の起動が成功しました
CRS-4123: Oracle High Availability Services has been started.

まとめ

上記に記載したとおり、waitオプションを利用することで、起動ログの実行結果から問題箇所が即座に特定できるため、問題箇所までの時間を短縮できます。障害時の対応を考慮し、運用マニュアルや手順書に"crsctl start crs -wait"を組み込んでいただくことをおすすめします。

なお、各リソースが起動しない場合の対処策については、プロセス毎に原因や対処方法が異なるため、別の機会にご紹介します。

執筆者情報

2006年にアシストに入社し、2011年よりバックサポートとしてお客様対応を行なっているメンバーのフォローを主に行っています。バックサポートの活動として、メンバーが利用する検証環境を構築しています。このブログでは、検証環境構築の手順や、これまでのサポート業務で蓄積してきたノウハウを提供します。

関連している記事

  • Oracle Database
2016.11.16

【Oracle Database】パフォーマンスダウンの原因追求に必要な情報取得サンプルスクリプト

パフォーマンスダウンやCPU/メモリ負荷高騰時には、セッション/プロセス単位で情報を確認する必要があります。原因追求に必要な情報を取得できるサンプルスクリプトを提供します。

  • Oracle Database
2016.10.27

【Oracle Database】うるう秒の対応

Oracle Databaseでのうるう秒(閏秒)の対応方法について解説します。2017年元旦にトラブルとならないよう、準備しましょう。

  • Oracle Database
2016.09.21

再現ケースを簡単に作成!SQLテスト・ケース・ビルダーの使用方法

再現ケースに必要な情報を一括で容易に取得できる「SQLテスト・ケース・ビルダー」の使用方法を紹介します。

アシストサポートセンターのご紹介 Oracle Database研修

ページの先頭へ戻る