8.2 コンプライアンス・フレームワーク(Oracle OrachkおよびOracle Exachk)のトラブルシューティング

この項で説明するステップに従って、コンプライアンス・フレームワーク(Oracle Orachk/Oracle Exachk)に関連する問題をトラブルシューティングおよび修正します。

8.2.1 Oracle OrachkおよびOracle Exachkの問題をトラブルシューティングする方法

Oracle OrachkおよびOracle Exachk関連の問題を修正するには、これらのステップに従います。

  1. 正しいツールを使用していることを確認します。

    Oracle Database Appliance以外のOracle Engineered Systemがある場合は、Oracle Exachkを使用します。その他すべてのシステムではOracle Orachkを使用します。

  2. Oracle OrachkおよびOracle Exachkの最新バージョンを使用していることを確認します。

    新しいバージョンは3か月ごとにリリースされます。

    1. –vオプションを使用して、バージョンをチェックします。
      $ orachk –v
      $ exachk –v
    2. 次の場所で入手可能な最新バージョンとご使用のバージョンを比較します。
      1. Oracle Orachkの場合は、My Oracle Supportノート2550798.1を参照してください。
      2. Oracle Exachkの場合は、My Oracle Supportノート1070954.1を参照してください。
  3. My Oracle Supportノート1070954.1で、FAQをチェックして同様の問題がないかどうかを調べます。
  4. logディレクトリ内のファイルを確認します。
    1. 該当するerror.logファイルをチェックして、関連するエラーを調べます。

      このファイルには、実行中に取得されたstderr出力が含まれます。ここに表示されるものがすべて問題を意味するわけではありませんが、問題がある場合は詳細情報が得られます。

      • output_dir/log/orachk _error.log
      • output_dir/log/exachk _error.log
    2. 該当するログをチェックして、その他の関連情報を調べます。
      • output_dir/log/orachk.log
      • output_dir/log/exachk.log
  5. 同様の問題についてMy Oracle Supportノートを確認します。
  6. Oracle Orachkの問題については、My Oracle Supportコミュニティ(MOSC)をチェックします。
  7. 必要に応じてデバッグ出力を取得し、新しいSRをログ記録して、生成されたzipファイルを添付します。

8.2.2 デバッグ出力を取得する方法

デバッグ情報を取得するには、次の手順に従います。

  1. デバッグを有効にする前に、必要最小限の実行で問題を再現します。
    • デバッグによって多くの取得が行われ、生成されるzipファイルが大きくなることがあるため、問題の再現に必要な処理の量を絞り込みます。

      関連するコマンドライン・オプションを使用して、チェックの範囲を制限します。

  2. デバッグを有効にします。

    オンデマンド・モードでツールを実行する場合は、–debug引数を使用します。

    問題領域がわかっている場合は、–module引数も含めることでデバッグを特定のモジュールに制限できます。

    $ orachk -debug [-module [ setup | discovery | execution | output ] ]
    $ exachk -debug [-module [ setup | discovery | execution | output ] ]

    デバッグを有効にすると、Oracle OrachkおよびOracle Exachkは次の場所に新しいデバッグ・ログ・ファイルを作成します:

    • output_dir/log/orachk _debug_date_stamp_time_stamp.log

    • output_dir/log/exachk _debug_date_stamp_time_stamp.log

    output_dirディレクトリには、ヘルス・チェック中に使用された他の一時ファイルが多数保持されます。

    デーモンを使用してヘルス・チェックを実行した場合は、–d start –debugオプションを使用してデーモンを再起動します。

    このコマンドを実行すると、デーモンの両方のデバッグが生成され、すべてのクライアント実行にデバッグが含まれます。
    $ orachk –d start –debug
    $ exachk –d start –debug
    デーモンでデバッグを実行すると、Oracle OrachkおよびOracle Exachkは、デーモンが起動されたディレクトリにデーモン・デバッグ・ログ・ファイルを作成します:
    orachk_daemon_debug.log
    exachk_daemon_debug.log
  3. 生成された出力zipファイルおよびデーモン・デバッグ・ログ・ファイル(該当する場合)を収集します。

関連トピック

8.2.3 エラー・メッセージまたは予期しない出力

エラーメッセージおよび予期しない出力をトラブルシューティングおよび修正するには、これらのステップに従います。

8.2.3.1 データ入力の端末に関する考慮事項

説明:

サポートされている任意のUNIXおよびLinux端末タイプ(文字モード端末、ILOM、VNCサーバー)を使用して、Oracle OrachkおよびOracle Exachkを実行します。

対話型実行中またはデーモンの構成中にプロンプトに応答します。

各端末タイプには長所と短所があります。削除されたネットワーク接続の影響は、使用される端末タイプによって異なります。

たとえば、文字モード端末を使用した対話型実行で、ネットワークの削除の前にすべてのプロンプトに応答した場合、ネットワーク接続が削除された場合でも、実行中のプロセスは正常に完了します。すべての入力プロンプトに応答する前にネットワーク接続が削除された場合、実行中のすべてのプロセスがハングします。ネットワーク接続がリストアされたときに、ハングしているプロセスを手動でクリーン・アップします。

Oracle OrachkおよびOracle Exachkが実行されているデータベースで実行されているVNCサーバーへのリモート接続を使用すると、ネットワーク削除中断が最小限になります。

VNCサーバーの使用を禁止するアクセシビリティ・ソフトウェアまたはデバイスを使用し、ネットワークの削除が発生した場合は、システム管理者に連絡して根本原因を特定し、必要に応じて環境を調整してください。

たとえば、アクセシビリティ製品によって、停止が挿入され、Oracle OrachkおよびOracle Exachkを実行している対話型プロセスが再起動されると、端末の非アクティブが原因でオペレーティング・システムのタイムアウトが発生します。コマンドを実行する前に環境の非アクティブ・タイムアウトを長くします。

端末の非アクティブ状態が原因でオペレーティング・システム・レベルで支援ツールによって発生したタイムアウトは、Oracle OrachkおよびOracle Exachkに特有のものではありません。タイムアウトは、アシスティブ・テクノロジで管理されるプロセスに対して発生する可能性があります。

8.2.3.2 ファイルを生成しないツールの実行

説明:

Oracle OrachkおよびOracle Exachkによって、実行時に一時ファイルと一時ディレクトリ、およびデータ収集用の出力ファイルが作成されます。

Ctrl+Cを使用してOracle Orachkを取り消した場合、またはエラーによってOracle Orachkが失敗した場合は、Oracle Orachkによって実行中に作成されたファイルがOracle Orachkによってクリーン・アップされます。

Oracle OrachkまたはOracle Exachkでヘルス・チェック実行が完了したが、出力ファイルが生成されなかった場合、実行の最後の方で、正常でない終了の原因となるエラーが発生している可能性があります。

処置:

問題が解決しない場合は、ツールをデバッグ・モードで再度実行し、出力を確認します。必要に応じて、Oracleサポートに連絡してサポートを受けてください。

8.2.3.3 「line ****: **** Killed $perl_cmd 2>> $ERRFIL?」のようなメッセージ

説明:

Oracle OrachkOracle Exachkには、ハングを防ぐためにデフォルトのタイムアウトを超えるコマンドを監視して強制終了する、組込みのwatchdogプロセスがあります。

原因:

コマンドを強制終了すると、「line ****: **** Killed $perl_cmd 2>> $ERRFIL?」エラーになります。

8.2.3.4 「RC-001- Unable to read driver files」のようなメッセージ

説明:

サポートされているプラットフォームがない、あるいは一時ディレクトリ、作業ディレクトリまたはインストール・ディレクトリに対する読取りまたは書込みができないことに関連する、考えられる原因がいくつかあります。

Oracle OrachkおよびOracle Exachkで、「RC-002- Unable to read driver files」と同じエラー・メッセージが表示されます

処置:

  1. サポートされているプラットフォームで実行されていることを確認します。
  2. 一時ディレクトリまたは出力ディレクトリに十分なディスク領域があることを確認します。必要な場合は、ディスク容量を増やすか、一時ファイルと出力ファイルを別の場所に送ります。
  3. 非表示のサブディレクトリ.cgrepがインストールの場所に存在することを確認します。このディレクトリには、様々なサポート・ファイルが含まれており、その一部はプラットフォーム固有です。
  4. 一時ディレクトリおよび作業ディレクトリの場所に対する書込みと読取りが可能であることを確認します。

8.2.3.5 「There are prompts in user profile on [hostname] which will cause issues in [tool] successful execution」のようなメッセージ

説明:

ツールがユーザー・プロファイルでプロンプトを検出すると、Oracle OrachkおよびOracle Exachkは終了します。

Oracle OrachkおよびOracle Exachkによって、すべてのノードのユーザー環境ファイルがフェッチされます。ユーザー環境ファイルにread -pなどのプロンプトや、実行中のコマンドを一時停止するその他のコマンドが含まれている場合は、コマンドがタイムアウトします。コール中にメッセージに応答する方法がないため、コマンドはタイムアウトします。

そのようなコマンドはすべて、環境で検出できません。ただし、検出可能なコマンドによって、このメッセージが発生します。

処置:

ユーザー・プロファイル・ファイルのこのようなすべてのプロンプトを(少なくとも一時的に)コメント化し、実行を再度テストします。

8.2.3.6 リモート・ログインに関連する問題

処置:

「No such file or directory」「/usr/bin/scp -q: No such file or directory」のようなメッセージが表示された場合は、リモート・ログインの問題を参照して問題を解決してください。

8.2.3.7 orachk_error.logまたはexachk_error.logのその他のエラー・メッセージ

説明:

orachk_error.logを確認した場合、問題を示すものではない、いくつかのメッセージが予期されます。これらのエラーは、画面上で報告されないように、error.logにリダイレクトされて取り込まれます。

たとえば、次のようなエラーは、何度も(各ノードのOracleソフトウェア・ホームごとに1回ずつ)報告されます。
/bin/sh: /u01/app/11.2.0/grid/OPatch/opatch: Permission denied
chmod: changing permissions of `/u01/app/oracle_ebs/product/11.2.0.2/VIS_RAC/.patch_storage': Operation not permitted
OPatch could not open log file, logging will not be possible
Inventory load failed... OPatch cannot load inventory for the given Oracle Home.

これらのタイプのエラーは、Oracle Databaseソフトウェア所有者がOpatchを使用してOracle Grid Infrastructureホーム所有者または他のOracle Databaseホーム所有者が所有するホームのパッチ・インベントリをリストするようにツールが実行されると、ロール別の環境で発生します。Opatchを実行して他のユーザーのパッチ・インベントリをリストする場合、現在のユーザーは他のホームに対する権限がないため、Opatchは失敗します。このような場合、Opatchエラーは無視され、それらのホームのパッチ・インベントリはその他の手段で収集されます。このようなエラーを回避するために、ロール別の環境でOracle OrachkおよびOracle Exachkrootとして実行することをお薦めします。

処置:

これらのタイプのエラーは、Oracleサポートにレポートする必要はありません。

また、次のようなエラーは無視してください。
orachk: line [N]: [: : integer expression expected

行番号は時間の経過とともに変化します。ただし、このエラーは、ツールで整数の戻り値が予期されており、値が見つからなかったことを示しています。値はnullであり、シェルが戻り値を比較できませんでした。エラーは、同じコマンドで複数回繰り返されます(ノードごとに1回ずつ)。

8.2.3.8 Space available on {node_name} at {path} is {x} MB and required space is 500 MB

説明:

一時ファイルおよび一時ディレクトリの場所に十分な領域がない場合、Oracle Orachkによってエラー・メッセージが表示されます。
Space available on at /users/oracle is 441 MB and required space is 500 MB
Please make at least mentioned space available at above location and retry to continue.[y/n][y]?

原因:

Oracle Orachkによって、実行時に一時ファイルおよび一時ディレクトリが作成されます。一時ファイルおよび一時ディレクトリのデフォルトの場所は、ツールを実行するユーザーの$HOMEディレクトリです。

処置:

Oracle Orachkの一時ファイルの場所を変更するには、RAT_TMPDIR環境変数を新しい場所に設定してから、Oracle Orachkを実行します。

8.2.3.9 Microsoft WindowsでのOracle Orachkの実行によって「'{oratab}' is empty」エラーがスローされる

説明:

Oracle Orachkコマンドを実行すると、次のエラーがスローされます:

'{oratab}' is empty. 
Verify Oracle database registry entries name in '{regout}' in case Oracle database is install. 
If Oracle database registry entries name does not contains 'ORA'/'OH' 
then set registry key patterns using 'RAT_KEY_DB' environment variable.

原因:

  1. Oracle Databaseがシステムに存在しません。
  2. Oracle Databaseレジストリ・キーのキーワードが異なります。通常、レジストリ・キーにはORAまたはOHが含まれますが、システムによっては異なる場合があります。環境変数RAT_KEY_DBを正しいOracle Databaseレジストリ・キーワードに設定します。
  3. 初期化パラメータ・ファイルinitSID.ora$ORACLE_HOME/databaseにありません。

    Oracle Orachkは、インスタンス名を取得するために、$ORACLE_HOME/databaseinitSID.oraファイルを探します。initSID.oraファイルが存在しない場合は、前述のエラーが発生します。

処置:

-dbconfigオプションを使用して、Oracle Databaseの詳細を指定します。

orachk -dbconfig db_home_path%db_name

8.2.4 オペレーティング・システムが正しく検出されない

Oracle ORAchkおよびOracle EXAchkでオペレーティング・システムを検出できない場合は、これらのツールによってこのメッセージが表示されます。

原因:

Oracle ORAchkおよびOracle EXAchkでオペレーティング・システムを検出できない場合は、これらのツールによってプロンプトが表示されます。
  • 派生プラットフォームに必要なデータが見つかりませんでした

  • サポートされていないプラットフォームを不適切に検出しました

処置:

RAT_OS環境変数を正しいオペレーティング・システムに設定します。
$ export RAT_OS=platform

8.2.5 Oracle ClusterwareまたはOracle Databaseが検出されないまたは接続されていない問題

Oracle ClusterwareまたはOracle Databaseの問題をトラブルシューティングおよび修正するには、この項の手順に従います。

8.2.5.1 Oracle Clusterwareソフトウェアがインストールされたが、見つからない

説明:

Oracle Orachkは、oraInst.locoraInventoryのファイルからOracle Clusterwareホームの場所を検出します。

原因:

Oracle Clusterwareの検出は、次の原因で失敗します。
  • oraInst.locoraInventoryのファイルの検出に関する問題
  • oraInst.locoraInventoryのファイルの問題
  • oraInst.locoraInventoryのファイルの1つ以上のパスが正しくない

処置:

  1. oraInst.locファイルが正しく配置され、適切な形式になるようにします。
    ファイルがデフォルトの場所にない場合は、oraInventoryディレクトリを指すようにRAT_INV_LOC環境変数を設定します。
    $ export RAT_INV_LOC=oraInventory directory
  2. 必要に応じて、Oracle Clusterwareホームの場所を指すようにRAT_CRS_HOME環境変数を設定します。
    $ export RAT_CRS_HOME=CRS_HOME

8.2.5.2 Oracle Databaseソフトウェアがインストールされたが、見つからない

説明:

Oracle OrachkおよびOracle Exachkで、インストールされたOracle Databaseソフトウェアを検出できない場合、このメッセージが表示されます。

処置:

Oracle Databaseソフトウェアがインストールされているが、Oracle OrachkおよびOracle Exachkで検出できない場合は、RAT_ORACLE_HOME環境変数を該当するORACLE_HOMEディレクトリに設定します。

たとえば、次のコマンドを入力します。your-oracle-homeは、システムのOracleホームへのパスです。

$ export RAT_ORACLE_HOME=your-oracle-home

Oracle OrachkおよびOracle Exachkは、RAT_ORACLE_HOME環境変数で指定されたホームから実行されているすべてのデータベースに対して、ベスト・プラクティス・チェックおよび推奨パッチ・チェックを実行します。

8.2.5.3 Oracle Databaseソフトウェアがインストールされたが、バージョンが見つからない

説明:

Oracle OrachkおよびOracle Exachkで、インストールされたOracle Databaseソフトウェアのバージョンを検出できない場合、このメッセージが表示されます。

処置:

Oracle OrachkおよびOracle Exachkで正しいバージョンを検出できない場合は、RAT_DB環境変数を該当するバージョンに設定します。

たとえば:
$ export RAT_DB=11.2.0.3.0

8.2.5.4 Oracle ASMソフトウェアがインストールされたが、見つからない

説明:

Oracle OrachkおよびOracle Exachkで、インストールされたOracle ASMソフトウェアを検出できない場合、このメッセージが表示されます。

処置:

Oracle OrachkおよびOracle ExachkでOracle ASMを検出できない場合は、RAT_ASM_HOME環境変数を該当するホーム・ディレクトリに設定します。
$ export RAT_ASM_HOME=ASM_HOME

8.2.5.5 Oracle Real Application Clusters (Oracle RAC)システムでのOracle Databaseの検出の問題

説明:

Oracle Real Application Clusters (Oracle RAC)システムでは、Oracle Orachkが、Oracle Cluster Registryに登録されているデータベース・リソースを検出します。

データベース・リソースのORACLE_HOMEは、データベース・リソースのプロファイルから導出されます。

原因:

データベース・リソースのプロファイルに問題がある場合、Oracle Orachkでは1つ以上のデータベースを認識できず、接続することもできません。-dbnamesオプションを一時的に使用して問題を修正します。

処置:

次のように、カンマ区切りリストでデータベースの名前を指定します。
$ orachk -dbnames ORCL,ORADB
または、スペース区切りの環境変数RAT_DBNAMESを使用します。
$ export RAT_DBNAMES="ORCL ORADB"

二重引用符を使用して複数のデータベースを指定します。

ノート:

次の場合に、RAT_DBHOMES環境変数を構成します。

  • Oracle Clusterwareに登録されたデータベースのサブセットとしてRAT_DBNAMESを構成します
  • Oracle Clusterwareに登録されているすべての検出されたデータベースのパッチ・インベントリで推奨パッチを確認する必要があります

デフォルトでは、推奨パッチ分析は、RAT_DBNAMES環境変数で指定されたデータベースのリストのホームに制限されます。

追加のデータベース・ホームに対して推奨パッチ分析を実行するには、RAT_DBHOMES環境変数で、すべてのデータベース名のスペース区切りリストを指定します。

たとえば:
export RAT_DBNAMES="ORCL ORADB"
export RAT_DBHOMES="ORCL ORADB PROD"

ベスト・プラクティス・チェックは、ORACLおよびORADBに適用されます。

推奨パッチ・チェックは、ORACLORADBおよびPRODに適用されます。

8.2.5.6 Oracle Databaseのログインの問題

十分な権限なしでOracle OrachkおよびOracle Exachkを実行すると、Oracle Databaseのログインの問題が発生します。データベース・ソフトウェアのインストール所有者、rootまたはgrid以外のユーザーとしてOracle OrachkおよびOracle Exachkを実行し、データベースへの接続に関する問題が検出された場合は、次のステップを実行します:
  1. grid (オペレーティング・システム)としてシステムにログインします。
  2. export ORACLE_HOME=path of Oracle database homeを実行します
  3. export ORACLE_SID=database SIDを実行します
  4. export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/lib:$PATHを実行します
  5. $ORACLE_HOME/network/admin/tnsnames.oraファイルにdatabase SIDの別名を追加します。
  6. $ORACLE_HOME/bin/sqlplus "sys@SID as sysdba"を使用してデータベースに接続し、パスワードを入力します。
  7. 正常に接続することを確認します。

このデータベースに接続する方法が機能しない場合、Oracle OrachkOracle Exachkも接続しません。

  • 異なるユーザーが所有する複数のホームがあり、SQL*PlusでOracle Orachkを独立して実行するユーザーとしてターゲット・データベースにログインできない場合、Oracle Orachkもログインしません。
  • オペレーティング・システム認証が設定されていない場合は、引き続きユーザー名とパスワードの入力が求められます。

8.2.6 リモート・ログインの問題

Oracle OrachkおよびOracle Exachkで、SSHまたはSCPの特定と実行に問題がある場合、これらのツールではリモート・チェックを実行できません。

また、次の場合は、root権限コマンドが機能しません。

  • パスワードなしのリモートrootログインがSSHで許可されていない
  • Expectユーティリティがrootパスワードを渡すことができない
  1. SSHおよびSCPコマンドを検出できることを確認します。
    • 予期した場所にSSHがない場合、SSHコマンドはエラーNo such file or directoryを返します。

      SSHの場所を指すRAT_SSHELL環境変数を設定します。RAT_SSHELL環境変数はエクスポートできないため、conf_fileで設定してください。詳細は、「汎用コンプライアンス・フレームワーク(Oracle OrachkおよびOracle Exachk)のコマンドの実行」を参照してください。

    • 予期した場所にSCPがない場合、SCPコマンドはエラー/usr/bin/scp -q: No such file or directoryを返します。

      SCPの場所を指すRAT_SCOPY環境変数を設定します。RAT_SCOPY環境変数はエクスポートできないため、conf_fileで設定してください。詳細は、「汎用コンプライアンス・フレームワーク(Oracle OrachkおよびOracle Exachk)のコマンドの実行」を参照してください。

  2. 実行に使用しているユーザーが、障害が発生しているリモート・ノードに対してOracle OrachkおよびOracle Exachkを実行している場所から次のコマンドを手動で実行できることを確認します。
    $ ssh root@remotehostname "id"
    root@remotehostname's password:
    uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
    • コマンドの実行時に問題が発生する場合は、システム管理者に連絡してツールの実行を一時的に修正します。
    • Oracle OrachkおよびOracle Exachkは、リモート・ユーザー・プロファイル内でプロンプトまたはトラップを検索します。リモート・プロファイル内にプロンプトがある場合は、少なくとも一時的にそれらをコメント・アウトし、再度テスト実行します。
    • パスワードなしのリモートrootログインを構成できる場合は、/etc/ssh/sshd_configファイルを次のように編集します。
      n to yes

      ここで、クラスタのすべてのノードで次のコマンドをrootとして実行します。

      hd restart
  3. Expectデバッグを有効にします。
    • Oracle Orachkは、Expectユーティリティを使用して(使用可能な場合)パスワード・プロンプトに応答し、パスワード検証のためにリモート・ノードに接続します。さらに、デフォルトでは、実際の接続プロセスをログに記録せずにroot収集を実行します。
    • リモート・ターゲットの接続の問題をデバッグできるように環境変数を設定します。
      • RAT_EXPECT_DEBUG: この変数が-dに設定されている場合、Expectコマンドのトレースはアクティブ化されています。トレース情報は標準出力に書き込まれます。
        たとえば:
        export RAT_EXPECT_DEBUG=-d
      • RAT_EXPECT_STRACE_DEBUG: この変数がstraceに設定されている場合、straceによってExpectコマンドがコールされます。トレース情報は標準出力に書き込まれます。
        たとえば:
        export RAT_EXPECT_STRACE_DEBUG=strace
    • この2つの変数の組合せを変更することにより、3つのレベルのExpect接続トレース情報を取得できます。

ノート:

RAT_EXPECT_DEBUGおよびRAT_EXPECT_STRACE_DEBUG変数は、Oracleサポートまたは開発から指示があった場合にのみ設定してください。RAT_EXPECT_DEBUGおよびRAT_EXPECT_STRACE_DEBUG変数を他の変数やユーザー・インタフェース・オプションとともに使用すると、トレース中に収集されるデータの量を制限できます。標準出力を取得するには、scriptコマンドを使用します。

リモートの問題を解決する際の一時的な回避策として、各ノードでローカルにレポートを実行し、それらを後でマージします。

各ノードで次を実行します。
orachk -local
exachk -local
次に、収集をマージして1つのレポートを取得します。
orachk –merge zipfile 1  zip file 2 > zip file 3 > zip file ...
exachk –merge zipfile 1  zip file 2 > zip file 3 > zip file ...

8.2.7 権限の問題

Oracle OrachkおよびOracle Exachkを実行するには、十分なディレクトリ権限が必要です。

  1. ツール・スクリプトorachkおよびexachkに対する権限が755 (-rwxr-xr-x)に設定されていることを確認します。
    これらの権限が設定されていない場合は、次のように権限を設定します。
    $ chmod 755 orachk
    $ chmod 755 exachk
  2. Oracle OrachkおよびOracle Exachkrootとしてインストールし、ツールを別のユーザーとして実行した場合、必要なディレクトリ権限がないことがあります。
    [root@randomdb01 exachk]# ls -la
    total 14072
    drwxr-xr-x  3 root root    4096 Jun  7 08:25 .
    drwxrwxrwt 12 root root    4096 Jun  7 09:27 ..
    drwxrwxr-x  2 root root    4096 May 24 16:50 .cgrep
    -rw-rw-r--  1 root root 9099005 May 24 16:50 collections.dat
    -rwxr-xr-x  1 root root  807865 May 24 16:50 exachk
    -rw-r--r--  1 root root 1646483 Jun  7 08:24 exachk.zip
    -rw-r--r--  1 root root    2591 May 24 16:50 readme.txt
    -rw-rw-r--  1 root root 2799973 May 24 16:50 rules.dat
    -rw-r--r--  1 root root     297 May 24 16:50 UserGuide.txt
  • Oracle Clusterwareがインストールされている場合は、次のようにします。
    • Oracle Grid Infrastructureホームの所有者としてOracle Exachk/opt/oracle.SupportTools/exachkにインストールします
    • Oracle Grid Infrastructureホーム所有者としてOracle OrachkCRS_HOME/suptools/orachkにインストールします
  • Oracle Clusterwareがインストールされていない場合は、次のようにします。
    • rootとしてOracle Exachk/opt/oracle.SupportTools/exachkにインストールします
    • rootとしてOracle Orachkを(便利な場所に)インストールします(可能な場合)

      または

      Oracleソフトウェア・インストール・ユーザーまたはOracle Databaseホーム所有者としてOracle Orachkを(便利な場所に)インストールします

8.2.8 パフォーマンスの低下、スキップされたチェックおよびタイムアウト

パフォーマンスの低下やその他の問題を修正するには、次の手順に従います。

Oracle OrachkおよびOracle Exachkでコマンドが実行されると、コマンドを実行するために子プロセスが生成され、ウォッチドッグ・デーモンが子プロセスを監視します。子プロセスに時間がかかる場合や子プロセスがハングした場合、ウォッチドッグは子プロセスを強制終了し、チェックはスキップ済として登録されます。

watchdog.logファイルには、killing stuck commandのようなエントリも格納されます。

問題の原因によっては、スキップされたチェックが表示されないこともあります。

  1. 問題が発生するパターンがあるかどうかを確認します。
    • たとえば、EBSチェックは、存在するデータの量に依存し、デフォルトのタイムアウトより長くかかることがあります。
    • リモート・プロファイルにプロンプトが含まれる場合は、リモート・チェックがタイムアウトし、強制終了されてスキップされます。Oracle OrachkおよびOracle Exachkは、リモート・ユーザー・プロファイル内でプロンプトまたはトラップを検索します。リモート・プロファイル内にプロンプトがある場合は、少なくとも一時的にそれらをコメント・アウトし、テストを再度実行します。
  2. デフォルトのタイムアウトを長くします。
    • 環境変数を設定して、デフォルトのタイムアウトをオーバーライドします。

      表8-1 タイムアウトの制御

      タイムアウトの制御 デフォルト値(秒) 環境変数

      rootによって実行されないすべてのチェックの収集(ほとんど)。

      個々のチェックのタイムアウト値を指定します。

      チェックごとに異なります。

      RAT_{CHECK-ID}_TIMEOUT

      すべてのチェックで一般的なタイムアウト

      90

      RAT_TIMEOUT

      SSHログインのDNSハンドシェイク。

      リモート・ノードでパスワードをチェックする時間を秒単位で指定します。

      1

      RAT_PASSWORDCHECK_TIMEOUT

    • デフォルトのタイムアウトは、ほとんどの場合に十分な長さがあります。長さが十分でない場合は、修正の必要があるシステム・パフォーマンスの問題が発生している可能性があります。タイムアウトが多い場合は、環境におけるOracle OrachkおよびOracle Exachk以外の問題を示している可能性があります。

  3. タイムアウトを増やせない場合は、問題があるチェックを除外し、十分なタイムアウトを指定して別々に実行した後、レポートのマージを試みます。
  4. 問題の原因が時間がかかるチェックやスキップされたチェックにあるようには見えないが、クラスタが大規模である場合は、データベースのパラレル実行のためのスレーブ・プロセス・ユーザー数を増やしてみます。
    • データベース収集はパラレルで実行されます。データベースのパラレル実行に使用されるスレーブ・プロセスのデフォルト数は自動的に計算されます。デフォルトの数は、オプション-dbparallel slave processesまたは–dbparallelmaxを使用して変更できます

      並列度が高いほど、多くのリソースが消費されます。ただし、経過時間は短くなります。パラレル・スレーブの数は、デフォルト値を超えて増減できます。メンテナンス後にシステム全体が起動した後、ユーザーがシステムで許可される前に、より多くのパラレル・スレーブを使用して、できるだけ迅速に実行を終了します。

      ビジー状態の本番システムでは、デフォルト値より小さく、シリアル・モードでの実行より大きい数を使用して、稼働中のシステムにあまり影響を与えずに、より迅速に実行します。

      データベースのパラレル実行をオフにするには、-dbserialオプションを使用します。

8.2.9 OracleホームおよびOracleデータベースのサブセットに対するコンプライアンス・チェックの実行

Oracle OrachkおよびOracle ExachkORACLE_HOMEまたはOracle Databaseの名前を検出できず、システムに複数のORACLE_HOMEがあり、各ホームで複数のOracleデータベースが実行されている場合は、-dbconfigコマンドを使用します。

構文

orachk -dbconfig dbhome%dbname(s)[,dbhome%dbname(s)]
exachk -dbconfig dbhome%dbname(s)[,dbhome%dbname(s)]

Oracle Databaseホームおよび対応するOracle Database名のカンマ区切りリストを指定して、Oracleデータベースのサブセットでのみヘルス・チェックを実行します。Oracle OrachkおよびOracle Exachkでは、実行中にデータベースの選択を求めるプロンプトは表示されません。

Oracle Databaseホームと、対応するOracle Database名を%で区切ります。:を使用して、特定のOracle Databaseホームに関連付けられているOracle Database名のリストを指定します。

orachk -dbconfig dbhome%dbname:dbname:...[,dbhome%dbname:dbname:...]
exachk -dbconfig dbhome%dbname:dbname:...[,dbhome%dbname:dbname:...]

例8-1 OracleホームおよびOracleデータベースのサブセットへのヘルス・チェックの制限

orachk -dbconfig dbhome1%dbname
orachk -dbconfig dbhome1%dbname1:dbname2
orachk -dbconfig dbhome1%dbname1:dbname2,dbhome2%dbname3:dbname4

8.2.10 SSH接続タイムアウト

説明: SSH接続が次のようにタイムアウトします。
Select databases from list for checking best practices. For multiple databases, select 4 for All or comma separated number like 1,2 etc [1-5][4].
Searching out ORACLE_HOME for selected databases.
.  .  .  .  .  .  .  .  .  .
.  .  .  .  .  .  .  .  .  Connection to scag11adm02 closed by remote host.

処置: Oracle EXAchkの実行が開始されたマシンの/etc/ssh/ssh_configファイルで、ServerAliveInterval30に設定します。

8.2.11 RoCEファブリック・スイッチの名前を入力するためのOracle Exachkプロンプト

説明: Oracle Exachkでは、Exadata X8M以降のマルチラック環境で実行するたびにRoCEスイッチ名を入力するよう求められます。

処置: RoCEファブリック・リーフおよびスパイン・スイッチのリストをswitches.outファイルに追加し、Oracle Exachkを実行します。

たとえば:
# exachk -showdatadir
/u01/app/grid/oracle.ahf/data/scaqan07adm01/exachk/user_root/output
# vi /u01/app/grid/oracle.ahf/data/scaqan07adm01/exachk/user_root/output/switches.out
<<add switches>>
# cat /u01/app/grid/oracle.ahf/data/scaqan07adm01/exachk/user_root/output/switches.out
scaqan07sw-rocea0
scaqan07sw-roceb0

スイッチのリストを含むファイルを作成した場合でも、-switches引数を渡して、そのファイルから読み取らないようにできます。特定のスイッチでexachkを実行するには、スイッチ名のカンマ区切りリストを指定します。

たとえば:
# exachk -switches switch1,switch2,...
スイッチのリストを指定しない場合、exachkによって指定するよう求められます。
MyTestPrompt>
MyTestPrompt> exachk
Enter RDMA Network Fabric switch names delimited by comma or skip switches using -excludeprofile switch option. (eg switch1,switch2,switch3):
スイッチで実行されているexachkからスイッチを除外するには、スイッチのカンマ区切りリストを指定します。
-excludeprofile -switches switch1,switch2,...

8.2.12 Oracle Trace File AnalyzerでCA証明書を実装できない

説明: TFAMainを実装すると、tfactlコマンドの実行時にクライアント・サーバーのSSLソケット例外エラーが発生し、終了します。

原因: intermediate.pemファイルとserver.pemファイルの両方をcaroot.cert.txtファイルに結合すると、「Empty server certificate chain error」になります。

処置: コマンドopenssl x509 -in cerfile.cer -noout -textを使用してcaroot.cert.txtファイルをintermediate.pemおよびserver.pemに分割し、keytoolのステップを再度実行します。
  1. keytool -importkeystore -destkeystore server.p12 -deststoretype pkcs12 -srckeystore serverCert.pfx
  2. keytool -v -importkeystore -srckeystore server.p12 -srcstoretype PKCS12 -destkeystore server_ac.jks -deststoretype JKS
  3. keytool -v -importkeystore -srckeystore server.p12 -srcstoretype PKCS12 -destkeystore client_ac.jks -deststoretype JKS
  4. keytool -list -keystore client_ac.jks
    Enter keystore pswrd:  
    Keystore type: jks
    Keystore provider: SUN
    
    Your keystore contains 1 entry
    
    1, Nov 30, 2021, PrivateKeyEntry, 
    Certificate fingerprint (SHA1):
    59:BA:C8:94:97:48:9C:6C:11:23:36:F9:46:A1:1C:87:67:F7:84:19
    
    Warning:
    The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore client_ac.jks -destkeystore client_ac.jks -deststoretype pkcs12".
  5. # keytool -list -keystore server_ac.jks
    Enter keystore pswrd:  
    Keystore type: jks
    Keystore provider: SUN
    
    Your keystore contains 1 entry
    
    1, Nov 30, 2021, PrivateKeyEntry,
    Certificate fingerprint (SHA1):
    59:BA:C8:94:97:48:9C:6C:11:23:36:F9:46:A1:1C:87:67:F7:84:19
    
    Warning:
    The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore server_ac.jks -destkeystore server_ac.jks -deststoretype pkcs12".
  6. keytool -import -v -alias server-ca -file server.cert.pem -keystore client_ac.jks
  7. keytool -import -v -alias client-ca -file server.cert.pem -keystore server_ac.jks
  8. keytool -importcert -trustcacerts -alias inter -file intermediate.cert.pem -keystore server_ac.jks
  9. keytool -list -keystore server_ac.jks
    Enter keystore pswrd:  
    Keystore type: jks
    Keystore provider: SUN
    
    Your keystore contains 3 entries
    
    inter, Nov 30, 2021, trustedCertEntry,
    Certificate fingerprint (SHA1):
    F6:E3:AA:60:E0:D0:80:69:12:72:06:E0:FA:62:7A:EB:54:38:11:55
    client-ca, Nov 30, 2021, trustedCertEntry,
    Certificate fingerprint (SHA1):
    59:BA:C8:94:97:48:9C:6C:11:23:36:F9:46:A1:1C:87:67:F7:84:19
    1, Nov 30, 2021, PrivateKeyEntry,
    Certificate fingerprint (SHA1):
    59:BA:C8:94:97:48:9C:6C:11:23:36:F9:46:A1:1C:87:67:F7:84:19
    
    Warning:
    The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore server_ac.jks -destkeystore server_ac.jks -deststoretype pkcs12"
  10. # keytool -list -keystore client_ac.jks
    Enter keystore pswrd:  
    Keystore type: jks
    Keystore provider: SUN
    
    Your keystore contains 2 entries
    
    1, Nov 30, 2021, PrivateKeyEntry,
    Certificate fingerprint (SHA1):
    59:BA:C8:94:97:48:9C:6C:11:23:36:F9:46:A1:1C:87:67:F7:84:19
    server-ca, Nov 30, 2021, trustedCertEntry,
    Certificate fingerprint (SHA1):
    59:BA:C8:94:97:48:9C:6C:11:23:36:F9:46:A1:1C:87:67:F7:84:19
    
    Warning:
    The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore client_ac.jks -destkeystore client_ac.jks -deststoretype pkcs12".