この章では、Oracle Configuration Managerの使用時に起こる可能性のあるエラーをリストし、これらのエラーのトラブルシューティングのヒントを示します。
installCCRSQL collectconfig実行時の権限不足
installCCRSQL.shスクリプトを実行すると、ORACLE_OCMが作成され、データベース構成情報を収集するジョブが設定されます。ORACLE_OCMユーザーは、バージョン10g以降のデータベースの場合はUTL_FILEおよびDBMS_SCHEDULERに対して、10gより前のデータベースの場合はDBMS_JOBに対してEXECUTE権限が必要です。これらの権限がPUBLICに付与されている場合、ORACLE_OCMユーザーはこれらの権限を継承します。付与されていない場合は、installCCRSQL.shスクリプトの実行時に明示的に付与されます。継承された権限が取り消された場合、権限の不足を示す次のエラーがalert_logに記録されます。
ORA-12012: error on auto execute of job 52 ORA-04068: existing state of packages has been discarded ORA-04063: package body "ORACLE_OCM.<package name>" has errors ORA-06508: PL/SQL: could not find program unit being called
これらのエラーを解決するには、不足しているEXECUTE権限をORACLE_OCMユーザーに付与する必要があります。
バージョン10g以降のデータベースの場合、次のSQL*PLUSコマンドを使用して、UTL_FILEおよびDBMS_SCHEDULERパッケージに対するEXECUTE権限をORACLE_OCMユーザーに付与します。
SQL> grant execute on UTL_FILE to oracle_ocm; SQL> grant execute on DBMS_SCHEDULER to oracle_ocm; SQL> ALTER PACKAGE oracle_ocm.MGMT_DB_LL_METRICS compile; SQL> ALTER PACKAGE oracle_ocm.mgmt_config compile;
10gより前のデータベースの場合、次の SQL*PLUSコマンドを使用して、DBMS_JOBパッケージに対するEXECUTE権限をORACLE_OCMユーザーに付与します。
SQL> grant execute on UTL_FILE to oracle_ocm; SQL> grant execute on DBMS_JOB to oracle_ocm; SQL> ALTER PACKAGE oracle_ocm.MGMT_DB_LL_METRICS compile; SQL> ALTER PACKAGE oracle_ocm.mgmt_config compile;
ORA-04021エラー
インストール時に必要な権限をORACLE_OCMユーザーに付与する必要がある場合があります。権限の付与時、次のエラーがOCM_INSTALL_ROOT/ccr/log/collectconfig<SID>.logに記録される場合があります。
ORA-04021: timeout occurred while waiting to lock object SYS.<package like UTL_FILE
このエラーは、権限の付与対象のパッケージを別のプロシージャが使用している場合に起こることがあります。このエラーを解決するには、パッケージが使用されていないときにインストールを再試行します。このエラーは、権限をUTL_FILE、DBMS_SCHEDULERまたはDBMS_JOBに付与しているときに起こることがあります。
installCCRSQLの実行時のORA-01925エラー
このエラーは、MAX_ENABLED_ROLES初期化パラメータの値を超えている場合に起こることがあります。このエラーを解決するには、次のようにしてMAX_ENABLED_ROLESパラメータの値を増やし、データベースを再起動します。
init<sid>.oraファイル(<sid>はデータベース・システム識別子)を編集し、MAX_ENABLED_ROLESの値を増やします。サーバー・パラメータ(spfile)を使用している場合、次のSQL*Plusコマンドを使用してMAX_ENABLED_ROLESパラメータを変更します。
SQL>alter system set MAX_ENABLED_ROLES=<value> scope=spfile
データベースを再起動します。
データベースの再起動後、installCCRSQL.shスクリプトを再度実行します。
不正に構成されたホスト名は短縮名のみがMetaLinkに表示されます。
ホスト名が完全修飾名でMetaLinkに表示されるようにするには、ホスト名とドメインの両方が次の書式で含まれるエントリを/etc/hostsファイルに含めます。
<IP-Address> <Full-HostName> <Short-HostName>
次に例を示します。
10.10.10.10 myhost.mydomain myhost
/etc/hostsファイルが正しく構成されていない場合、短縮名のみがMetaLinkに表示されます。
Oracle Configuration Managerの同期化メッセージ: Oracle Configuration Managerでは複数のコマンドを同時に実行できません。これを試行すると、次のメッセージが表示されます。
メッセージ: 他の操作が進行中です。お待ちください...
説明: いくつかのOracle Configuration Managerコマンドは同時に実行できません。これらのコマンドの1つを別のコマンドの進行中に実行しようとすると、最初のコマンドが完了するまで2番目のコマンドは実行されません。別のコマンドが進行中であることを示すメッセージが表示されます。2番目のコマンドは、最初のコマンドが完了すると、自動的に実行されます。
コマンド: emCCR collect、emCCR getupdates、emCCR update_componentsおよびemCCR upload
処理: さしあたっての処理は必要ありません。最初のコマンドが完了すると、2番目のコマンドが実行されます。しかし、コマンドの実行に時間がかかる場合、タイムアウトが起こります。タイムアウトが起きた場合は、emCCR stopコマンドを実行して、Oracle Configuration Managerアクティビティがないことを確認します。ccr/state/collector.lockファイルを削除し、emCCR startコマンドを実行してスケジューラを再起動します。コマンドを非接続モードで実行している場合は、収集または更新が行われていないことを確認してから、ccr/state/collector.lockファイルを削除します。
メッセージ: 操作がブロックされました。待機中です...
説明: 別のemCCRコマンドが実行されている場合、emCCR update_componentsコマンドは実行できません。コマンドを実行しようとすると、ブロックされます。また、emCCR update_componentsの実行中は他のすべてのemCCRコマンドはブロックされるため、実行できません。
コマンド: configCCRおよび大半のemCCR
処理: さしあたっての処理は必要ありません。現在のコマンドが完了すると、コマンドが実行されます。タイムアウトが起きた場合は、emCCR stopを実行して、Oracle Configuration Managerアクティビティがないことを確認します。ccr/state/semaphore.op*およびccr/state/semaphore.update*ファイルを削除し、emCCR startを実行してOracle Configuration Managerを再起動します。コマンドを非接続モードで実行している場合、収集または更新が行われていないことを確認し、ccr/state/semaphore.op*およびccr/state/semaphore.update*ファイルを削除します。
メッセージ: スケジューラはアップグレード用に停止中です。
説明: Oracle Configuration Managerのアップグレード中はemCCRコマンドを実行できません。
コマンド: すべてのemCCRコマンド
処理: 後でコマンドを再試行します。