首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 資料字典腳本全解析:cat、dbms、prvt、utl 四大類命名規則與功能

     編輯:Oracle 資料庫基礎

前言

Oracle 資料字典是資料庫的「元資料中樞」,所有使用者、開發者、DBA 都仰賴它查詢物件定義、權限、效能統計等。資料字典的建立、升級、維護全靠 $ORACLE_HOME/rdbms/admin 目錄下的數百支 SQL/PLB 腳本。掌握其命名規則,能讓 DBA 秒懂腳本用途,升級維護不再盲目。

腳本存放位置

作業系統目錄路徑
UNIX/Linux$ORACLE_HOME/rdbms/admin
Windows%ORACLE_HOME%\rdbms\admin

四大類命名規則速查表

檔名前綴副檔名核心功能典型代表
cat.sql資料字典視圖、同義詞、核心 PL/SQL 環境建立catalog.sql, catproc.sql, catadt.sql
dbms.sql系統內建 Package 規範/主體 (未加密)dbms_output.sql, dbms_job.sql, dbmspool.sql
prvt.plb系統內建 Package 主體 (加密,wrap 過)prvtadvi.plb, prvtstas.plb
utl.sql工具類輔助表、視圖、功能 (非核心字典)utlxplan.sql, utlrp.sql, utlchain.sql

詳細功能解析

1. cat*.sql —— 字典建立主力軍

  • catalog.sql:建立所有靜態資料字典視圖 (DBA_*, ALL_*, USER_*) 與同義詞,並串聯呼叫子腳本建立 PL/SQL 基礎型別、例外、內建函數、稽核、匯入匯出、SQL*Loader 等環境。
  • catproc.sql:建立伺服器端 PL/SQL 套件體系:Alert、Pipe、LogMiner、LOB、Advanced Queuing、Replication 等擴充功能的 Package 與視圖。
  • 擴充腳本:catadt.sql (物件型別視圖)、catnoadt.sql (移除上述)、catq.sql (佇列)、catr.sql (複寫) 等,依功能選裝。

2. dbms*.sql / prvt*.plb —— 系統 Package 原始碼

  • dbms*.sql 為明文規格/主體,可直接閱讀學習 Oracle 內部實作 (如 dbms_stats.sql 統計套件)。
  • prvt*.plb 經 wrap 加密,僅供資料庫內部載入,DBA 通常不需手動執行,由 catproc.sql 自動呼叫。
  • 少數需手動執行:dbmspool.sql (共用池物件大小分析/KEEP/UNKEEP)、dbms_lock.sql (鎖管理) 等。

3. utl*.sql —— DBA 常用工具箱

執行原則與避坑指南

  1. 必須以 SYS (SYSDBA) 身分執行,絕大多數腳本檢查呼叫者權限。
  2. 先讀腳本註解再執行,確認前置條件 (如資料庫狀態 OPEN/UPGRADE/DOWNGRADE)。
  3. 升級/降級請依官方文件順序,切勿挑選腳本亂跑,否則字典不一致極難修復。
  4. 備份先行:執行任何 cat*、utlrp.sql 前務必完整備份 (RMAN/Export)。

實用查詢:快速找出腳本用途

-- 列出 admin 目錄下所有 cat*.sql 並顯示首行註解
SELECT file_name, 
       (SELECT text FROM all_source 
        WHERE name = UPPER(SUBSTR(file_name,1,INSTR(file_name,'.')-1)) 
          AND type = 'PACKAGE' AND line = 1 AND ROWNUM=1) AS header
FROM   (SELECT 'catalog.sql' file_name FROM dual UNION ALL
        SELECT 'catproc.sql' FROM dual UNION ALL
        SELECT 'utlxplan.sql' FROM dual); -- 實際可搭配 OS 指令 ls/ dir 產生清單

總結

記住 cat=字典、dbms/prvt=套件、utl=工具,下次面對 rdbms/admin 目錄下的海量檔案,即可精準鎖定所需腳本,升級維護不再慌亂。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
腳本用途常用場景
utlxplan.sql建立 PLAN_TABLEEXPLAIN PLAN 儲存執行計畫
utlrp.sql重新編譯所有無效物件升級、Patch 後批次修復 INVALID 物件
utlchain.sql建立 CHAINED_ROWS 表ANALYZE TABLE ... LIST CHAINED ROWS
utlsampl.sql建立 SCOTT 範例結構教學、測試環境快速建模
utlip.sql / utlip.sql顯示/鎖定共用池物件效能調優、防止關鍵 Package 被 aged out