首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 資料庫管理腳本命名規範解碼:cat*/dbms*/prvt*/utl* 四大類功能速查

     編輯:Oracle 資料庫相關知識

腳本目錄位置

  • Unix/Linux: $ORACLE_HOME/rdbms/admin
  • Windows: %ORACLE_HOME%\rdbms\admin

數百個腳本檔,依命名前綴分四大類,看檔名即知功能:

四大類命名規範對照表

前綴模式功能領域典型檔案執行頻率
cat*.sql目錄與資料字典視圖建立catalog.sql, catproc.sql, catadt.sql建庫/升級時一次
dbms*.sqlPL/SQL 內建套件規格/主體dbmspool.sql, dbmsstats.sql建庫時 + 部分 DBA 手工
prvt*.plb加密的套件主體 (PL/SQL Wrapped)prvtstats.plb, prvtaq.plb建庫時自動
utl*.sql工具類輔助表/視圖/功能utlxplan.sql, utlexcpt.sql, utlrp.sql按需手工執行

核心腳本深度解析

1. cat*.sql:字典視圖基石

  • catalog.sql:建立系統基表視圖、動態效能視圖 (V$)、同義詞。同時調用:PL/SQL 基礎環境、稽核、匯入匯出、SQL*Loader、安裝選項等子腳本
  • catproc.sql:建立 PL/SQL 執行環境與擴充 RDBMS 功能的套件:Alert、Pipe、LogMiner、LOB、Object、Advanced Queuing、Replication、其他內建選項
  • catadt.sql / catnoadt.sql:建立/移除 ADT (抽象資料型別) 相關字典視圖

建庫後必跑:@catalog.sql → @catproc.sql (以 SYS 連線)

2. dbms*.sql & prvt*.plb:套件原始碼與加密體

  • dbms*.sql 為套件規格 (SPEC) 與未加密主體 (BODY) 來源碼
  • prvt*.plb 為 WRAP 加密後的主體,保護智慧財產權
  • 多數隨 catproc.sql 自動執行;少數 (如 dbmspool.sql 共用池物件大小標記) 需 DBA 手工執行

3. utl*.sql:DBA 工具箱

  • utlxplan.sql:建立 PLAN_TABLE 供 EXPLAIN PLAN 使用
  • utlexcpt.sql:建立 EXCEPTIONS 表供約束驗證 EXCEPTIONS INTO
  • utlrp.sql:重新編譯所有無效 PL/SQL 物件 (升級/遷移後必跑)
  • utlchain.sql:建立鏈列/遷移列分析表 CHAINED_ROWS
  • utlsampl.sql:建立 SCOTT 範例結構

執行原則與避坑指南

  1. 幾乎所有腳本必須以 SYS 執行,執行前閱讀檔案開頭註解確認
  2. 升級資料庫時,需依升級指南順序手工重跑相關 cat*/dbms* 腳本
  3. 不要隨意修改官方腳本,需求客製化請建立獨立腳本
  4. prvt*.plb 為二進位加密,**不可直接閱讀/修改**,若需查看邏輯請參考對應 dbms*.sql

速查卡:常用腳本一覽

建立字典視圖          @catalog.sql
建立 PL/SQL 套件      @catproc.sql
建立 PLAN_TABLE       @utlxplan.sql
建立 EXCEPTIONS 表    @utlexcpt.sql
重編譯無效物件        @utlrp.sql
分析鏈列/遷移列       @utlchain.sql
共用池物件大小標記    @dbmspool.sql
ADT 字典視圖          @catadt.sql

熟記四大前綴語意,面對數百腳本目錄不再迷茫。需要什麼功能,直奔對應前綴尋找,是 DBA 駕馭 Oracle 內部機制的基本功。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved