




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、課程IL001100ORACLE數(shù)據(jù)庫基礎(chǔ)知識ISSUE1.0開心Java整理華為技術(shù)IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0目錄i目錄課程說明.1課程介紹.1課程目標(biāo).1相關(guān)資料.1第1章ORACLE數(shù)據(jù)庫概述 .21.1 產(chǎn)品概述.21.1.1 產(chǎn)品簡介.21.1.2 基本概念.31.2 ORACLE 系統(tǒng)結(jié)構(gòu).41.2.2 ORACLE 物理結(jié)構(gòu).41.2.3 系統(tǒng)全局區(qū) .61.2.4 進(jìn)程.81.3 存儲管理.101.3.2 邏輯結(jié)構(gòu). 101.3.3 表(Table) . 151.3.4 視圖(View)181.3.5 索弓 1( Index)191.3.6
2、 同義詞(Synonym ).191.3.7 序列(Sequenee ) .191.3.8 數(shù)據(jù)庫鏈( Database Link ) .20第2章管理ORACLE數(shù)據(jù)庫 .212.1 基本概念.212.1.1 數(shù)據(jù)字典.212.1.2 事務(wù)管理.232.1.3 數(shù)據(jù)庫管理員(DBA) .242.1.4 ORACLE 的四種狀態(tài) .252.2 SQL*Plus 方式的 ORACLE 數(shù)據(jù)庫啟動和關(guān)閉 .262.2.1 啟動數(shù)據(jù)庫. 262.2.2 關(guān)閉數(shù)據(jù)庫. 262.3 svrmgrl 方式的 ORACLE 數(shù)據(jù)庫啟動和關(guān)閉 .282.3.1 啟動數(shù)據(jù)庫. 282.3.2 關(guān)閉數(shù)據(jù)庫. 30
3、2.4 應(yīng)用開發(fā)工具(SQL * Plus ) .312.4.1 SQL.322.4.2 PL/SQL . 33IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0目錄ii243 數(shù)據(jù)庫管理工具 .362.5 ORACLE 用戶及權(quán)限管理 . 372.5.1 ORACLE 的用戶管理.372.5.2 ORACLE 的權(quán)限管理 .382.6 ORACLE 數(shù)據(jù)庫的備份與恢復(fù) .402.6.1 Export 轉(zhuǎn)入程序.402.6.2 Import 轉(zhuǎn)入程序 .432.6.3 增量卸岀/裝入.44第3章ORACLE數(shù)據(jù)庫的網(wǎng)絡(luò)應(yīng)用 .473.1 SQL*Net 產(chǎn)品介紹.473.2 配置
4、客戶機(jī)/服務(wù)器結(jié)構(gòu) .483.2.1 配置listener.ora .483.2.2 配置tnsnames.ora 文件.49第4章常用任務(wù)示例.524.1 如何恢復(fù)被誤刪的數(shù)據(jù)文件 .524.2 女 M 可殺掉吊死 session.524.3 如何修改字符集 .524.4 如何追加表空間 .524.5 如何加大表的 maxextents 值.534.6 如何查詢無效對象 . 534.7 怎樣分析 SQL 語句是否用到索引 . 534.8 怎樣判斷是否存在回滾段競爭 .544.9 怎樣手工跟蹤函數(shù)/存儲過程執(zhí)行情況 .554.10 多種業(yè)務(wù)使用同一數(shù)據(jù)庫如何分配回滾段 .554.11 怎樣倒岀
5、、倒入文本數(shù)據(jù) .554.11.1倒岀. 554.11.2倒入. 564.12 如何更新當(dāng)前數(shù)據(jù)庫日志備份方式為archive . 574.13 Unix 環(huán)境下如何實現(xiàn)自動備份 .574.13.1設(shè)置運行環(huán)境.574.13.2 倒岀數(shù)據(jù).574.13.3 異地備份.584.13.4 啟動備份進(jìn)程.594.14怎樣分析 ORACLE故障.60小結(jié).62附錄AORACLE數(shù)據(jù)字典與視圖 .63IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0目錄iii附錄B動態(tài)性能表.69附錄CSQL語言運算符與函數(shù) .71IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0課程說明1
6、課程說明本課程對應(yīng)的產(chǎn)品版本為:Oracle 8.1.7。完成本課程的學(xué)習(xí)后,您應(yīng)該能夠:掌握ORACLE數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)中物理結(jié)構(gòu)、系統(tǒng)全局區(qū)和進(jìn)程的概念掌握ORACLE數(shù)據(jù)庫的存儲管理知識掌握管理ORACLE數(shù)據(jù)庫的方法了解ORACLE數(shù)據(jù)庫的網(wǎng)絡(luò)應(yīng)用ORACLE公司發(fā)布的相關(guān)資料。課程介紹課程目標(biāo)相關(guān)資料IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫2第1章ORACLE數(shù)據(jù)庫概述1.1 產(chǎn)品概述1.1.1 產(chǎn)品簡介數(shù)據(jù)庫技術(shù)產(chǎn)生于60年代末70年代初,到現(xiàn)在比較知名的大型數(shù)據(jù)庫系統(tǒng) 有ORACLE、Sybase、Informix、DB2(IBM公
7、司的)、Ingress、RDB、SQL Server等。ORACLE公司于1979年,首先推出基于SQL標(biāo)準(zhǔn)的關(guān)系數(shù)據(jù)庫產(chǎn)品,可以 在100多種硬件平臺上運行(包括微機(jī)、工作站、小型機(jī)、中型機(jī)和大型機(jī)),支持多種操作系統(tǒng)。1986年,ORACLE推出具有分布式結(jié)構(gòu)的版本5,可將 數(shù)據(jù)和應(yīng)用駐留在多臺計算機(jī)上,而相互間的通信是透明的。1988年,推出版本6(V6.0)可帶事務(wù)處理選項,提高了事務(wù)處理的速度。1992年推出了版本7,可帶過程數(shù)據(jù)庫選項、分布式數(shù)據(jù)庫選項和并行服務(wù)器選項,稱為ORACLE7數(shù)據(jù)庫管理系統(tǒng),它釋放出了開放的關(guān)系型系統(tǒng)的真正潛力。目前,新版本為ORACLE9i,通用版本為
8、ORACLE8i。版本Oracle 8i是在企業(yè)內(nèi) 和因特網(wǎng)上開發(fā)、布署和管理應(yīng)用高移動性和可伸縮性的數(shù)據(jù)庫。Oracle 8i最主要的新特性是在數(shù)據(jù)庫中包括J a v a和因特網(wǎng)能力。Oracle 8i還包括能夠管理和訪問多媒體 (視頻、音頻、圖像、文本、空間)的Oracle in terMedia。Oracle 8i還包括Oracle We b D B,這個We b開發(fā)環(huán)境使開發(fā)者能建立使 用標(biāo)準(zhǔn)的Web瀏覽器和Oracle 8i數(shù)據(jù)庫的動態(tài)的、數(shù)據(jù)驅(qū)動的We b網(wǎng)站。ORACLE 8i是一種通用叫法,它包括許多更細(xì)版本,如ORACLE8.1.5、ORACLE8.1.6、ORACLE8.1
9、.7,華為公司TELLIN U-NICA產(chǎn)品使用版本ORACLE8.1.7序列。說明:“i”表示ORACLE數(shù)據(jù)庫與in ternet的結(jié)合。ORACLE用多達(dá)5個號碼來完全識別一個版本,如“8.1.7.2.3”,命名方法如下:序號值含義第一位8版本號(Version ),是主要的標(biāo)識符,表示軟件的主要版本,包 含顯著的新功能,例如:版本 8 (也標(biāo)識為版本 8.0 )。第二位1新特征版本號 (New Features Release Number ),該位表示新特征版本級,例如:版本8.1。IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫3第三位7維
10、護(hù)版本號(Maintenance Release Number ),該位表示一個維 護(hù)版本級。也可能包含一些新特征,例如:版本8.0.4、8.1.7。第四位2通用補(bǔ)丁級號(Generic Patch Set Number ),該位表示一個通用 補(bǔ)丁級。補(bǔ)丁級可以跨越所有操作系統(tǒng)和硬件平臺使用,例如:補(bǔ)丁級版本 8.1.7.2第五位3專用平臺補(bǔ)丁級(Platform Specific Patch Set Number ),該位表 示一個只能應(yīng)用到特定的操作系統(tǒng)和硬件平臺的補(bǔ)丁級,例如:補(bǔ)丁級 8.1.7.2.3??梢杂萌缦碌腟QL語句得到ORACLE版本信息:SQL select * from
11、product_comp onen t_vers ion;1.1.2 基本概念要了解ORACLE數(shù)據(jù)庫,需要先了解以下基本概念:數(shù)據(jù)庫:是一個數(shù)據(jù)集合,我們大多數(shù)情況下講的數(shù)據(jù)庫概念不僅是指物理數(shù)據(jù),還指內(nèi)存、進(jìn)程對象的組合。ORACLE數(shù)據(jù)庫都將數(shù)據(jù)存儲在文件中,在其內(nèi)部,數(shù)據(jù)庫結(jié)構(gòu)提供了數(shù)據(jù)對文件的邏輯映射,允許 不同類型的數(shù)據(jù)分開存放。這些邏輯劃分稱為表空間。關(guān)于表空間的概 念將在下文中介紹。表空間(Tablespace):是數(shù)據(jù)庫的邏輯劃分,每個數(shù)據(jù)庫至少有一個 表空間(system表空間)。數(shù)據(jù)文件(DataFile):每個表空間由同一磁盤上的一個或多個文件組成, 這些文件叫數(shù)據(jù)文件
12、。建立新表空間需要建立新的數(shù)據(jù)文件。實例(Instanee):也稱為服務(wù)器(server),是存取和控制數(shù)據(jù)庫的軟 件機(jī)制,它由系統(tǒng)全局區(qū)SGA和后臺進(jìn)程組成。ORACLE數(shù)據(jù)庫啟動時,實際是啟動ORACLE實例,(安裝并打開數(shù)據(jù)庫) 一個數(shù)據(jù)庫可以被多個實例訪問(這是ORACLE的并行服務(wù)器選項)。決定實例的大小及組成的參數(shù)存儲在init.ora文件中,實例啟動時需要讀這個文件,并且在運行時可以由數(shù)據(jù)庫管理員修改,但要在下次啟動實例時才會起作用。說明:實例名字可以由環(huán)境變量ORACLE_SID來定義。實例的init.ora文件名通常包含該實例的名字,格式為initSID.ora:如一個實例的
13、名字(SID)為ora817,則init.ora文件名通常為initora817.ora。1.2 ORACLE 系統(tǒng)結(jié)構(gòu)任何硬件平臺或操作系統(tǒng)下的ORACLE體系結(jié)構(gòu)是相同的,包括如下三個方面:IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫4(1)物理結(jié)構(gòu):數(shù)據(jù)文件,日志文件,控制文件,參數(shù)文件。(2)系統(tǒng)全局區(qū)(SGA):共享池,數(shù)據(jù)緩沖區(qū),日志緩沖區(qū),字典緩沖區(qū)。(3)進(jìn)程:用戶進(jìn)程,服務(wù)器進(jìn)程,后臺進(jìn)程。具體結(jié)構(gòu)如圖1-1所示。1.2.2 ORACLE 物理結(jié)構(gòu)一個ORACLE數(shù)據(jù)庫是數(shù)據(jù)的集合,被處理成一個單位。一個ORACLE數(shù)據(jù)庫有一個物
14、理結(jié)構(gòu)和一個邏輯結(jié)構(gòu)。數(shù)據(jù)庫物理結(jié)構(gòu)是由構(gòu)成數(shù)據(jù)庫的操 作系統(tǒng)文件所決定。每一個ORACLE數(shù)據(jù)庫是由四種類型的文件組成:數(shù)據(jù) 文件、日志文件、控制文件和參數(shù)文件。數(shù)據(jù)庫的文件為數(shù)據(jù)庫信息提供真 正的物理存儲。ORACLE數(shù)據(jù)庫的物理結(jié)構(gòu)由四類文件組成1.數(shù)據(jù)文件數(shù)據(jù)文件是物理存儲ORACLE數(shù)據(jù)庫數(shù)據(jù)的文件,每一個ORACLE數(shù)據(jù)庫 有一個或多個物理的數(shù)據(jù)文件(data file)。一個數(shù)據(jù)庫的所有數(shù)據(jù)文件包含了全部數(shù)據(jù)庫數(shù)據(jù)。邏輯數(shù)據(jù)庫結(jié)構(gòu)(如表、索引)的數(shù)據(jù)物理地存儲在數(shù)據(jù) 庫的數(shù)據(jù)文件中。數(shù)據(jù)文件有下列特征:發(fā)絡(luò)用詢工具接口程序工具圖 1-1 ORACLE 數(shù)據(jù)庫體系結(jié)構(gòu)IL00110
15、0 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫5每一個數(shù)據(jù)文件只與一個數(shù)據(jù)庫聯(lián)系一個表空間可包含一個或多個數(shù)據(jù)文件圖1-2給出數(shù)據(jù)庫、表空間及數(shù)據(jù)文件之間關(guān)系。圖 1-2 數(shù)據(jù)庫、表空間及數(shù)據(jù)文件之間關(guān)系2.日志文件每一個數(shù)據(jù)庫有兩個或多個日志文件(redo log file)的組,每一個日志文件組用于收集數(shù)據(jù)庫日志。日志的主要功能是記錄對數(shù)據(jù)所做的修改,所以對數(shù)據(jù) 庫做的全部修改是記錄在日志中。日志文件的主要作用是保護(hù)數(shù)據(jù)庫以防止故障。為了防止日志文件本身的故障,ORACLE允許鏡象日志(mirrored redolog),可以在不同磁盤上維護(hù)兩個或多個日志副本
16、。日志文件中的信息僅在系 統(tǒng)故障或介質(zhì)故障時用來恢復(fù)數(shù)據(jù)庫。3.控制文件每一個ORACLE數(shù)據(jù)庫有一個控制文件(control file),它記錄數(shù)據(jù)庫的物理結(jié)構(gòu),包含下列信息類型:數(shù)據(jù)庫名。數(shù)據(jù)庫數(shù)據(jù)文件和日志文件的名字和位置。數(shù)據(jù)庫建立日期。為了安全起見,允許控制文件被鏡象。每一個ORACLE數(shù)據(jù)庫的實例啟動時, 它的控制文件用于標(biāo)識數(shù)據(jù)庫和日志文件,當(dāng)著手?jǐn)?shù)據(jù)庫操作時它們被打開。當(dāng)數(shù)據(jù)庫的物理組成更改時,ORACLE自動更改該數(shù)據(jù)庫的控制文件。數(shù)據(jù)恢復(fù)時,也要使用控制文件。4.參數(shù)文件是一個文本文件,可直接使用文本編輯器對其內(nèi)容進(jìn)行修改,該文件只在建 立數(shù)據(jù)庫和啟動IL001100 OR
17、ACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫6實例時被訪問,修改該文件后必須重啟實例才生效。系統(tǒng)初始參數(shù)文件:in it .ora生成的參數(shù)文件為:ini tSID.ora參數(shù)文件作用如下:設(shè)置SGA的大小。設(shè)置數(shù)據(jù)庫的全部缺省值。設(shè)置數(shù)據(jù)庫的范圍。在數(shù)據(jù)庫建立時定義數(shù)據(jù)庫的物理屬性。指定控制文件名和路徑。通過調(diào)整內(nèi)存結(jié)構(gòu),優(yōu)化數(shù)據(jù)庫性能。說明:ORACLE8.1.7版本數(shù)據(jù)庫實例參數(shù)文件“initSID.ora”是在安裝ORACLE數(shù)據(jù)庫過程中產(chǎn)生的,一般情況下不需要手工修改。1.2.3 系統(tǒng)全局區(qū)SGA(System Global Area)是ORACLE系統(tǒng)為實例
18、分配的一組共享緩沖存 儲區(qū),用于存放數(shù)據(jù)庫數(shù)據(jù)和控制信息,以實現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)的管理和操作, 圖1-3給出實例與SGA及數(shù)據(jù)庫關(guān)系。數(shù)據(jù)庫圖 1-3 實例與 SGA 及數(shù)據(jù)庫關(guān)系SGA分為以下幾個部分:(1)共享池。(2)數(shù)據(jù)塊緩沖區(qū)。(3)日志緩沖區(qū)。(4)字典緩沖區(qū)。下面分別介紹:說明:IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫7SGA的尺寸應(yīng)小于物理內(nèi)存的一半。在ORACLE系統(tǒng)中,所有用戶與ORACLE數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)交換都要經(jīng)過SGA區(qū)。1.共享池(Shared Pool)由共享SQL區(qū)和數(shù)據(jù)字典區(qū)組成,參數(shù)shared_pool_siz
19、e確定共享池大小, 共享SQL區(qū)包括:(1)SQL或PL/SQL語句的文本。(1)SQL或PL/SQL語句的語法分析形式。(2)SQL或PL/SQL語句的執(zhí)行方案。說明:shared_pool_size=物理內(nèi)存x(1520)%對于OPS取下限。2.數(shù)據(jù)塊緩沖區(qū)用于存儲從數(shù)據(jù)文件中讀出的數(shù)據(jù),其大小由以下兩個參數(shù)決定:DB_BLOCK_SIZE確定數(shù)據(jù)塊的大小,一般為2K或4K。DB_BLOCK_BUFFERS確定數(shù)據(jù)塊的數(shù)目。DB_BUFFERS=DB_BLOCK_BUFFERSXDB_BLOCK_SIZE=物理內(nèi)存X(1525)%,對于OPS取上限。該值應(yīng)盡量大。3.日志緩沖區(qū)以記錄項的形
20、式備份數(shù)據(jù)庫緩沖區(qū)中被修改的緩沖塊,這些記錄項將被寫到 日志文件中。日志緩沖區(qū)大小由參數(shù)LOG_BUFFER確定4.字典緩沖區(qū)用于存放數(shù)據(jù)字典信息行。5.SGA設(shè)置大小總原則在設(shè)置各參數(shù)調(diào)整SGA大小時,應(yīng)保證其小于物理內(nèi)存的一半。SGA的計算方法如下:IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫8SGA=DB_BLOCK_BUFFERSXDB_BLOCK_SIZE+SHARE_POOL_SIZE+SORT_AREA_SIZE+1M+3XDB_BLOCK_SIZEX(CPUs+2)XPARALELL_MAX_SREVERS說明:OPS才有最后一項。
21、SORT_AREA_SIZE:排序區(qū),并發(fā)用戶數(shù)較多,需要排序時該值宜大。PARALELL_MAX_SREVERS:2XCPU個數(shù)X4X并發(fā)用戶數(shù)。對單CPU不能修改此值。1.2.4 進(jìn)程進(jìn)程是操作系統(tǒng)中的一種機(jī)制,它可執(zhí)行一系列的操作步驟(在有些操作系統(tǒng)中使用作業(yè)(JOB)或任務(wù)(TASK)的術(shù)語來表示進(jìn)程)。一個進(jìn)程通常有它自 己的專用存儲區(qū)。ORACLE實例有兩種類型:單進(jìn)程實例和多進(jìn)程實例。通常用的是多進(jìn)程實 例。單進(jìn)程ORACLE(又稱單用戶ORACLE) 是一種數(shù)據(jù)庫系統(tǒng), 一個進(jìn)程執(zhí)行 全部ORACLE代碼。由于ORACLE部分和客戶應(yīng)用程序不能分別以進(jìn)程執(zhí) 行,所以O(shè)RACLE
22、的代碼和用戶的數(shù)據(jù)庫應(yīng)用是單個進(jìn)程執(zhí)行。在單進(jìn)程環(huán) 境下的ORACLE實例,僅允許一個用戶可存取。例如在MS-DOS上運行ORACLE。多進(jìn)程ORACLE實例(又稱多用戶ORACLE )使用多個進(jìn)程來執(zhí)行ORACLE的不同部分,對于每一個連接的用戶都有一個進(jìn)程。在多進(jìn)程系統(tǒng)中,進(jìn)程 分為兩類:用戶進(jìn)程和ORACLE進(jìn)程。當(dāng)一用戶運行一應(yīng)用程序,如PRO*C程序(Pro*C是一種開發(fā)工具,它把過程化語言C和非過程化語言SQL最完善地結(jié)合起來,具有完備的過程處理能力,又能完成任何數(shù)據(jù)庫的處理品任務(wù),使用戶可以通過編程完成各種類型的報表。)或一個ORACLE工具(如SQL*PLUS),為用戶運行的應(yīng)
23、用建立一個用戶進(jìn)程。ORACLE系統(tǒng)進(jìn)程又分為服務(wù)器進(jìn)程和后臺進(jìn)程。1.服務(wù)器進(jìn)程用于處理用戶請求的進(jìn)程。處理過程如下:(1)分析SQL命令并生成執(zhí)行方案。IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫9(2)從數(shù)據(jù)緩沖區(qū)或磁盤中讀取數(shù)據(jù)。(3)將執(zhí)行結(jié)果返回給用戶。2.后臺進(jìn)程為所有數(shù)據(jù)庫用戶異步完成各種任務(wù),主要包括如下進(jìn)程( 名):ora_reco_ora817恢復(fù)進(jìn)程:該進(jìn)程是在具有分布式選項時所使用的一個進(jìn)程,自動地解決在分布式事務(wù)中的故障。一個結(jié)點RECO 后臺進(jìn)程自動地連接到包含有懸而未決的分布式事務(wù)的其它數(shù)據(jù)庫中, RECO自動地解決
24、所有的懸而不決的事務(wù)。任何相應(yīng)于已處理 的懸而不決的事務(wù)的行將從每一個數(shù)據(jù)庫的懸掛事務(wù)表中刪 去。當(dāng)一數(shù)據(jù)庫服務(wù)器的 RECO后臺進(jìn)程試圖建立同一遠(yuǎn)程服務(wù)器 的通信,如果遠(yuǎn)程服務(wù)器是不可用或者網(wǎng)絡(luò)連接不能建立時,RECO 自動地在一個時間間隔之后再次連接。RECO 后臺進(jìn)程僅當(dāng)在允許分布式事務(wù)的系統(tǒng)中岀現(xiàn),而且DISTRIBUTED -TRANSACTIONS 參數(shù)是大于 0。ora_dbw0_ora817數(shù)據(jù)庫寫進(jìn)程:該進(jìn)程執(zhí)行將緩沖區(qū)寫入數(shù)據(jù)文件,是負(fù)責(zé)緩 沖存儲區(qū)管理的一個 ORACLE 后臺進(jìn)程。當(dāng)緩沖區(qū)中的一緩沖 區(qū)被修改,它被標(biāo)志為“弄臟”,此進(jìn)程的主要任務(wù)是將“弄 臟”的緩沖區(qū)寫
25、入磁盤,使緩沖區(qū)保持“干凈”。ora_pmon_ora817進(jìn)程監(jiān)控進(jìn)程:該進(jìn)程在用戶進(jìn)程岀現(xiàn)故障時執(zhí)行進(jìn)程恢復(fù),負(fù)責(zé)清理內(nèi)存儲區(qū)和釋放該進(jìn)程所使用的資源。 例: 它要重置 活動事務(wù)表的狀態(tài),釋放封鎖,將該故障的進(jìn)程的ID 從活動進(jìn)程表中移去。PMON 還周期地檢查調(diào)度進(jìn)程(DISPATCHER ) 和服務(wù)器進(jìn)程的狀態(tài),如果已死,則重新啟動(不包括有意刪 除的進(jìn)程)。PMON有規(guī)律地被呼醒, 檢查是否需要, 或者其 它進(jìn)程發(fā)現(xiàn)需要時可以被調(diào)用。ora_lgwr_ora817日志寫進(jìn)程:該進(jìn)程將日志緩沖區(qū)寫入磁盤上的一個日志文件,它是負(fù)責(zé)管理日志緩沖區(qū)的一個 ORACLE 后臺進(jìn)程。ora_ck
26、pt_ora817檢查點寫進(jìn)程:該進(jìn)程在檢查點岀現(xiàn)時,對全部數(shù)據(jù)文件的標(biāo) 題進(jìn)行修改,指示該檢查點。ora_smon_ora817系統(tǒng)監(jiān)控進(jìn)程:該進(jìn)程實例啟動時執(zhí)行實例恢復(fù),還負(fù)責(zé)清理 不再使用的臨時段。在具有并行服務(wù)器選項的環(huán)境下,SMON對有故障 CPU 或?qū)嵗M(jìn)行實例恢復(fù)。SMON 進(jìn)程有規(guī)律地被呼醒,檢查是否需要,或者其它進(jìn)程發(fā)現(xiàn)需要時可以被調(diào)用。1.3 存儲管理前面已經(jīng)提到過,ORACLE數(shù)據(jù)庫都將數(shù)據(jù)存儲在數(shù)據(jù)文件中,在其內(nèi)部, 數(shù)據(jù)庫結(jié)構(gòu)提供了數(shù)據(jù)對數(shù)據(jù)文件的邏輯映射,允許不同類型的數(shù)據(jù)分開存 放。這些邏輯劃分稱為表空間,圖1-4給出了詳細(xì)的ORACLE數(shù)據(jù)庫存儲結(jié)構(gòu)圖。ora8
27、17表示實例IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫10Database Storage Hierarchy圖 1-4 ORACLE 存儲結(jié)構(gòu)圖對于用戶,通常關(guān)心的是ORACLE的邏輯結(jié)構(gòu),是在邏輯上是如何組成的, 是如何存儲數(shù)據(jù)的,下面詳細(xì)介紹。1.3.2 邏輯結(jié)構(gòu)ORACLE的邏輯結(jié)構(gòu)是由一個或多個表空間組成,一個數(shù)據(jù)庫劃分為一個或 多個邏輯單位,該邏輯單位稱為表空間(tablespace)。一個表空間可將相關(guān)的邏輯結(jié)構(gòu)組合在一起。一個表空間由一組分類段組成。一個段由一組范圍組成。一個范圍由一批數(shù)據(jù)庫塊組成。Logical: Oraclfl
28、ConKnMU.IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫11一個數(shù)據(jù)庫塊對應(yīng)一個或多個物理塊。每一個ORACLE數(shù)據(jù)庫包含有一個名為SYSTEM的表空間,在數(shù)據(jù)庫建立 時自動建立。在該表空間中包含有整個數(shù)據(jù)庫的系統(tǒng)信息數(shù)據(jù),最小的數(shù)據(jù) 庫可只需要SYSTEM表空間。表空間利用增加數(shù)據(jù)文件可擴(kuò)大表空間,表空 間的大小為組成該表空間的數(shù)據(jù)文件的大小的和。ORACLE數(shù)據(jù)庫中一表空間是由一個或多個物理數(shù)據(jù)文件組成,一個數(shù)據(jù)文件只可與一個表空間相聯(lián) 系。當(dāng)為一表空間建立一數(shù)據(jù)文件時,ORACLE建立該文件,分配指定的磁盤空間容量。在數(shù)據(jù)文件初始建立后,
29、所分配的磁盤不包含有任何數(shù)據(jù)。一個模式(schema)為模式對象(schema object)的一個集合,每一個數(shù)據(jù) 庫用戶對應(yīng)一個模式。模式對象為直接引用數(shù)據(jù)庫數(shù)據(jù)的邏輯結(jié)構(gòu),模式對 象包含如表、視圖、索引、同義詞等結(jié)構(gòu)。模式對象是邏輯數(shù)據(jù)存儲結(jié)構(gòu), 每一種模式對象在磁盤上沒有一個相應(yīng)文件存儲其信息。一個模式對象邏輯 地存儲在數(shù)據(jù)庫的一個表空間中,每一個對象的數(shù)據(jù)物理地包含在表空間的 一個或多個數(shù)據(jù)文件中。例如:表、索引等模式對象,在指定表空間的數(shù)據(jù) 文件上為該對象分配多少空間。圖1-5說明模式對象、表空間和數(shù)據(jù)文件之間的關(guān)系。Drived*圖 1-5 模式對象、表空間和數(shù)據(jù)文件之間的關(guān)系模
30、式與表空間之間的關(guān)系為:一個表空間可包含不同模式的對象,而一個模 式中的對象可包含在不同的表空間中。1期亦P :.11Table iiTab It,inoEX ii rTsble .SYSTEM-Ind嘲n5:砂曲DATAFILElDatabase*-1DATATableDATAFILE3DATAFILE2PDrivel*IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫121.數(shù)據(jù)庫塊數(shù)據(jù)庫塊(database block)是ORACLE邏輯分配空間的最底層,又稱邏輯塊、頁或ORACLE塊。數(shù)據(jù)庫塊是數(shù)據(jù)庫使用和分配空間的最小單元,也可以說是使用的最小
31、I/O單元,一個數(shù)據(jù)塊與磁盤上指定的物理空間大小相一致,一個數(shù)據(jù)庫塊對應(yīng)一 個或多個物理塊,塊的大小由參數(shù)db_block_size確定。PCTFREE和PCTUSED是開發(fā)人員用來控制數(shù)據(jù)塊中可用插入和更新數(shù)據(jù) 的空閑空間大小的參數(shù)。PCTFREE:設(shè)置數(shù)據(jù)塊中保持空閑的百分比。PCTUSED:當(dāng)數(shù)據(jù)塊空閑空間達(dá)到PCTFREE時,此塊不允許插入數(shù)據(jù),只能修改或刪除塊中的行,更新時可能使數(shù)據(jù)塊空閑空間變大,已用數(shù) 據(jù)空間變小,當(dāng)已用空間低于PCTUSED時,則可以重新插入數(shù)據(jù)。PCTFREE及PCTUSED的選擇:經(jīng)常做查詢(select)的表,應(yīng)使PCTFREE小些,盡量減少存儲空間浪 費
32、。經(jīng)常做插入(insert)的表,應(yīng)使PCTUSED大一些。經(jīng)常做更新(update)的表,應(yīng)使PCTFREE大一些,給更新留出更大 的空間,減少行移動。說明:這兩個參數(shù)只能在創(chuàng)建、修改表和聚簇(數(shù)據(jù)段)時指定。另外,在創(chuàng)建、修改索引(索引段)時只能指定PCTFREE參數(shù)。經(jīng)常做插入的表設(shè)置舉例:create table COMMINFORSERIALNUMBERVARCHAR2(20)not n ull.ENTERHISTIMEDATEnot null,ACCEPTBEGINTIMEDATEnullACCEPTDURATIONNUMBER(10)nullACCEPTERNOVARCHAR2(
33、4)nullCALLINGPHONENOVARCHAR2(20)nullIL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫13ACCEPTIDNUMBER(10)nullOPERATIONTYPEVARCHAR2(10)nullAPPELLANTNAMEVARCHAR2(16)nullCONTACTIDNUMBER(10)null)pctfree 10pctused 90in itra ns 2maxtra ns 2552.范圍(Extent)數(shù)據(jù)庫存儲空間分配的邏輯單位,一個范圍由一組數(shù)據(jù)塊組成,范圍是由段 分配的,分配的第一個范圍稱初始范圍,以后分配
34、的范圍稱增量范圍。Extent是段中分配空間的邏輯單元。它有如下特性:一個或多個范圍構(gòu)成一個段。當(dāng)段增長時,范圍自動添加到段中。DBA可以手工把范圍加到一個段中。一個范圍不能跨數(shù)據(jù)文件,即一個擴(kuò)展只屬于一個數(shù)據(jù)文件。一個范圍由一片連續(xù)的ORACLE block構(gòu)成。TABLESPACESERVICE_RPT_DAT經(jīng)常做查詢的表設(shè)置舉例:create table AUTH(AUTHIDDESCRIPTIONNUMBER(10)VARCHAR2(50)not null,nullcon strai nt PK_AUTH primary key(AUTHID)pctfree 10pctused 40
35、TABLESPACESERVICE_RPT_DATIL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫14每個段在定義時有許多存儲參數(shù)來控制范圍的分配,主要是STORGAE參數(shù),主要包括如下幾項:INITIAL:分配給段的第一個范圍的字節(jié)數(shù),缺省為5個數(shù)據(jù)塊。NEXT:分配給段的下一個增量范圍的字節(jié)數(shù),缺省為5個數(shù)據(jù)塊。MAXEXTENTS:最大擴(kuò)展次數(shù)。PCTINCREASE:每一個增量范圍都在最新分配的增量范圍上增長,這 個百分?jǐn)?shù)缺省為50%,建表時通常設(shè)置為0,建表空間時為1%。范圍在分配時,遵循如下分配方式:初始創(chuàng)建時,分配INITIAL指定大小的
36、區(qū)??臻g不夠時,按NEXT大小分配第二個區(qū)。再不夠時,按NEXT + NEXT *PCTINCREASE分配??梢詫Ρ?、聚集、索引、回滾段、表空間等實體設(shè)置存儲參數(shù)。3.段是表空間中一個指定類型的邏輯存儲結(jié)構(gòu),它由一個或多個Extent組成,段將占用并增長存儲空間,但是一個段不能跨越表空間,ORACLE中有數(shù)據(jù)段、索引段、臨時段、回滾段和自舉段(包含打開數(shù)據(jù)庫時要裝入的數(shù)據(jù)字典表)。當(dāng)執(zhí)行建表命令時,系統(tǒng)將自動創(chuàng)建一個段,若沒有指定存儲參數(shù)子句storage,則系統(tǒng)會用相應(yīng)表空間的storage,當(dāng)初始區(qū)用完后,系統(tǒng)會按next和pctincrease的值分配新的區(qū)。在這里要講一個比較重要的概
37、念:回滾段。回滾段是當(dāng)某事務(wù)修改一個數(shù)據(jù) 塊時,用以存放數(shù)據(jù)以前映像信息的數(shù)據(jù)段?;貪L段中的信息用以保存讀連 續(xù)性,并進(jìn)行事務(wù)回滾和事務(wù)恢復(fù)。例如,如果事務(wù)通過把一列的關(guān)鍵值從10改為20來修改數(shù)據(jù)塊,則原值10要存放于回滾段中,而數(shù)據(jù)塊將具有新 值20。如果事務(wù)被回滾,則值10從回滾段拷回數(shù)據(jù)塊。事務(wù)產(chǎn)生的重做記錄保證在事務(wù)提交或回滾之前保持在回滾段中,而一個事務(wù)只能用一個回滾 段存放其所有的重做記錄,因此,如果回滾段大小配置不恰當(dāng),當(dāng)ORACLE執(zhí)行一個大的事務(wù)時,就會出現(xiàn)回滾段溢出的錯誤。所以設(shè)置回滾段大小是 一個比較重要的問題,這取決于數(shù)據(jù)庫應(yīng)用的主要事務(wù)模式(穩(wěn)定的平均事 務(wù)速度、頻
38、繁大型事務(wù)、不頻繁大型事務(wù)),并可通過一些測試來確定。這里還有另外一個概念:臨時段。用于以下SQL操作:CREATE INDEX帶DISTINCT,ORDER BY,GROUP BY,UNION,INTERSECT和MINUS子句的SELECT語句IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫15無索引的JION語句IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫16某些相互關(guān)聯(lián)的子查詢了解了邏輯結(jié)構(gòu)后,下面介紹數(shù)據(jù)庫中存儲對象。1.3.3 表(Table)1.表的組成表是數(shù)據(jù)庫的最基本的邏輯結(jié)構(gòu),一切數(shù)據(jù)都
39、存放在表中,一個ORACLE數(shù)據(jù)庫就是由若干個數(shù)據(jù)表組成。其它數(shù)據(jù)庫對象都是為了用戶很好地操作表 中的數(shù)據(jù)。表是關(guān)系模型中反映實體與屬性關(guān)系的二維表格,它由列和行組 成,通過行與列的關(guān)系,表達(dá)出了實體與屬性的關(guān)系,如圖1-6所示。表的組成部分有:列/域/字段:表的內(nèi)容,也就是實體的各個屬性,組成了表的各個列。列名:列的名稱。長度:該列所能容納的最大數(shù)據(jù)位數(shù)。類型:該列存儲的數(shù)據(jù)類型,常用數(shù)據(jù)類型如表0-0所示。關(guān)鍵字:該列能唯一表示一行內(nèi)容,貝y稱該列為關(guān)鍵字。非空列:該列值是不能為空的。常用數(shù)據(jù)類型數(shù)據(jù)類型說明串長度Char (長度)定長字符串255Varchar (長度)變長字符串2000
40、Number (精度,比例)數(shù)字Date日期時間Long (長度)大型可變長字符串21 億極址門74987855*3和平路巧號心中國工商飆行 V188060479公主墳 1號尸鄧宏婦35007856皮誼路 27號心- /記軋主美援竽*非空列屮列/手啟 3圖 1-6 表(Table )的組成IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫17行/記錄:表中所有列組合在一起形成的一條信息,稱之為一行或一條記錄。所屬表:記錄一定是歸屬于某一張表的。行號:每條記錄在數(shù)據(jù)庫中的一個定位位置。在ORACLE數(shù)據(jù)庫中,每張表有一系統(tǒng)提供的偽列來定位每條記錄。記錄長度
41、:該記錄所有非空列的長度求和得出的字節(jié)數(shù)。2.建表命令建表命令如下:CREATE TABLE table name(colu mn1 datatype DEFAULT expressi on con stra in t, colu mn1 datatypeDEFAULT expressi on con stra in t,)STORAGE子句其他子句;建表舉例:create table AUTOCALLLOG( IDVARCHAR2(20)n ot null ,CityIdNUMBER(4)NULL)TABLESPACESERVICE_HIST_DATPCTFREE10PCTUSED90STO
42、RAGE(INITIAL10MNEXT10MMINEXTENTS2MAXEXTENTS500pctin crease0);IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫183.刪除表中數(shù)據(jù)刪除表中數(shù)據(jù)有以下兩種方式:Delete:刪除數(shù)據(jù)時,數(shù)據(jù)庫需要寫日志,ORACLE數(shù)據(jù)庫還需要占用回滾段,每次事務(wù)越大,對數(shù)據(jù)庫的沖擊越大,所以在刪除或者更新數(shù) 據(jù)時,一定要注意控制事務(wù)的大小。ORACLE數(shù)據(jù)庫在刪除或更新數(shù)據(jù)時,where條件中加rownum控制每次刪除或更新的數(shù)量,如:delete from t_my_table where . and ro
43、w num create table emp(eno char(4) con stra int e1 primary key ,IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫19en ame char(8) not n ull.salnu mber(8,2) con stra int ck1check (sal between 5000 and 10000),mgrchar(4),dnochar(2)con stra int d2referencesdep(d no)on delete cascade);引用完整性約束時需要注意以下幾點:(1)先建主
44、表,后從表。(2)從表引用的必須是主表的主碼或定義了唯一性約束的列。(3)從表的外來碼值必須匹配與主表的引用碼的值(4)當(dāng)刪除主表記錄時,從表指定了on delete cascade子句,連帶刪除從表記錄,否則,若從表中有對應(yīng)記錄,則不能刪除主表記錄。1.3.4 視圖(View)視圖,數(shù)據(jù)中表的窗口,在表上的查詢所形成的一個數(shù)據(jù)集體。通過視圖, 你將看到你所需要的信息,而排除其它不關(guān)心的內(nèi)容。將表中所需要的列和行選取出來傳遞給用戶。不是真正將數(shù)據(jù)重新復(fù)制一遍,不占用存儲空間。不僅在表的基礎(chǔ)上建立,還可在視圖的基礎(chǔ)之上再建立視圖。建立視圖主要基于:保護(hù)數(shù)據(jù)安全,防止機(jī)密數(shù)據(jù)泄露。簡化數(shù)據(jù)查詢方式
45、,建立有效的查詢。保持?jǐn)?shù)據(jù)獨立性,保證程序不會隨著數(shù)據(jù)的位置變化、名稱變化而需要 修改。說明:ORACLE數(shù)據(jù)庫的視圖請參考“附錄 A ORACLE 數(shù)據(jù)字典與視圖”。1.3.5 索引(Index)索引是與表相關(guān)的一種選擇結(jié)構(gòu)。 索引可建立在一表的一列或多列上, 一旦 建立, 由ORACLE自動維護(hù)和使用,對用戶是完全透明的。索引是邏輯地和 物理地獨立于數(shù)據(jù),它們的建立或IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫20刪除對表沒有影響,所有應(yīng)用可繼續(xù)處理。關(guān)于索引需要注意以下幾點:(1)索引是一種數(shù)據(jù)庫對象,并不改變表的邏輯結(jié)構(gòu),而是在物理存儲結(jié)構(gòu)
46、 上增加一些輔助信息,以提高查詢速度。(2)當(dāng)表中記錄增加或刪除時,索引結(jié)構(gòu)均要發(fā)生變化,因此,當(dāng)有大量數(shù)據(jù)裝入數(shù)據(jù)庫時,應(yīng)該先裝入數(shù)據(jù),后建立索引,以提高數(shù)據(jù)裝入速度。(3)只有當(dāng)按指定的索引列的值查找或按索引列的順序存取表時,才可利用 索引提高性能。說明:當(dāng)索引被刪除后,原分配給索引的數(shù)據(jù)塊將全部返回給索引所在的表空間建立索引可以:加快查詢速度。確保唯一性特征??梢詾楸碇心骋涣薪ㄒ粋€唯一性索引,那么如果有人 企圖向表中插入這樣一行記錄,即它在這個有索引的列的數(shù)值與以前已 有值重復(fù),則這個操作就會失敗。1.3.6 同義詞(Synonym )同義詞是表、視圖或其它數(shù)據(jù)庫實體的一個別名??梢杂门c
47、存取表、視圖等實體同樣的方法來存取別名。簡單性(用戶名表名T同義詞名)。表的獨立性(只需修改同義詞的定義,避免修改大量應(yīng)用程序)。1.3.7 序列(Sequenee )序列是一個數(shù)據(jù)庫對象, 利用它可以生成唯一的整數(shù),序列的值是由ORACLE程序自動生成。創(chuàng)建序列:SQLcreate seque nee zxk in creme nt by 10start with 10 maxvalue 1000 cycle ;上例說明:in creme nt by 10增量值為10。start with 10指定生成的第一個序列號為10。IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理
48、 ORACLE 數(shù)據(jù)庫21maxvalue 1000指定序列可生成的最大值。cycle序列上升到最大值1000后,繼續(xù)由開始值10開始生成。引用序列:序列當(dāng)前值:zxk.currval序列下一個值:zxk .n extval1.3.8 數(shù)據(jù)庫鏈(Database Link)數(shù)據(jù)庫鏈?zhǔn)潜镜財?shù)據(jù)庫中的一個對象,利用它可以存取遠(yuǎn)程數(shù)據(jù)庫上的對象。在遠(yuǎn)程表或視圖之后附加db鏈名,即可在SQL語句中引用遠(yuǎn)程表或視圖。有專用數(shù)據(jù)庫鏈和公用數(shù)據(jù)庫鏈之分,專用數(shù)據(jù)庫鏈僅為建立者使用;公用數(shù)據(jù)庫鏈必須用關(guān)鍵字public定義,公用數(shù)據(jù)庫鏈可為全部用戶使用。創(chuàng)建數(shù)據(jù)庫鏈:對由連接串icd_main”指定的數(shù)據(jù)庫上
49、的用戶icdmain,口令為icd,建立 一名為icdmainold的數(shù)據(jù)庫鏈。SQLcreate database link icdma inoldconnect to icdma inide ntified by icdus ingicd_ma in;下面給出使用數(shù)據(jù)庫鏈進(jìn)行查詢、插入、修改、刪除舉例:SQLselect * fromempicdmai nold;SQLi nsertin to empicdmai noldvalues(0001,zxk,5000,0010,00);SQLupdateempicdma inoldset sal=sal+1000;SQLdelete from
50、empicdma inoldwhere en ame=aaaa;第2章管理ORACLE數(shù)據(jù)庫本章主要講述管理ORACLE數(shù)據(jù)庫的一些必備知識。IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫222.1 基本概念2.1.1 數(shù)據(jù)字典數(shù)據(jù)字典是ORACLE數(shù)據(jù)庫的最重要的部分之一,是由一組只讀的表及其視圖所組成。這些表和視圖是數(shù)據(jù)庫被建立同時由數(shù)據(jù)庫系統(tǒng)建立起來的,起 著系統(tǒng)狀態(tài)的目錄表的作用。數(shù)據(jù)字典描述表、列、索引、用戶、訪問權(quán)以 及數(shù)據(jù)庫中的其它實體,當(dāng)其中的一個實體被建立、修改或取消時,數(shù)據(jù)庫 將自動修改數(shù)據(jù)字典。因此,數(shù)據(jù)字典總是包含著數(shù)據(jù)庫的當(dāng)
51、前描述。數(shù)據(jù) 字典提供有關(guān)該數(shù)據(jù)庫的信息,可提供的信息如下:ORACLE用戶的名字。每一個用戶所授的特權(quán)和角色。模式對象的名字(表、視圖、索引、同義詞等)。關(guān)于完整性約束的信息。列的缺省值。有關(guān)數(shù)據(jù)庫中對象的空間分布信息及當(dāng)前使用情況。審計信息(如誰存取或修改各種對象)。其它一般的數(shù)據(jù)庫信息??捎肧QL存取數(shù)據(jù)字典,由于數(shù)據(jù)字典為只讀,只允許查詢。數(shù)據(jù)字典中全部基本表和用戶可存取視圖為ORACLE用戶SYS所持有,所有對象包含在SYS模式中,安全管理員對該帳號要嚴(yán)格控制。當(dāng)ORACLE數(shù)據(jù)庫系統(tǒng)啟動后,數(shù)據(jù)字典總是可用,它駐留在SYSTEM表空間中。數(shù)據(jù)字典包含視圖集,在許多情況下,每一視圖集
52、有三種視圖包含 有類似信息,彼此以前綴相區(qū)別,前綴為USER、ALL和DBA。前綴為USER的視圖,為用戶視圖,是在用戶的模式內(nèi)。前綴為ALL的視圖為擴(kuò)展的用戶視圖(為用戶可存取的視圖)。前綴為DBA的視圖為DBA的視圖(為全部用戶可存取的視圖)。常用數(shù)據(jù)字典與視圖ORACLE數(shù)據(jù)庫有三個可查看系統(tǒng)數(shù)據(jù)庫字典的用戶:system、internal、sys,其它用戶只能查看授權(quán)表空間的數(shù)據(jù)庫字典,以某一用戶登錄數(shù)據(jù)庫后可查 看一些數(shù)據(jù)字典,了解數(shù)據(jù)庫的資源情況,對日常維護(hù)的故障定位能起很大 的幫助,下面就一些常用的數(shù)據(jù)表(視圖)進(jìn)行簡單的說明:(1)dba_tablespaces(user_ta
53、blespaces)除三個系統(tǒng)用戶以外的用戶登錄可查看user_tablespaces表。dba_tablespaces(user_tablespaces)表可查看本數(shù)據(jù)庫的表空間,它存放 各個表空間的屬性,包括:表空間名、表空間宿主、以及存儲參數(shù)(initial、IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫23next、maxextents、minextents、blocks等)等。(2)dba_data_files(user_data_files)該表可查看數(shù)據(jù)庫所有數(shù)據(jù)庫數(shù)據(jù)文件,它存放了各個數(shù)據(jù)文件的屬性,包 括:表空間名、宿主、數(shù)據(jù)文件名
54、、大小、可用空間以及ID號等。(3)dba_segments(user_segments)該表可查看數(shù)據(jù)庫所有段,它存放了各個段的屬性,包括:段名、表空間名、 宿主、大小、第一個區(qū)間的塊號等。(4)dba_rollback_segs該表可查看數(shù)據(jù)庫所有回滾段,它存放了各個數(shù)據(jù)庫回滾段的屬性,包括:回滾段名、表空間名、宿主、存儲參數(shù)(initial、next、maxextents、minextents等)、第一個區(qū)間的塊號、占用數(shù)據(jù)庫文件ID號。(5)dba_exte nts該表可查看數(shù)據(jù)庫所有區(qū)間,它存放了各個區(qū)間的屬性,包括:區(qū)間ID、使用段ID、所屬對象(object)名、宿主、占用數(shù)據(jù)庫
55、文件ID(對應(yīng)dba_data_files中的ID號)、塊號等。常見應(yīng)用:查看各對象的區(qū)間是否已達(dá)到了最大區(qū)間數(shù)量(maxextents)。select object_ name,sum(*) from dba_exte nts group by object_ name;(6)dba_free_spaces可查看數(shù)據(jù)庫表空間的使用情況,如查看各數(shù)據(jù)庫表空間的可用空間:select tablespace_ name,sum(bytes)from dba_free_spaces group bytalbespace_ name;以上為常用的數(shù)據(jù)字典,可在維護(hù)中靈活應(yīng)用。在維護(hù)過程中,第一步應(yīng)查
56、看數(shù)據(jù)庫管理系統(tǒng)的運行日志,日志文件的存放路徑應(yīng)版本不同而不同,一般:ORACLE workgroup版, 日志文件存放路徑為:$ORACLE_HOME/rdbms/alert_SIDog,OPS版,日志文件存放路徑為:$ORACLE_HOME/././admin/bdump/alert_SIDog。 可用命令:taillogfile name查看,或用vi logfile name,按shift+g至U文件尾進(jìn)行查看。說明:附錄A詳細(xì)列出了ORACLE的數(shù)據(jù)字典與視圖,供參考。IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫242.1.2 事務(wù)管理1
57、.事務(wù)(tran sactio n)數(shù)據(jù)庫是多用戶的共享資源,在多個用戶并行地存取數(shù)據(jù)時,應(yīng)對數(shù)據(jù)做并 發(fā)控制,以免存取不正確的數(shù)據(jù),破壞數(shù)據(jù)庫的一致性。數(shù)據(jù)庫的任何狀態(tài)變化都要能反映客觀世界的某種真實存在的合理狀態(tài),反 映到數(shù)據(jù)庫中,就是數(shù)據(jù)要滿足一定的約束條件,這種約束條件就是一致性 約束。有時,為了完成復(fù)雜的修改動作,往往需要臨時破壞數(shù)據(jù)庫的狀態(tài)一致性。 因此,就有必要把這種對數(shù)據(jù)庫復(fù)雜修改的一連串動作序列合并起來,這就 是事務(wù)。事務(wù)是數(shù)據(jù)庫維護(hù)數(shù)據(jù)一致性的單位,它將數(shù)據(jù)庫從一致性狀態(tài)轉(zhuǎn)換成新的 一致性狀態(tài)。2.事務(wù)提交提交事務(wù):即將在事務(wù)中由SQL語句所執(zhí)行的改變永久化。數(shù)據(jù)庫數(shù)據(jù)的更
58、新操作提交以后,這些更新操作就不能再撤消。ORACLE的提交命令如下:SQLCOMMJT3.事務(wù)回退事務(wù)回退的含義是:撤消未提交事務(wù)中的SQL語句所作的對數(shù)據(jù)修改。ORACLE允許撤消未提交的整個事務(wù),也允許撤消部分(需設(shè)置保存點)?;赝酥?,數(shù)據(jù)庫將恢復(fù)事務(wù)開始時的狀態(tài)或保留點狀態(tài)?;赝嗣钊缦拢篠QLROLLBACK4.保存點保存點就是將一個事務(wù)劃分成為若干更小的部分,以便在必要時,使當(dāng)前事 務(wù)只回退一部分,而其余工作得到保留。其格式為:SAVEPOINT保存點名;ROLLBACK TO保存點名;2.1.3 數(shù)據(jù)庫管理員(DBA)任何一個系統(tǒng)都需要一個負(fù)責(zé)管理和維護(hù)的人員,負(fù)責(zé)管理和維護(hù)O
59、RACLE數(shù)據(jù)庫的人就是數(shù)據(jù)庫管理員(DataBase Administrator,簡稱DBA)。每個ORACLE數(shù)據(jù)庫至少要有一名專職的數(shù)據(jù)庫管理員,其職責(zé)如下:保證數(shù)據(jù)的完整性和一致性。IL001100 ORACLE 數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0管理 ORACLE 數(shù)據(jù)庫25提高執(zhí)行速度,調(diào)整系統(tǒng)性能。管理數(shù)據(jù)庫存儲,減少數(shù)據(jù)冗余。安裝、升級ORACLE Server和應(yīng)用工具。定期對數(shù)據(jù)進(jìn)行備份。DBA為做好上述工作,需要了解以下知識:ORACLE產(chǎn)品結(jié)構(gòu)。DBA工具。數(shù)據(jù)庫備份和恢復(fù)。數(shù)據(jù)字典用途。在ORACLE系統(tǒng)初始安裝后,存在以下三個具有DBA特權(quán)的數(shù)據(jù)庫用戶:interna
60、l用戶。sys用戶。system用戶。1. DBA的操作系統(tǒng)帳戶在進(jìn)行許多數(shù)據(jù)庫的管理任務(wù)時,必須能夠執(zhí)行操作系統(tǒng)命令,所以需要有 個操作系統(tǒng)帳戶,以便能完成操作系統(tǒng)的操作,此時要求此帳戶具有比一般 數(shù)據(jù)庫用戶更多的操作系統(tǒng)權(quán)限或存取特權(quán)。數(shù)據(jù)庫的啟動(startup)和關(guān)閉(shutdown)是重要的管理任務(wù),只有通過internal用戶連接到ORACLE數(shù)據(jù)庫,才能執(zhí)行啟動和關(guān)閉。對于不同的操 作系統(tǒng),必須完成下列要求之一,才能用internal登錄ORACLE。你的操作系統(tǒng)帳戶有允許你作為internal登錄ORACLE操作系統(tǒng)權(quán)限。你有權(quán)限用internal登錄ORACLE。若數(shù)據(jù)庫用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年礦業(yè)開采模塊合作協(xié)議書
- 2025年出版物發(fā)行零售合作協(xié)議書
- 2025年放射性核素遠(yuǎn)距離治療機(jī)項目發(fā)展計劃
- 2025年酶標(biāo)免疫分析儀項目發(fā)展計劃
- 產(chǎn)業(yè)研究報告-中國工業(yè)無人機(jī)行業(yè)發(fā)展現(xiàn)狀、市場規(guī)模、投資前景分析(智研咨詢)
- 藝術(shù)知識競賽策劃
- 2025年光通信計量和監(jiān)測儀器項目建議書
- 餐飲服務(wù)細(xì)節(jié)培訓(xùn)
- 電熱毯批發(fā)企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 金屬花架企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 外國美術(shù)史第一講-原始美術(shù)及古代兩河流域美術(shù)課件
- 共有權(quán)人同意出租證明(房屋對外出租使用)
- 日本の節(jié)句日本的節(jié)日課件-高考日語文化常識專項
- 阿托伐他汀鈣片說明書20110420(立普妥)
- 回旋鉆鉆孔施工方案
- DB13T 2801-2018 水利工程質(zhì)量監(jiān)督規(guī)程
- 四年級上冊第四單元讓生活多一些綠色道德與法治教學(xué)反思11變廢為寶有妙招
- JJG(交通)096-2009 水泥膠砂流動度測定儀檢定規(guī)程-(高清現(xiàn)行)
- 嗓音(發(fā)聲)障礙評定與治療
- Q∕SY 05262-2019 機(jī)械清管器技術(shù)條件
- 最新人音版音樂二年級下冊全冊教案
評論
0/150
提交評論