無効なスキーマ・オブジェクトおよびデータベース・アップグレードについて

utlrp.sqlを実行して、アップグレード・テスト計画の一部として無効なオブジェクトを検証します。

データベースのアップグレード後、リリース変更によって、アップグレードしたデータベースで無効なスキーマ・オブジェクトが発生することがあります。通常、無効なオブジェクトは、アクセス時または実行時に自己修復が行われます。ただし、ユーザーがこれらの無効なオブジェクトにアクセスする前に、無効なオブジェクトと必要な依存性に関する問題を解決できるように、パッチ適用およびアップグレード手順の一環としてデータベースの無効なオブジェクトを再コンパイルすることをお薦めします。

オブジェクトの検証は、Oracle Databaseのデータ定義言語(DDL)の文をチェックする操作です。これらの文は、データベース構造またはスキーマを定義するために使用されます。DDL文の検証は、完了するまでに時間がかかることがあります。次に、オブジェクトの検証時間に影響する可能性のある一般的な要因のリストを示します。

  • 無効なオブジェクトの数

  • CPUタイプ

  • プロセッサ速度

  • システム負荷

  • 使用可能な物理メモリー

utlrp.sqlコマンドは、パッケージ、プロシージャおよび型を含め、無効な状態のすべてのオブジェクトを再コンパイルします。これは、$ORACLE_HOME/rdbms/adminディレクトリにあります。utlrp.sqlスクリプトは、使用可能なCPUの数(パラメータcpu_countで指定)にCPUごとのスレッドの数(パラメータparallel_threads_per_cpuで指定)を乗じた結果に基づいて、シリアル再コンパイルまたはパラレル再コンパイルで自動的に実行されます。Oracle Real Application Clustersシステム(Oracle RAC)では、すべてのOracle RACノード全体でパラレル・スレッドの数が追加されます。

コマンドは、SYSユーザーとして、またはSYSDBAシステム権限が付与された別のユーザー・アカウントとして実行します。

以前のリリースのOracle Databaseでutlrp.sqlコマンドを実行して、データベース内に存在する無効なオブジェクトを再コンパイルすることをお薦めします。特に、SYSおよびSYSTEMユーザー・スキーマの無効なオブジェクトを必ず更新してください。アップグレードの一部として再コンパイル時間の計画を含むことができるように、アップグレードのテスト中に、アップグレード・テスト計画の一環としてアップグレードしたOracle Databaseでutlrp.sql を実行してください再コンパイル時間は、データベースの無効なオブジェクトの数に比例します。アップグレードの結果、無効なオブジェクトが大量に発生した場合、utlrp.sqlを実行するために相当な時間がかかることがあります。