DBAtlas · データベース運用アトラス

SQLパッチ履歴、コンポーネントの状態、無効なオブジェクトを確認

Oracleパッチ適用とライフサイクル

コマンド

-- 1) datapatch history (most recent at the bottom):
SELECT patch_id, patch_type, action, status, source_version, target_version,
       TO_CHAR(action_time,'YYYY-MM-DD HH24:MI') AS action_time, description
FROM   dba_registry_sqlpatch
ORDER  BY action_time;

-- Failed entries and their log files:
SELECT install_id, patch_id, action, status, logfile
FROM   dba_registry_sqlpatch
WHERE  status <> 'SUCCESS';

-- In a CDB, for all PDBs (from root):
SELECT con_id, patch_id, action, status
FROM   cdb_registry_sqlpatch ORDER BY con_id, action_time;

-- 2) Components must be VALID:
SELECT comp_id, comp_name, version_full, status
FROM   dba_registry ORDER BY comp_id;

-- 3) Invalid object summary (compare before/after utlrp):
SELECT owner, object_type, COUNT(*) AS invalid_cnt
FROM   dba_objects
WHERE  status = 'INVALID'
GROUP  BY owner, object_type
ORDER  BY invalid_cnt DESC;

概要

パッチ適用後にSQLレイヤーが実際に更新されたか(ディクショナリがバイナリと一致しているか)、どのPDBでどのパッチが失敗したか、ディクショナリコンポーネントがVALIDか、無効なオブジェクトの数を一目で表示する。

使用する場面

すべてのdatapatchの後の検証手順として。パッチ適用やアップグレード前のベースライン取得、PDBのプラグイン後に不一致が疑われるときに。

注意

読み取り専用、ライセンス不要。SOURCE_VERSION/TARGET_VERSIONは18c以降のRUモデルで設定される。STATUS='WITH ERRORS'の場合は、LOGFILEのエラーを修正してdatapatchを再実行する。一部のコンポーネント(例: 未使用のXDB/JAVA)はINVALID/REMOVEDと表示される場合があるため、パッチ適用前の状態と比較する。

DBAtlas で開く →

関連項目