十、ORACLE 數(shù)據(jù)庫管理系統(tǒng)介紹
1.ORACLE的特點(diǎn):
可移植性 ORACLE采用C語言開發(fā)而成,故產(chǎn)品與硬件和操作系統(tǒng)具有很強(qiáng)的獨(dú)立性。從大型機(jī)到微機(jī)上都可運(yùn)行ORACLE的產(chǎn)品。可在UNIX、DOS、Windows等操作系統(tǒng)上運(yùn)行。可兼容性 由于采用了國際標(biāo)準(zhǔn)的數(shù)據(jù)查詢語言SQL,與IBM的SQL/DS、DB2等均兼容。并提供讀取其它數(shù)據(jù)庫文件的間接方法。
可聯(lián)結(jié)性 對于不同通信協(xié)議,不同機(jī)型及不同操作系統(tǒng)組成的網(wǎng)絡(luò)也可以運(yùn)行ORAˉCLE數(shù)據(jù)庫產(chǎn)品。
2.ORACLE的總體結(jié)構(gòu)
(1)ORACLE的文件結(jié)構(gòu) 一個(gè)ORACLE數(shù)據(jù)庫系統(tǒng)包括以下5類文件:ORACLE RDBMS的代碼文件。
數(shù)據(jù)文件 一個(gè)數(shù)據(jù)庫可有一個(gè)或多個(gè)數(shù)據(jù)文件,每個(gè)數(shù)據(jù)文件可以存有一個(gè)或多個(gè)表、視圖、索引等信息。
日志文件 須有兩個(gè)或兩個(gè)以上,用來記錄所有數(shù)據(jù)庫的變化,用于數(shù)據(jù)庫的恢復(fù)。控制文件 可以有備份,采用多個(gè)備份控制文件是為了防止控制文件的損壞。參數(shù)文件 含有數(shù)據(jù)庫例程起時(shí)所需的配置參數(shù)。
(2)ORACLE的內(nèi)存結(jié)構(gòu) 一個(gè)ORACLE例程擁有一個(gè)系統(tǒng)全程區(qū)(SGA)和一組程序全程區(qū)(PGA)。
SGA(System Global Area)包括數(shù)據(jù)庫緩沖區(qū)、日志緩沖區(qū)及共享區(qū)域。
PGA(Program Global Area)是每一個(gè)Server進(jìn)程有一個(gè)。一個(gè)Server進(jìn)程起動(dòng)時(shí),就為其分配一個(gè)PGA區(qū),以存放數(shù)據(jù)及控制信息。
(3)ORACLE的進(jìn)程結(jié)構(gòu)ORACLE包括三類進(jìn)程:
①用戶進(jìn)程 用來執(zhí)行用戶應(yīng)用程序的。
②服務(wù)進(jìn)程 處理與之相連的一組用戶進(jìn)程的請求。
③后臺(tái)進(jìn)程 ORACLE為每一個(gè)數(shù)據(jù)庫例程創(chuàng)建一組后臺(tái)進(jìn)程,它為所有的用戶進(jìn)程服務(wù),其中包括:
DBWR(Database Writer)進(jìn)程,負(fù)責(zé)把已修改的數(shù)據(jù)塊從數(shù)據(jù)庫緩沖區(qū)寫到數(shù)據(jù)庫中。LGWR(Log Writer)進(jìn)程,負(fù)責(zé)把日志從SGA中的緩沖區(qū)中寫到日志文件中。
SMON(System Moniter)進(jìn)程,該進(jìn)程有規(guī)律地掃描SAG進(jìn)程信息,注銷失敗的數(shù)據(jù)庫例程,回收不再使用的內(nèi)存空間。PMON(Process Moniter)進(jìn)程,當(dāng)一用戶進(jìn)程異常結(jié)束時(shí),該進(jìn)程負(fù)責(zé)恢復(fù)未完成的事務(wù),注銷失敗的用戶進(jìn)程,釋放用戶進(jìn)程占用的資源。
ARCH(ARCHIVER)進(jìn)程。每當(dāng)聯(lián)機(jī)日志文件寫滿時(shí),該進(jìn)程將其拷貝到歸檔存儲(chǔ)設(shè)備上。另外還包括分布式DB中事務(wù)恢復(fù)進(jìn)程RECO和對服務(wù)進(jìn)程與用戶進(jìn)程進(jìn)行匹配的Dnnn進(jìn)程等。
3.ORACLE的邏輯結(jié)構(gòu)
構(gòu)成ORACLE的數(shù)據(jù)庫的邏輯結(jié)構(gòu)包括:
(1)表空間
(2)5種類型的段(segment)
①數(shù)據(jù)段;②索引段;③回滾(rollbock)段;④臨時(shí)段;⑤自舉(bootstrap)段。
段的分配單位叫范圍(Extent)
表空間(Tablespace) 一個(gè)數(shù)據(jù)庫劃分成的若干邏輯部分稱為表空間。一個(gè)數(shù)據(jù)庫可以有一個(gè)或多個(gè)表空間,初始的表空間命名為SYSTEM,每一個(gè)邏輯表空間對應(yīng)于一個(gè)或多個(gè)物理文件。DBA使用表空間做以下工作:
控制數(shù)據(jù)庫對象,如表、索引和臨時(shí)段的空間分配。為數(shù)據(jù)庫用戶設(shè)置空間配額。
利用個(gè)別表空間的在線或離線,控制數(shù)據(jù)的可用性。后備或恢復(fù)數(shù)據(jù)。
通過分配空間,以改進(jìn)性能。
在每個(gè)數(shù)據(jù)庫中都存在SYSTEM表空間,它在建立數(shù)據(jù)庫時(shí)自動(dòng)建立。在該表空間中,包含數(shù)據(jù)庫的數(shù)據(jù)字典,其中存儲(chǔ)全部數(shù)據(jù)庫對象的名字和位置。
SYSTEM表空間總是在線的,像其它表空間一樣,可以通過增加新的數(shù)據(jù)庫文件來擴(kuò)大。一個(gè)表空間可包含許多表和索引。但一個(gè)表和索引不能跨越表空間,可跨越組成表空間的文件。在DB的打開的情況下,DBA利用ALTER TABLESPACE語句,可以實(shí)施表空間的在線或離線。SYSTEM表空間必須在線。表空間離線有下列原因:
一般為了使部分?jǐn)?shù)據(jù)庫不能使用,而允許正常存取數(shù)據(jù)庫其余部分。執(zhí)行表空間離線備份。
一個(gè)離線的表空間,不能被應(yīng)用用戶讀或編輯。
可以增加數(shù)據(jù)文件擴(kuò)大已有的表空間,也可增加新的表空間使數(shù)據(jù)庫容量增大,或分配空間給某個(gè)應(yīng)用。使用ALFER TABLESPACE ADD FILE語句將另一個(gè)數(shù)據(jù)文件加入到已存在表空間中。使用CREATE TABLESPACE語句可建立一個(gè)新的表空間。段(segment) 表空間中的全部數(shù)據(jù)存儲(chǔ)在以段劃分的數(shù)據(jù)庫空間中。一個(gè)段是分配給數(shù)據(jù)庫用于數(shù)據(jù)存儲(chǔ)的范圍的集合。數(shù)據(jù)可以是表、索引或RDBMS所需要的臨時(shí)數(shù)據(jù)。段是表空間的下一個(gè)邏輯存儲(chǔ)的級(jí)別。一個(gè)段不能跨越一個(gè)表空間,但可跨越表空間內(nèi)的文件。一個(gè)數(shù)據(jù)庫最多需要五種段類型:
數(shù)據(jù)段 一個(gè)包含一個(gè)表(或聚集)的全部數(shù)據(jù),一個(gè)表(或聚集)總有一個(gè)單個(gè)數(shù)據(jù)段。
索引段 一個(gè)索引段包含對一個(gè)表(或聚集)建立的一個(gè)索引的全部索引數(shù)據(jù)。一個(gè)表可以有一個(gè)、多個(gè)或者沒有索引段,取決于它所擁有的索引個(gè)數(shù)。一個(gè)聚集必須至少有一個(gè)索引段,即在聚集碼上建立聚集索引。
回滾段 每個(gè)DB有一個(gè)或多個(gè)回滾段。一個(gè)回滾段是DB的一部分,它記錄在某一情況下被撤消的動(dòng)作。回滾段用于事務(wù)控制和恢復(fù)。
臨時(shí)段 在處理查詢時(shí),ORACLE需要臨時(shí)工作空間,用于存儲(chǔ)語句處理的中間結(jié)果,這個(gè)區(qū)稱為臨時(shí)段。
自舉段 自舉段在SYSTEM表空間中,在數(shù)據(jù)庫建立時(shí)建立。它包括數(shù)據(jù)字典定義,在數(shù)據(jù)庫打開時(shí)裝入。
4.用戶數(shù)據(jù)庫對象
由用戶建立的對象駐留在表空間中,含有真正的數(shù)據(jù)。數(shù)據(jù)庫對象有表、視圖、聚集、索引、偽列和序號(hào)生成器。
(1)聚集(Cluster) 聚集是存儲(chǔ)數(shù)據(jù)的一種可選擇的方法。聚集包括存儲(chǔ)在一起的一組表,它們共享公共列并經(jīng)常一起使用。由于內(nèi)容相關(guān)并且物理地存儲(chǔ)在一起,存取時(shí)間得到改進(jìn),存儲(chǔ)空間可以減少。聚集是一種優(yōu)化措施。
聚集對性能的改進(jìn),依賴于數(shù)據(jù)的分布和SQL操作的內(nèi)容。特別是使用聚集對連接非常有利。可以明顯地提高連接的速度。建立聚集命令的基本格式:
SQL>CREATE CLUSTER〈聚集名〉(列定義[,…]);利用聚集建立表命令基本格式:
SQL>CREATE TABLE〈新表名〉(列定義[,…]CLUSTER〈聚集名〉(聚集列);
在聚集碼上必須建立一個(gè)聚集索引,對于每一數(shù)據(jù)塊上每個(gè)聚集碼值有一索引項(xiàng)。這個(gè)索引必須在DML語句對聚集表操作前建立。建立索引的語句是:CREATE INDEX索引名ON CLUSTER聚集名;
(2)序號(hào)生成器 序號(hào)(SEQUENCE)生成器為表中的單列或多列生成順序號(hào)。利用序號(hào)可自動(dòng)地生成唯一主碼。使用SQL語句定義序號(hào),給出一些信息(如序號(hào)名、是升序或降序、每個(gè)序號(hào)間的間隔和其它信息)。所有序號(hào)存儲(chǔ)在數(shù)據(jù)字典表中。
所有序號(hào)定義存儲(chǔ)在數(shù)據(jù)字典的SEQUENCE表中。用戶可以通過字典視圖USER-SE-QUENCES、ALL-SEQUENCES和DBA-SEQUENCES查詢和存取。建立序號(hào)生成器的語句是:
CREATE SEQUENCE序號(hào)生成器名 其它選項(xiàng)。
一旦序號(hào)生成器S被定義。可用S.Currval來引用S序號(hào)生成器的當(dāng)前值。用S.nextval產(chǎn)生下一個(gè)新的序號(hào)并加以引用。
(3)偽列 偽列的行為像表的一列,但不真正存在于表中,在查詢時(shí)可引用偽列,但偽列不能插入、刪除或修改。
5.數(shù)據(jù)字典
數(shù)據(jù)字典ORACLE RDBMS最重要的部分之一。數(shù)據(jù)字典含有一組系統(tǒng)定義的表,只能讀,是關(guān)于數(shù)據(jù)庫的引用指南。它可提供以下信息:ORACLE用戶的用戶名;
每個(gè)用戶被授予的權(quán)限和角色;實(shí)體的名字和定義;完整性約束
為數(shù)據(jù)庫實(shí)體分配的空間;通用的數(shù)據(jù)庫結(jié)構(gòu);審計(jì)信息;
觸發(fā)子程序等的存儲(chǔ)。
數(shù)據(jù)字典是以表和視圖構(gòu)成的,像其它數(shù)據(jù)庫數(shù)據(jù)一樣,可用SQL語言查詢數(shù)據(jù)字典。
數(shù)據(jù)字典在DB建立時(shí)建立。每當(dāng)DB進(jìn)入操作,數(shù)據(jù)字典就由ORACLE RDBMS負(fù)責(zé)修改。數(shù)據(jù)庫建立時(shí)有兩個(gè)默認(rèn)DBA用戶:SYS、SYSTEM。SYS持有基本表中的數(shù)據(jù)。數(shù)據(jù)字典包含一組基表和相關(guān)的視圖,可分為以下幾類: 類 描 述
DBA-××× 只有DBA可存取的視圖,給出數(shù)據(jù)庫中定義的任何實(shí)體的信息
USER-××× 對任何用戶可用的視圖,給出他們自己的實(shí)體的信息
ALL-××× 對任何用戶可用的視圖,給出用戶可存取的所有實(shí)體的信息
其中×××代表表名或視圖名
下面列出的是一些常用的表或視圖的名稱。
(1)DTAB 描述了組或數(shù)據(jù)字典的所有表。
(2)TAB 用戶建的所有基本表、視圖和同義詞。
(3)COL 用戶創(chuàng)建基本表的所有列的信息。
(4)SYNONYMS 用戶可存取的同義名詞、專用名和公用名。
(5)CATALOG 用戶可存取的表、視圖、同義詞、序列。
(6)CONSTRAINTS 用戶可存取的約束。
(7)INDEXES 用戶可存取的表和聚集的序列。
(8)OBJECTS 用戶可存取的對象。
(9)TABLES 用戶可存取的表。
(10)USERS 查看當(dāng)前全部用戶。
(11)VIEWS 查看用戶可存取的視圖。
(12)SYSTABAUTH 用戶對數(shù)據(jù)對象的使用權(quán)限。可以用SQL>SELECT*FROM〈字典表名或視圖名〉WHERE〈條件〉來讀取有關(guān)信息。
可以用SQL>DESCRIBE〈表名〉來查看表的結(jié)構(gòu)定義。但是數(shù)據(jù)庫字典的結(jié)構(gòu)不可改。用DESCRIBE命令還可以查看視圖及過程的定義。
6.ORACLE的SQL、PL/SQL與SQL*PLUS
作為ORACLE數(shù)據(jù)庫核心的SQL語言是ANSI和ISO的標(biāo)準(zhǔn)SQL的擴(kuò)充。用來存儲(chǔ)、檢索和維護(hù)數(shù)據(jù)庫中的信息,并控制對數(shù)據(jù)庫的存取事務(wù)。由于RDBMS執(zhí)行SQL語句時(shí),是一次只執(zhí)行一條語句,它是非過程化的。這就使得單條的SQL語句使用方便,功能強(qiáng)大。用戶只需說明操作目的,不必關(guān)心具體操作的實(shí)現(xiàn)方法。
但在實(shí)際數(shù)據(jù)庫應(yīng)用開發(fā)中,往往要依據(jù)前一步對數(shù)據(jù)庫操作的結(jié)果或上一個(gè)事務(wù)提交的情況來確定下一步的操作。故ORACLE推出了一種PL/SQL工具,它擴(kuò)充了SQL語句,使之具有可進(jìn)行過程化編程的能力,如循環(huán)、分支功能。PL/SQL可支持變量和常量的使用。例如在SELECT查詢語句的where子句中可以使用變量來書寫條件表達(dá)式。
SQL*PLUS是ORACLE用來存儲(chǔ)、查詢、操縱、控制和報(bào)告數(shù)據(jù)庫中信息的一個(gè)交互式工具。它是一種集編輯、調(diào)試、運(yùn)行于一體的開發(fā)環(huán)境。在SQL*PLUS的這種運(yùn)行環(huán)境下,既可以使用SQL命令、PL/SQL語句、及SQL*PLUS自己提供的命令,又可以運(yùn)行由上述三類命令(或語句)編輯而成的命令文件。SQL*PLUS提供的附加命令主要用來編輯、運(yùn)行上述三類命令及命令文件和對查詢結(jié)果進(jìn)行格式化輸出等功能。
7.數(shù)據(jù)庫系統(tǒng)的管理
ORACLE作為一個(gè)大型的數(shù)據(jù)系統(tǒng),通常包含很多用戶的數(shù)據(jù)。在應(yīng)用開發(fā)過程中,有許許多多的各類人員進(jìn)行開發(fā)和應(yīng)用。所以必須要求有人對數(shù)據(jù)庫系統(tǒng)進(jìn)行臨時(shí)管理,并進(jìn)行數(shù)據(jù)的備份等工作。這種人被稱為數(shù)據(jù)庫管理員(Data Base Administrator)。他們必須理解數(shù)據(jù)庫系統(tǒng)管理,清楚數(shù)據(jù)庫包含的數(shù)據(jù)內(nèi)容、運(yùn)行狀況等。
一般說來,DBA不是指具體的人,而是指對數(shù)據(jù)庫可以行使DBA特權(quán)的用戶。DBA具有如下責(zé)任:
(1)ORACLE服務(wù)器和客戶工作站軟件的安裝和升級(jí);
(2)創(chuàng)建基本的數(shù)據(jù)庫存儲(chǔ)結(jié)構(gòu)(表空間);
(3)創(chuàng)建基本的數(shù)據(jù)庫客體(表、視圖、索引);
(4)修改數(shù)據(jù)庫結(jié)構(gòu);
(5)給用戶授權(quán),維護(hù)系統(tǒng)安全;
(6)控制和管理用戶對數(shù)據(jù)庫的訪問;
(7)監(jiān)視和優(yōu)化數(shù)據(jù)庫的性能;
(8)計(jì)算數(shù)據(jù)庫信息的后備和恢復(fù);
(9)后備和恢復(fù)數(shù)據(jù)庫;
(10)構(gòu)造ORACLE服務(wù)器,如創(chuàng)建數(shù)據(jù)庫鏈、客體同義詞等。
而應(yīng)用開發(fā)人員須完成:
(1)應(yīng)用程序設(shè)計(jì);
(2)應(yīng)用的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)和修改;
(3)為DBA提供必要的信息;
(4)完成應(yīng)用程序的開發(fā)。
接下來就DBA的具體工作及所使用的工具、命令作一下介紹。
8.數(shù)據(jù)庫的安裝
安裝ORACLE之前,必須首先要確定擬安裝ORACLE DBMS的計(jì)算機(jī)系統(tǒng)是否已滿足了該機(jī)型、版本的ORACLE核心所要求的硬件、軟件及網(wǎng)絡(luò)協(xié)議條件。確保有足夠的外存空間和RAM空間。比如在SUN工作站,Solaris操作系統(tǒng),一般有16M內(nèi)存空間,200~300MB外存空間就可裝載ORACLE核心及各種字符或圖形開發(fā)工具,并可滿足今后用戶對資源的需求。
ORACLE的安裝分三步進(jìn)行:
①安裝前準(zhǔn)備工作,準(zhǔn)備外存空間,建立ORACLE用戶及用戶組,創(chuàng)建修改必要的系統(tǒng)文本文件;②安裝使用ORACLE安裝程序進(jìn)行安裝,回答安裝程序提出的問題,選擇特定ORACLE產(chǎn)品;③安裝后參數(shù)調(diào)整和測試。
9.啟停數(shù)據(jù)庫
(1)初始的ORACLE數(shù)據(jù)庫:
初始的ORACLE數(shù)據(jù)庫命令為ORACLE,由兩個(gè)表空間構(gòu)成:①SYSTEM表空間,存放數(shù)據(jù)字典的所有表和視圖;
②USERS表空間,存放所有自動(dòng)生成的樣本表,如EMP、DEPT等等。ORACLE初始數(shù)據(jù)庫應(yīng)有下列文件;
①DBS1.ORA、DBS2.ORA,為SYSTEM表空間的數(shù)據(jù)庫文件;②USERS1.ORA、USERS2.ORA,為USERS表空間的數(shù)據(jù)文件;③LOG1.ORA、LOG2.ORA,為數(shù)據(jù)庫的重做日志(Redo Log)文件;④CONTROL1.ORA,為數(shù)據(jù)庫的控制文件。
初始數(shù)據(jù)庫自動(dòng)生成四個(gè)用戶名:
①用戶名為SYS,口令為CHNGE-ON-INSTALL;
SYS擁有數(shù)據(jù)字典中的所有基本表和視圖。為維護(hù)數(shù)據(jù)字典的完整性,SYS的表既不能修改,也不能創(chuàng)建。SYS是有DBA權(quán)限的用戶。
②用戶名為SYSTEM,口令為MANAGER,是DBA權(quán)限的用戶。
③SCOTT,具有CONNECT和RESOURCE權(quán)限,使用USERS表空間,口令為TIGER,擁有所有樣本表。
④PUBLIC,用于對表和視圖的公共存取。當(dāng)用戶為一數(shù)據(jù)庫客體授權(quán)給用戶PUBLIC時(shí),則任意用戶都能訪問該客體的數(shù)據(jù)。
(2)初始化和構(gòu)造文件:
在ORACLE數(shù)據(jù)庫中,存在兩個(gè)重要文件:
①初始化文件INIT.ORA,當(dāng)數(shù)據(jù)庫啟動(dòng)時(shí)用于對ORACLE服務(wù)器進(jìn)行初始設(shè)置,該文件存于執(zhí)行SQL*DBA的機(jī)器上;
②配置文件CONFIG.ORA,在許多場合由客戶機(jī)上的工具使用,如用于建立與ORACLE服務(wù)器的正確連接。該文件存于執(zhí)行客戶工具的機(jī)器上。在ORACLE服務(wù)器上也有CONˉFIG.ORA,也相當(dāng)有用,如正確標(biāo)識(shí)特定程序文件所在子目錄。
(3)SQL*DBA的進(jìn)入和退出
進(jìn)入SQL*DBA的過程隨系統(tǒng)不同而不同,也依賴于在哪進(jìn)入SQL*DBA,細(xì)節(jié)參見有關(guān)手冊。一旦進(jìn)入了SQL*DBA,則屏幕顯示SQL*DBA的提示符:SQLDBA〈CR〉SQLDBA〉
它提示你健入SQL*DBA的命令。它可接收SQL語句及數(shù)據(jù)庫管理命令,前者必須以“;”結(jié)束,后者不需后綴“;”。
要退出SQL*DBA則鍵入EXIT命令:SQLDBA>EXIT〈CR〉
(4)數(shù)據(jù)庫的啟動(dòng)和停止
只有在數(shù)據(jù)庫被啟動(dòng)以后,用戶才可以訪問數(shù)據(jù)庫。用戶要正常結(jié)束對數(shù)據(jù)庫的操作也必須執(zhí)行停止數(shù)據(jù)庫命令,以便正確保存緩沖區(qū)中的數(shù)據(jù)。非正常結(jié)束可能造成數(shù)據(jù)丟失。啟動(dòng)ORACLE數(shù)據(jù)庫,需要完成啟動(dòng)數(shù)據(jù)庫例程、安裝數(shù)據(jù)庫和打開數(shù)據(jù)庫三個(gè)任務(wù)。停止數(shù)據(jù)庫是逆序的三個(gè)任務(wù),即關(guān)閉數(shù)據(jù)庫、卸載數(shù)據(jù)庫和停止數(shù)據(jù)庫例程。啟動(dòng)的步驟為:
進(jìn)入SQL*DBA,這在上面已介紹過。
以internal身份連到數(shù)據(jù)庫上,以便對數(shù)據(jù)庫進(jìn)行起、停操作。
SQLDBA>CONNECT INTERNAL↓
SQLDBA>STARTUP↓
至于執(zhí)行帶參數(shù)的STARTUP可用于數(shù)據(jù)庫備份
。停止數(shù)據(jù)庫命令為:
SQLDBA>SHUTDOWN[ABORT][IMMEDIATE][NORMAL]
其中:使用ABORT參數(shù),則立即停止數(shù)據(jù)庫;
使用IMMEDIATE則回滾未完成事務(wù),停止數(shù)據(jù)庫;
使用NORMAL則直到所有數(shù)據(jù)庫用戶都撤去在數(shù)據(jù)庫上的登錄之后,再停止數(shù)據(jù)庫。
10.數(shù)據(jù)庫的管理
ORACLE核心在安裝過程中,已經(jīng)建一個(gè)數(shù)據(jù)庫,DBA也可以再建立其它數(shù)據(jù)庫或修改已有的數(shù)據(jù)庫定義。
(1)創(chuàng)建數(shù)據(jù)庫
數(shù)據(jù)庫的創(chuàng)建就是準(zhǔn)備若干個(gè)操作系統(tǒng)文件,使其能夠作為一個(gè)ORACLE數(shù)據(jù)庫運(yùn)轉(zhuǎn),用于數(shù)據(jù)存儲(chǔ)。然而,對于一個(gè)數(shù)據(jù)庫系統(tǒng)來說,無論其數(shù)據(jù)庫由多少個(gè)數(shù)據(jù)庫文件組成或被多少個(gè)例程所存取,數(shù)據(jù)庫需要被創(chuàng)建一次。針對一個(gè)現(xiàn)存的數(shù)據(jù)庫進(jìn)行創(chuàng)建工作,將毀壞先前數(shù)據(jù)庫文件中已經(jīng)存在的任何數(shù)據(jù)。
(2)修改數(shù)據(jù)庫配置
ORACLE數(shù)據(jù)庫能夠處于三種不同的狀態(tài),決定了其可用性:
①卸載狀態(tài) 數(shù)據(jù)庫當(dāng)前不與任何例程相聯(lián)系,DBA用戶和普通用戶均不能存取。
②裝載且關(guān)閉狀態(tài) 數(shù)據(jù)庫當(dāng)前已與一個(gè)例程相聯(lián)系,僅DBA用戶能夠存取(進(jìn)行系統(tǒng)維護(hù))。
③裝載且打開狀態(tài) 數(shù)據(jù)庫當(dāng)前能夠用于正常的數(shù)據(jù)庫操作,DBA用戶和普通用戶均能夠存取。
DBA能夠利用SQL*DBA命令將數(shù)據(jù)庫置成其中的任何一種狀態(tài),然后利用SQL語句的ALTER DATABASE改變數(shù)據(jù)庫的狀態(tài)。
DBA能夠修改數(shù)據(jù)庫配置的幾種方式是:①按共享或排斥方式裝載或卸載數(shù)據(jù)庫;②打開或關(guān)閉數(shù)據(jù)庫;
③添加或取消重做日志文件;
④重新命名重做日志文件或數(shù)據(jù)庫文件;⑤設(shè)置重做日志文件使用模式。
11.表空間的管理
ORACLE數(shù)據(jù)庫是一個(gè)或多個(gè)表空間(Tablespace)邏輯地組成的,表空間又是若干空間區(qū)段邏輯地組成的,而空間區(qū)段則是若干連續(xù)地址的ORACLE塊組成(ORACLE塊的大小依賴于操作系統(tǒng))。
表空間是數(shù)據(jù)庫的邏輯劃分,從其物理形式來看,對應(yīng)著一個(gè)或多個(gè)操作系統(tǒng)文件。這些操作系統(tǒng)文件可以分布在系統(tǒng)的任何外部存儲(chǔ)設(shè)備上,ORACLE則管理著這些數(shù)據(jù)庫文件的存儲(chǔ)空間,而操作系統(tǒng)對數(shù)據(jù)庫存儲(chǔ)空間的分配不作任何干預(yù)。
表空間容納著許多數(shù)據(jù)庫實(shí)體,諸如表、視圖、索引、聚簇、滾回段和臨時(shí)段等。當(dāng)用戶創(chuàng)建某種數(shù)據(jù)庫實(shí)體時(shí),ORACLE RDBMS按ORACLE命令所給出的“存儲(chǔ)配置參數(shù)”分配相應(yīng)的存儲(chǔ)空間。
12.安全管理
數(shù)據(jù)庫的安全管理是為了保護(hù)數(shù)據(jù)庫以防止非法使用數(shù)據(jù)庫而造成數(shù)據(jù)的泄露和破壞。ORACLE通過檢查用戶權(quán)力來限制各類用戶對數(shù)據(jù)庫的操作權(quán)力;再通過對用戶關(guān)于某一數(shù)據(jù)庫實(shí)體操作權(quán)限的驗(yàn)證來保證每一個(gè)數(shù)據(jù)庫實(shí)體不被非法訪問或修改。
(1)建立用戶命令 可以在SQL*PLUS下用SQL命令來建立數(shù)據(jù)庫用戶,命令要各式如下:SQL>CREATE USER用戶名[IDENTIFIED BY口令];
(2)用戶權(quán)力 一個(gè)新用戶被建立,不意味著他就可以存取數(shù)據(jù)庫中的數(shù)據(jù),必須由DBA對它進(jìn)行授權(quán)。關(guān)于對數(shù)據(jù)庫的操作有三種權(quán)力,下面就介紹一下用戶權(quán)力及其含義:
CONNECT權(quán)力 用戶為訪問ORACLE數(shù)據(jù)庫和任何實(shí)用程序,都需要具有CONNECT權(quán)力,具有CONNECT權(quán)力的用戶具有唯一的用戶名稱和口令。具有CONNECT權(quán)力的用戶可以做如下工作:
①訪問ORACLE;
②查詢(SELECT)別的用戶建立的表或視圖,前提是表或視圖的所有者(別的用戶)已授與該用戶對該表進(jìn)行SELECT的權(quán)力;③建立視圖和同義詞
RESOURCE權(quán)力 若同時(shí)具有CONNECT及RESOURE權(quán)力,除具有CONNECT中的權(quán)力外還有:①建立(CREATE)表、索引、聚集;
②您對自己擁有的客體或其他用戶授予您對其客體所擁有的權(quán)力(必須具有傳遞權(quán))可以授與(GRANT)別的用戶或收回(REVOKE)這些權(quán)力,即有傳遞與收回權(quán)。
DBA通過ORACLE的SQL*Plus的GRANT語句來為用戶授權(quán),其格式為:
SQL>GRANT{CONNECT|RESOURCE|DBA|TO<用戶名>[INENTIFIEDBY口令];SQL>REVOKE{CONNECT|RESOURCE|DBA}FROM<用戶名>;
當(dāng)用戶被取消了DBA權(quán)力,還擁有RESTORE和CONNECT權(quán)力。取消了RESTORE權(quán)力,還擁有CONNECT權(quán)力。取消了CONNECT權(quán)力,用戶對數(shù)據(jù)庫不能進(jìn)行任何操作。
如果一個(gè)用戶已被取消了CONNECT權(quán)力,但屬于這個(gè)用戶的表繼續(xù)存在,當(dāng)它重新獲得數(shù)據(jù)庫訪問權(quán)時(shí),可以重新使用這些表。
(3)數(shù)據(jù)庫實(shí)體的授權(quán) 當(dāng)一個(gè)用戶用ORACLE命令創(chuàng)建了一個(gè)實(shí)體,即表、視圖或序號(hào)生成器以后,他就成為該實(shí)體的所有者,可以就該實(shí)體向其他用戶授權(quán),以便其他用戶也可對該實(shí)體進(jìn)行授權(quán)所允許的操作。
(4)通過查看數(shù)據(jù)字典表SYSTABAUTH可以了解有關(guān)表的權(quán)限。
SQL>SELECT*from systabauth;
(5)ORACLE還提供了一種審計(jì)機(jī)制,來記錄對數(shù)據(jù)庫的操作,以便監(jiān)視用戶對數(shù)據(jù)庫施加的動(dòng)作。利用審計(jì)功能,DBA可以:
①監(jiān)視成功或失敗的注冊或注銷;②監(jiān)視GRANT和REVOKE;③禁止或允許寫入審計(jì)追蹤表;④為數(shù)據(jù)庫設(shè)置缺省審計(jì)選擇項(xiàng)。例如:DBA可以審計(jì):
①存取數(shù)據(jù)庫不成功的企圖;②存取未授權(quán)表的各種企圖;
③任何用戶GRANT和REVOKE語句的使用情況。
13.完整性約束
數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。DBMS必須提供一種機(jī)制來保證數(shù)據(jù)庫中數(shù)據(jù)的完整性,這種功能稱為完整性檢查。數(shù)據(jù)的完整性是為了防止數(shù)據(jù)庫存在不符合語義的數(shù)據(jù),防止錯(cuò)誤信息輸入和輸出。一般數(shù)據(jù)庫系統(tǒng)通過定義完整性約束條件來規(guī)定數(shù)據(jù)的完整性。數(shù)據(jù)的約束條件是語義的體現(xiàn),這些完整性約束將作為模式的一部分存到數(shù)據(jù)字典中。
14.ORACLE的實(shí)用程序
ORACLE產(chǎn)品的核心,包括數(shù)據(jù)管理核心模塊及幫助數(shù)據(jù)庫管理員(DBA)和用戶維護(hù)、監(jiān)視、數(shù)據(jù)輸入和輸出(實(shí)用程序),主要的有:Imp/Exp數(shù)據(jù)備份及恢復(fù)工具、ODL將外部文件轉(zhuǎn)換成ORACLE數(shù)據(jù)庫數(shù)據(jù)的工具及SQL*DBA管理ORACLE服務(wù)器及其上數(shù)據(jù)庫的交互式工具。
希望與更多計(jì)算機(jī)等級(jí)考試的網(wǎng)友交流,請進(jìn)入計(jì)算機(jī)等級(jí)考試論壇
更多信息請?jiān)L問:考試吧計(jì)算機(jī)等級(jí)考試欄目
上一頁 1 2 3 4 5 6 7 8 9 10 ...
下一頁 >>