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問合せを実行します。
-
この問合せで、データベース内のすべての無効なオブジェクトがリストされます。
SQL> select owner, object_name, object_type from dba_invalid_objects order by owner, object_type, object_name;
-
データベースをアップグレードした後、無効なオブジェクトの再コンパイルが完了したら、Oracle管理オブジェクトが有効になります。
Oracle管理オブジェクトが有効であることを確認するには、次の問合せを入力します。
SQL> select owner, object_name, object_type from sys.dba_invalid_objects where oracle_maintained='Y';
-
データベース内の無効なアプリケーション・オブジェクトをリストするには、次の問合せを入力します。
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の指示および出力サンプル・ファイルを参照してください。