Oracle 數(shù)據(jù)庫管理腳本命名規(guī)范
2024-08-29 13:46:26
供稿:網(wǎng)友
Oracle中的數(shù)據(jù)字典是數(shù)據(jù)庫中的非常重要的一部分,提供了相關(guān)數(shù)據(jù)庫的信息,它是所有Oracle用戶(從應(yīng)用的最終用戶、應(yīng)用的設(shè)計(jì)開發(fā)者到數(shù)據(jù)庫治理員)的非常重要的信息來源。數(shù)據(jù)字典的創(chuàng)建,是在Oracle數(shù)據(jù)庫創(chuàng)建完畢后,運(yùn)行一些相關(guān)的數(shù)據(jù)庫治理腳本來完成的。當(dāng)采用Oracle統(tǒng)一安裝器(Oracle Universal Installer)創(chuàng)建數(shù)據(jù)庫時(shí),Oracle服務(wù)器有關(guān)的字典視圖和腳本最后會被自動安裝。但當(dāng)需要升級目前的Oracle數(shù)據(jù)庫服務(wù)器時(shí),數(shù)據(jù)庫治理員必須要手工重新運(yùn)行創(chuàng)建這些視圖或腳本的SQL。安裝完數(shù)據(jù)庫后,Oracle數(shù)據(jù)庫治理腳本就存放在操作系統(tǒng)中。對于UNIX和NT操作系統(tǒng),分別位于不同的物理目錄下,見表1所示:
操作系統(tǒng)腳本目錄位置UNIX $ORACLE_HOME/rdbms/adminNT%ORACLE_HOME%/rdbms/admin
表1 數(shù)據(jù)庫治理腳本在操作系統(tǒng)中的物理位置
Oracle中幾乎所有的系統(tǒng)治理腳本都保存在該文件目錄下,該目錄下含有上百個(gè)不同文件。這些不同的文件都有什么作用呢?本文將具體討論組成Oracle數(shù)據(jù)庫治理腳本的命名規(guī)范。這樣用戶看到某個(gè)文件大概就可以知道該文件主要用途是什么。該目錄下的文件按照功能不同可分為4大類,Oracle為了輕易區(qū)分這幾類不同的文件,對于文件的命名遵從一定的規(guī)則。見表2所示。 命名規(guī)則功能描述cat*.sql關(guān)于目錄和數(shù)據(jù)字典信息dbms*.sql數(shù)據(jù)庫中關(guān)于包的說明PRvt*.plb加密過的包代碼utl*.sql數(shù)據(jù)庫其他功能的表和視圖
表2 數(shù)據(jù)庫治理腳本命名規(guī)范
下面來具體介紹這四種不同類型的腳本功能:
1、cat*.sql 腳本
該類腳本主要用于創(chuàng)建數(shù)據(jù)字典視圖。其中,腳本catalog.sql 和 catproc.sql 是創(chuàng)建數(shù)據(jù)庫后必須要運(yùn)行的兩個(gè)腳本。這兩個(gè)腳本的功能說明見表3所示。 腳本腳本說明catalog.sql創(chuàng)建系統(tǒng)常用的數(shù)據(jù)字典視圖和同義詞catproc.sql運(yùn)行服務(wù)器端所需要的PL/SQL腳本
表3 創(chuàng)建數(shù)據(jù)字典視圖腳本說明
(1) catalog.sql
該腳本創(chuàng)建相對于系統(tǒng)基表的視圖和系統(tǒng)動態(tài)性能視圖以及他們的同義詞。該腳本又同時(shí)運(yùn)行創(chuàng)建其他對象的腳本,主要有:
基本PL/SQL環(huán)境,包括PL/SQL的聲明:
- 數(shù)據(jù)類型
- 預(yù)定義例外
- 內(nèi)建的過程和函數(shù)
- SQL操作等
審計(jì)
導(dǎo)入/導(dǎo)出
SQL*Loader
安裝選項(xiàng)
(2)catproc.sql
該腳本主要用于建立PL/SQL功能的使用環(huán)境。此外,還創(chuàng)建幾個(gè)PL/SQL包用于擴(kuò)展RDBMS功能。該腳本同時(shí)還為下面的一些RDBMS功能創(chuàng)建另外的一些包和視圖:
警告(Alerts)
管道(Pipes)
日志分析(LogMiner)
大對象(Large objects)
對象(Objects)
高級隊(duì)列(Advanced queuing)
復(fù)制選項(xiàng)( Replication option)
其他的一些內(nèi)建包和選項(xiàng)(Other built-ins and options)
(3)其他腳本
在該目錄下還有其他一些腳本用來擴(kuò)展Oracle數(shù)據(jù)庫服務(wù)器功能。如,catadt.sql 腳本用來創(chuàng)建RDBMS中用來顯示兆數(shù)據(jù)信息的數(shù)據(jù)字典視圖。catnoadt.sql 腳本用來刪除這些表和視圖。
2、dbms*.sql 和 prvt*.plb 腳本
這兩類腳本用來創(chuàng)建擴(kuò)展Oracle服務(wù)器功能的系統(tǒng)預(yù)定義的一些Oracle包的對象。這些程序均用來完成數(shù)據(jù)庫治理任務(wù)。大多數(shù)的SQL腳本在運(yùn)行catproc.sql腳本時(shí)被執(zhí)行。一些額外的腳本必須由數(shù)據(jù)庫治理員另外單獨(dú)執(zhí)行。例如,dbmspool.sql 腳本,用來顯示在共享池中對象的大小并且為了減少共享池碎塊可以將其在SGA中標(biāo)記為保持或可刪除。
3、utl*.sql 腳本
該類腳本只有在數(shù)據(jù)庫需要另外的視圖和表時(shí)才需要運(yùn)行。例如,腳本utlXPlan.sql,用來創(chuàng)建一個(gè)表,該表用于觀察SQL語句的運(yùn)行計(jì)劃(Execution Plan)。
需要注重的是,絕大多數(shù)數(shù)據(jù)庫治理腳本都必須在用戶SYS下運(yùn)行。數(shù)據(jù)庫治理員假如打算運(yùn)行這些腳本,最好首先閱讀腳本內(nèi)容中的相關(guān)信息,了解應(yīng)該以什么用戶來運(yùn)行這些腳本。