Oracle數(shù)據(jù)庫管理腳本介紹
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)的字典視圖和腳本最后會(huì)被自動(dòng)安裝。但當(dāng)需要升級(jí)目前的Oracle數(shù)據(jù)庫服務(wù)器時(shí),,數(shù)據(jù)庫管理員必須要手工重新運(yùn)行創(chuàng)建這些視圖或腳本的SQL,。安裝完數(shù)據(jù)庫后,Oracle數(shù)據(jù)庫管理腳本就存放在操作系統(tǒng)中。對(duì)于UNIX和NT操作系統(tǒng),,分別位于不同的物理目錄下,。 操作系統(tǒng) 腳本目錄位置 UNIX $ORACLE_HOME/rdbms/admin NT %ORACLE_HOME% dbmsadmin Oracle中幾乎所有的系統(tǒng)管理腳本都保存在該文件目錄下,該目錄下含有上百個(gè)不同文件,。這些不同的文件都有什么作用呢,?本文將詳細(xì)討論組成Oracle數(shù)據(jù)庫管理腳本的命名規(guī)范。這樣用戶看到某個(gè)文件大概就可以知道該文件主要用途是什么,。該目錄下的文件按照功能不同可分為4大類,,Oracle為了容易區(qū)分這幾類不同的文件,,對(duì)于文件的命名遵從一定的規(guī)則,。見表2所示。 命名規(guī)則 功能描述 cat*.sql 關(guān)于目錄和數(shù)據(jù)字典信息 dbms*.sql 數(shù)據(jù)庫中關(guān)于包的說明 prvt*.plb 加密過的包代碼 utl*.sql 數(shù)據(jù)庫其他功能的表和視圖 下面來詳細(xì)介紹這四種不同類型的腳本功能: 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腳本 (1) catalog.sql 該腳本創(chuàng)建相對(duì)于系統(tǒng)基表的視圖和系統(tǒng)動(dòng)態(tài)性能視圖以及他們的同義詞。該腳本又同時(shí)運(yùn)行創(chuàng)建其他對(duì)象的腳本,,主要有: 基本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) 大對(duì)象(Large objects) 對(duì)象(Objects) 高級(jí)隊(duì)列(Advanced queuing) 復(fù)制選項(xiàng)( Replication option) 其他的一些內(nèi)建包和選項(xiàng)(Other built-ins and options) ?。?)其他腳本 在該目錄下還有其他一些腳本用來擴(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包的對(duì)象,。這些程序均用來完成數(shù)據(jù)庫管理任務(wù),。大多數(shù)的SQL腳本在運(yùn)行catproc.sql腳本時(shí)被執(zhí)行。一些額外的腳本必須由數(shù)據(jù)庫管理員另外單獨(dú)執(zhí)行,。例如,,dbmspool.sql 腳本,用來顯示在共享池中對(duì)象的大小并且為了減少共享池碎塊可以將其在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)行這些腳本,。 |
|