Oracleデータ・ディクショナリの現在の状態の表示方法

アップグレードと移行の診断のためにOracleデータ・ディクショナリの状態を確認するには、次の3つの方法のいずれかを使用します。

例7-1 DBA_REGISTRYでのSQL問合せの実行

ディクショナリの現在の状態を表示するには、次の例のようなSQL問合せを実行します。

SQL> spool /tmp/regInvalid.out
SQL> set echo on
-- query registry
SQL> set lines 80 pages 100
SQL> select substr(comp_id,1,15) comp_id,substr(comp_name,1,30)
      comp_name,substr(version,1,10) version_full,status
from dba_registry order by comp_id;

例7-2 無効なオブジェクトをチェックするSQL問合せの実行

無効なオブジェクトをチェックするには、次の例のようにSQL問合せを実行します。

  1. この問合せで、データベース内のすべての無効なオブジェクトがリストされます。

    SQL> select owner, object_name, object_type from dba_invalid_objects order by owner, object_type, object_name;
  2. データベースをアップグレードした後、無効なオブジェクトの再コンパイルが完了したら、Oracle管理オブジェクトが有効になります。

    Oracle管理オブジェクトが有効であることを確認するには、次の問合せを入力します。

    SQL> select owner, object_name, object_type from sys.dba_invalid_objects where oracle_maintained='Y';
  3. データベース内の無効なアプリケーション・オブジェクトをリストするには、次の問合せを入力します。

    SQL> select owner, object_name, object_type from sys.dba_invalid_objects where oracle_maintained='N';

例7-3 dbupgdiag.sqlスクリプトの実行

(オプション)アップグレードの詳細情報を取得する場合は、dbupgdiag.sqlスクリプトの実行を選択できます。dbupgdiag.sqlスクリプトは、アップグレードの前または後のいずれかで、データベースのステータスに関する診断情報を収集します。My Oracle Supportノート556610からスクリプトをダウンロードし、データベースのSYSユーザーとしてスクリプトを実行します。このスクリプトにより、db_upg_diag_sid_timestamp.logという名前のログ・ファイルに、読みやすい形式で診断情報が生成されます。sidはデータベースのOracleシステム識別子で、timestampはファイルが生成された時刻です。

たとえば、/u01/dbupgdiag-scriptディレクトリにスクリプトをダウンロードして配置する場合は次のとおりです。

/u01/dbupdiag-script/ $ sqlplus / as sysdba
sql> alter session set nls_language='American';
sql> @dbupgdiag.sql
sql> exit

スクリプトは、SQL*Plusを使用して、ソース・データベースでアップグレード前に実行することも、アップグレードしたデータベースでアップグレード後に実行することもできます。スクリプトの詳細は、My Oracle Supportノート556610.1の指示および出力サンプル・ファイルを参照してください。