データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

Oracle ADOnlinePatchingのエラーと修正

Tricoreが最初に公開したもの:2017年8月14日

このブログでは、Oracle®AD Online Patching(adop)ユーティリティの次の一般的な問題と解決策について説明しています。

  • データディクショナリの破損エラー
  • adop準備の失敗
  • フォームオブジェクトの生成に失敗しました
  • adopカットオーバーハングアップ
  • パッチアボート
データディクショナリ破損エラー

adop prepareステップが失敗すると、データディクショナリ破損エラーが発生する可能性があります。

エラー

次のエラーは、環境によって異なる場合があります。

[EVENT]     Verifying data dictionary.
[UNEXPECTED]Data dictionary corrupted:
[UNEXPECTED]Data dictionary corruption - missing parent
5608975 ORA$BASE        IMAT            V_WORKFLOWWORKITEMII           VIEW
5608973 ORA$BASE        IMAT            V_WFSTAGETIME                  VIEW
5608973 ORA$BASE        IMAT            V_WFSTAGETIME                  VIEW
[UNEXPECTED]Data dictionary corruption detected. Provide details to
[UNEXPECTED]Oracle Support and ask for a bug to be opened against the
[UNEXPECTED]Online Patching component of Oracle Application Install.

/apps1/SID/fs_ne/EBSapps/log/adop/18/adop_xxxxx_xxxxx.log:
原因

このデータディクショナリの問題は、開発者がカスタマイズを適切に宣伝し、オンラインパッチ適用基準に違反している場合に発生します。

ソリューション

データディクショナリの破損(親がない)を修正するには、次の手順を実行します。

  1. $AD_TOP/sql/ADZDDBCC.sqlを実行します apps userとしてのスクリプト 論理データディクショナリの破損が存在するかどうかを確認します。スプールログの破損を確認してください。

  2. スクリプト$AD_TOP/patch/115/sql/adzddmpfix.sqlを実行します sys userとして 破損を修正します。次のサンプルでは、​​12個の破損オブジェクトが修正されています。

     SQL> @adzddmpfix.sql
    
     "---- Fixing Data Dictionary Corruptions (missing parent) ----"
     12 rows deleted.
     Commit complete.
     System altered.
     "---- Compiling invalids ----"
     PL/SQL procedure successfully completed.
     Commit complete.
    
  3. $AD_TOP/sql/ADZDDBCC.sqlを実行します apps userとして再度スクリプトを作成します 論理データディクショナリの破損がまだ存在するかどうかを判断するa。破損が見つからない場合は、アップグレードまたはadoppatching-cycle.bに進みます。それでも破損が存在する場合は、Oracleサポートに連絡してバグをログに記録してください。

  4. 問題が解決したら、adop準備手順を再試行してください。

adop準備の失敗

時折、adop準備ステップが失敗します。このセクションでは、考えられる1つの準備エラーと解決策を示します。

エラー

次のadopprepareエラーはOracleのバグです:

Lines #(47-50):
runMSSrvPortsVal : oacore_server1:7252
ERROR: Run fs Context variable s_oacore_server_ports value cannot be NULL for oacore_server2
ERROR: Derived Patch managed server oacore_server2 port : NULL
ERROR: Failed to clone Run Context file to refresh Patch context file
ソリューション

このエラーを解決するには、次の手順を実行します。

  1. 次のコードサンプルのサンプルターゲットサーバーとSIDを、エラーで報告されたポートとパスに変更し、コードを実行してこの問題を修正します。

     perl $AD_TOP/patch/115/bin/adProvisionEBS.pl \
     ebs-delete-managedserver \
     -contextfile=/apps1/SID/fs1/inst/apps/SID_server/appl/admin/SID_server.xml -managedsrvname=oacore_server2 \
     -servicetype=oacore -logfile=$APPLRGF/TXK/delMS_oacore_server2.log
    
     perl $FND_TOP/patch/115/bin/txkSetAppsConf.pl -contextfile=/apps1/SID/fs1/inst/apps/SID_server/appl/admin/SID_server.xml \
     -configoption=removeMS -oacore=server.cm.charter.com:7252
    
  2. 修正が適用された後、adopprepareを再試行してください。

フォームオブジェクトの生成に失敗しました

adop phase=apply patches=123456でパッチを適用する場合 、formsオブジェクトが正常に生成されない可能性があります。これにより、Patch continue prompt Y/Nが表示されずにadopセッションが終了します。 。

エラー

