日本語PDF

すべての無効なオブジェクトの再コンパイル

データベースのインストール、パッチ適用またはアップグレード後にcatconユーティリティを使用してutlrp.sqlを実行し、CDBおよびPDB上の無効なオブジェクトを識別して再コンパイルします。

ノート:

AutoUpgradeユーティリティを使用してアップグレードした場合、AutoUpgradeがアップグレード中に自動的にこのタスクを処理します。このタスクを実行する必要はありません。

catcon.plユーティリティを使用して、使用しているコンテナ・データベース(CDB)のすべてのコンテナでutlrp.sqlを実行することをお薦めします。utlrp.sqlスクリプトは、すべての無効なオブジェクトを再コンパイルします。インストールの直後にスクリプトを実行して、ユーザーが無効なオブジェクトにアクセスしないようにしてください。

  1. ディレクトリをOracle_home/rdbms/adminに変更します。次に例を示します
    $ cd $ORACLE_HOME/rdbms/admin
  2. Oracleホームのcatcon.plスクリプトを使用して、utlrp.sqlを実行します。次に例を示します。
    $ORACLE_HOME/perl/bin/perl catcon.pl --n 1 --e --b utlrp --d '''.''' utlrp.sql

    この使用例では次の点に注意してください。

    • --nパラメータ: 1に設定されているため、各PDBの再コンパイルは順番に実行されます。

    • --eパラメータ: エコーをオンにします。
    • --bパラメータ: ログ・ファイルのベース名を設定します。utlrpに設定されています。

PDBのシリアル再コンパイルが完了するまでの時間の遅延を予期してください。アップグレードするPDBの数によっては、再コンパイルは、アップグレード・スクリプトの完了に要する時間を大幅に超えて延長される可能性があります。

utlrp.sqlスクリプトは、無効なオブジェクトの数と使用可能なCPUの数の両方に基づいて、シリアル再コンパイルまたはパラレル再コンパイルで無効なオブジェクトを自動的に再コンパイルします。CPUは、CPUの数(cpu_count)にCPUごとのスレッドの数(parallel_threads_per_cpu)を乗じて計算されます。Oracle Real Application Clusters (Oracle RAC)では、すべてのOracle RACノード全体でこの数が追加されます。

catconユーティリティの構文およびオプションの詳細は、Oracle Multitenant管理者ガイドを参照してください。