たとえば、次のOracleFormsオブジェクトは正常に生成されませんでした。

inv     forms/US        INVMWBIV.fmx
ソリューション

次のコマンドを使用して、パッチディレクトリから失敗したパッチセッションを再開します。

cd /apps1/SID/fs_ne/EBSapps/patch
adop phase=apply patches=20609071 restart=yes flags=autoskip

adopカットオーバーハング

adopカットオーバーがハングした場合、またはadopカットオーバーフェーズの途中でサーバーにクラッシュまたは再起動の問題が発生した場合は、次の手順を実行して問題を修正してから、パッチプロセスに進みます。

ソリューション
  1. PATCHファイルシステムから実行されているサービスやプロセスがないことを確認してください。

  2. WeblogicAdminServerとNodeManagerがrunfileシステムで実行されていることを確認します。次のコマンドを実行して、ステータスを確認します。

     $ adadminsrvctl.sh status
     $ adnodemgrctl.sh status
    
  3. 次のコマンドを実行します。

     $ adop phase=abort
     $ adop phase=cleanup cleanup_mode=full
     $ adop phase=fs_clone force=yes
    
  4. 次のコマンドを実行して、空のadopサイクルを実行し、adopカットオーバーに問題がないことを確認します。

     $adop phase=prepare, finalize, cutover, cleanup cleanup_mode=full
    
  5. 新しいadopの準備を開始し、パッチを適用します。

  6. 適用ステップの後、ファイナライズ、カットオーバー、クリーンアップなど、残りのadopフェーズを完了します。

パッチアボート

パッチ適用サイクルが失敗し、問題を迅速に解決できない場合は、パッチ適用サイクルを中止して通常のランタイム操作に戻ることができます。これにより、パッチのエディションが削除されます。

次のコマンドを実行することにより、(パッチを適用せずに)パッチ適用サイクルを中止できます。

$ adop phase=abort

重要: このコマンドは、カットオーバーフェーズが正常に完了する前にのみ使用できます。カットオーバー後、システムは新しいエディションで実行され、abort そのパッチ適用サイクルでは、コマンドは使用できなくなります。

パッチ適用サイクルを中止すると、パッチエディションが削除されますが、新しいパッチ適用サイクルを開始する前に、クリーンアップフェーズとfs_cloneフェーズを実行する必要があります。クリーンアップは完全なクリーンアップである必要があります。次の例は、この一連のイベントを示しています。

$ adop phase=prepare
$ adop phase=apply patches=123456
[Patch application encounters problems and you want to abort]
$ adop phase=abort
$ adop phase=cleanup cleanup_mode=full
$ adop phase=fs_clone

オプションで、次のコマンドに示すように、中止コマンドとクリーンアップコマンドを組み合わせることができます。

$ adop phase=abort,cleanup cleanup_mode=full

注: ホットパッチモードで適用されたパッチの適用を中止することはできません(adop phase=apply apply_mode=hot patch

結論

adopユーティリティの既知の問題と解決策のこのコレクションは、データベース管理者がこれらまたは同様の問題を抱えている場合に役立ちます。

[フィードバック]タブを使用して、コメントを書き込んだり、質問したりします。


  1. OracleSQLプロファイルとベースライン

    この投稿では、SQLプロファイルとOracle®のベースラインの違いに焦点を当て、クエリを調整するときにどのように機能するかを説明します。 オプティマイザー、プロファイル、およびベースライン 大まかに言うと、これら3つの要素は次のように連携して機能します。 クエリオプティマイザは、システム統計、バインド変数、コンパイルなどの情報を使用して、クエリ実行の最適なプランを取得します。ただし、入力の欠陥が最適ではない計画につながる場合があります。 SQLプロファイルには、この問題を軽減する補助情報が含まれています。SQLプロファイルは、これらの間違いを最小限に抑え、オプティマイザーが最適

  2. 一般的な Excel 数式エラーとその修正方法

    中小企業などで働いている人は、Excel スプレッドシートで作業していると、エラー コードが表示されることがあります。これは、データのエラーや数式のエラーなど、さまざまな理由で発生する可能性があります。これを表すいくつかの異なるエラーがあり、最新の Microsoft 365 ガイドでは、それらを修正する方法について説明します。 エラーを回避する方法 式のエラーに入る前に、それらを完全に回避する方法について触れます。数式は常に等号で始める必要があり、掛け算には「x」ではなく「*」を使用していることを確認してください。さらに、数式で括弧を使用する方法にも注意してください。最後に、式のテキストを