版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、文檔 課程 IL001100 ORACLE數(shù)據(jù)庫基礎(chǔ)知識 ISSUE1.0 開心Java整理 華為技術(shù) 目錄 課程說明 . 1 課程介紹 . 1 課程目標(biāo) . 1 相關(guān)資料 . 1 第 1章 ORACLE 數(shù)據(jù)庫概述 . 2 文檔 1.1 產(chǎn)品概述 . 2 1.1.1 產(chǎn)品簡介 . 2 1.1.2 基本概念 . 3 1.2 ORACLE 系統(tǒng)結(jié)構(gòu) . 4 1.2.2 ORACLE 物理結(jié)構(gòu) . 4 1.2.3 系統(tǒng)全局區(qū) . 6 1.2.4 進(jìn)程 . 8 1.3 存儲管理 . 10 1.3.2 邏輯結(jié)構(gòu) . 10 1.3.3 表( Table ) . 15 1.3.4 視圖( View ) .
2、 18 1.3.5 索引( Index ) . 18 1.3.6 同義詞( Synonym ) . 19 1.3.7 序列( Sequence ) . 19 1.3.8 數(shù)據(jù)庫鏈( Database Link ) . . 20 第2章 管理 ORACLE 數(shù)據(jù)庫 . 21 2.1 基本概念 . 21 2.1.1 數(shù)據(jù)字典 . 21 2.1.2 事務(wù)管理 . 23 2.1.3 數(shù)據(jù)庫管理員 (DBA) . 24 2.1.4 ORACLE 的四種狀態(tài) . 25 2.2 SQL*Plus 方式的 ORACLE 數(shù)據(jù)庫啟動(dòng)和關(guān)閉 . 26 2.2.1 啟動(dòng)數(shù)據(jù)庫 . 26 2.2.2 關(guān)閉數(shù)據(jù)庫 .
3、26 2.3 svrmgrl 方式的 ORACLE 數(shù)據(jù)庫啟動(dòng)和關(guān)閉 . 28 2.3.1 啟動(dòng)數(shù)據(jù)庫 . 28 2.3.2 關(guān)閉數(shù)據(jù)庫 . 30 2.4 應(yīng)用開發(fā)工具( SQL * Plus ) . 31 2.4.1 SQL . 32 2.4.2 PL/SQL . 33 2.4.3 數(shù)據(jù)庫管理工具 . 36 2.5 ORACLE 用戶及權(quán)限管理 . 37 2.5.1 ORACLE 的用戶管理 . 37 2.5.2 ORACLE 的權(quán)限管理 . 38 2.6 ORACLE 數(shù)據(jù)庫的備份與恢復(fù) . 40 2.6.1 Export 轉(zhuǎn)入程序 . 40 2.6.2 Import 轉(zhuǎn)入程序 . 43
4、2.6.3 增量卸出 /裝入 . 44 第 3章 ORACLE 數(shù)據(jù)庫的網(wǎng)絡(luò)應(yīng)用 . 47 1.2 . SQL*Net 產(chǎn)文檔 品介紹 47 1.3 . 配置客戶機(jī) / 服務(wù)器結(jié)構(gòu) . 48 (1) 配置 listener.ora . 48 (2) 配置 tnsnames.ora 文件 . 49 第 4章 常用任務(wù)示例 . 52 1.2.2 如何恢復(fù)被誤刪的數(shù)據(jù)文件 . 52 1.2.3 . 如何殺掉吊死 session 52 1.2.4 . 如何修改字符集 52 1.2.5 . 如何追加表空間 52 1.2.6 如何加大表的 maxextents. 值 53 1.2.7 . 如何查詢無效對象
5、 53 1.2.8 . 怎 樣 分 析 SQL 語句是否用到索引 . 53 1.2.9 . 怎樣判斷是否存在回滾段競爭 . 54 1.2.10 . 怎樣手工跟蹤函數(shù) /存儲過程執(zhí)行情況 . 55 1.2.11 . 多種業(yè)務(wù)使用同一數(shù)據(jù)庫如何分配回滾段 . 55 1.2.12 . 怎樣倒出、倒入文本數(shù)據(jù) . 55 1. 倒出 . 55 2. 倒入 . 56 1.2.13 . 如何更新當(dāng)前數(shù)據(jù)庫日志備份方式為 archive . 57 1.2.14 . Unix 環(huán)境下如何實(shí)現(xiàn)自動(dòng)備份 . 57 1. 設(shè)置運(yùn)行環(huán)境 . 57 2. 倒出數(shù)據(jù) . 57 3. 異地備份 . 58 4. 啟動(dòng)備份進(jìn)程
6、. 59 (4) 怎樣分析 ORACLE 故障 . 60文檔 小結(jié) . 62 附錄 A ORACLE 數(shù)據(jù)字典與視圖 . 63 附錄 B 動(dòng)態(tài)性能表 . 69 附錄C SQL語言運(yùn)算符與函數(shù) . 71文檔 ORACLE 公司發(fā)布的相關(guān)資料。課程說明 課程介紹 課程目標(biāo) 本課程對應(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)用 相關(guān)資料 文檔 第1章ORACLE數(shù)據(jù)庫概述 1.1
7、 產(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 公司的)、Ingress、RDB、SQL Server 等。 ORACLE公司于1979年,首先推出基于 SQL標(biāo)準(zhǔn)的關(guān)系數(shù)據(jù)庫產(chǎn)品,可以 在100多種硬件平臺上運(yùn)行 (包括微機(jī)、工作站、小型機(jī)、中型機(jī)和大型機(jī)), 支持多種操作系統(tǒng)。1986年,ORACLE推出具有分布式結(jié)構(gòu)的版本 5,可將 數(shù)據(jù)和應(yīng)用駐留在多臺計(jì)算機(jī)上,而相互間的通信是透明的。 1988年,推出 版本6(V6.0 )可帶事務(wù)處理選項(xiàng),提高了事務(wù)處理的速
8、度。 1992年推出了 版本7,可帶過程數(shù)據(jù)庫選項(xiàng)、分布式數(shù)據(jù)庫選項(xiàng)和并行服務(wù)器選項(xiàng),稱為 ORACLE7數(shù)據(jù)庫管理系統(tǒng),它釋放出了開放的關(guān)系型系統(tǒng)的真正潛力。 目前, 新版本為 ORACLE9i,通用版本為 ORACLE8i。版本Oracle 8i是在企業(yè)和 因特網(wǎng)上開發(fā)、布署和管理應(yīng)用高移動(dò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 ,這個(gè) We b開發(fā)環(huán)
9、境使開發(fā)者能建立使 用標(biāo)準(zhǔn)的 We b瀏覽器和Oracle 8i數(shù)據(jù)庫的動(dòng)態(tài)的、數(shù)據(jù)驅(qū)動(dòng)的 We b。 ORACLE 8i是一種通用叫法,它包括許多更細(xì)版本,如 ORACLE8.1.5、 ORACLE8.1.6、ORACLE8.1.7,華為公司 TELLIN U-NICA 產(chǎn)品使用版本 ORACLE8.1.7 序列。 說明: “i”表示ORACLE數(shù)據(jù)庫與in ternet的結(jié)合。 ORACLE用多達(dá)5個(gè)來完全識別一個(gè)版本,如“ 8.1.7.2.3 ”,命名方法如下: 序號 值 含義 第一位 8 版本號(Version), 含顯著的新功能,例如 是主要的標(biāo)識符,表示軟件的主要版本,包 :版本
10、8 (也標(biāo)識為版本 8.0 )。 第二位 1 新特征版本號 (New Features Release Number ),該位表示新特 征版本級,例如:版本 8.1。 文檔 第三位 7 維護(hù)版本號(Maintenance Release Number ),該位表示一個(gè)維 護(hù)版本級。也可能包含一些新特征,例如:版本 8.0.4、8.1.7。 第四位 2 通用補(bǔ)丁級號(Generic Patch Set Number ),該位表示一個(gè)通用 補(bǔ)丁級。補(bǔ)丁級可以跨越所有操作系統(tǒng)和硬件平臺使用, 例如:補(bǔ) 丁級版本 8.1.7.2 第五位 3 專用平臺補(bǔ)丁級(Platform Specific Patc
11、h Set Number ),該位表 示一個(gè)只能應(yīng)用到特定的操作系統(tǒng)和硬件平臺的補(bǔ)丁級, 例如:補(bǔ) 丁級 8.1.7.2.3。 可以用如下的SQL語句得到ORACLE版本信息: SQL select * from product_comp onen t_vers ion; 1.1.2 基本概念 要了解ORACLE數(shù)據(jù)庫,需要先了解以下基本概念: 數(shù)據(jù)庫:是一個(gè)數(shù)據(jù)集合,我們大多數(shù)情況下講的數(shù)據(jù)庫概念不僅是指 物理數(shù)據(jù),還指存、進(jìn)程對象的組合。 ORACLE數(shù)據(jù)庫都將數(shù)據(jù)存儲在 文件中,在其部,數(shù)據(jù)庫結(jié)構(gòu)提供了數(shù)據(jù)對文件的邏輯映射,允許不同 類型的數(shù)據(jù)分開存放。這些邏輯劃分稱為表空間。關(guān)于表空間
12、的概念將 在下文中介紹。 表空間 (Tablespace ) : 是數(shù)據(jù)庫的邏輯劃分, 每個(gè)數(shù)據(jù)庫至少有一個(gè) 表空間 (system表空間)。 數(shù)據(jù)文件(DataFile):每個(gè)表空間由同一磁盤上的一個(gè)或多個(gè)文件組成, 這些文件叫數(shù)據(jù)文件。建立新表空間需要建立新的數(shù)據(jù)文件。 實(shí)例(Instanee ):也稱為服務(wù)器(server),是存取和控制數(shù)據(jù)庫的軟 件機(jī)制,它由系統(tǒng)全局區(qū) SGA和后臺進(jìn)程組成。 ORACLE數(shù)據(jù)庫啟動(dòng)時(shí),實(shí)際是啟動(dòng)ORACLE實(shí)例,(安裝并打開數(shù)據(jù)庫) 一個(gè)數(shù)據(jù)庫可以被多個(gè)實(shí)例訪問(這是 ORACLE的并行服務(wù)器選項(xiàng))。決定 實(shí)例的大小及組成的參數(shù)存儲在 init.or
13、a文件中,實(shí)例啟動(dòng)時(shí)需要讀這個(gè)文件, 并且在運(yùn)行時(shí)可以由數(shù)據(jù)庫管理員修改,但要在下次啟動(dòng)實(shí)例時(shí)才會起作用。 說明: 實(shí)例名字可以由環(huán)境變量 ORACLE_SID 來定義。 實(shí)例的init.ora文件名通常包含該實(shí)例的名字,格式為 initSID.ora :如一個(gè)實(shí) 例的名字(SID )為ora817,則init.ora文件名通常為initora817.ora 。文檔 (1) ORACLE 系統(tǒng)結(jié)構(gòu) 任何硬件平臺或操作系統(tǒng)下的 ORACLE體系結(jié)構(gòu)是相同的,包括如下三個(gè)方 面: 2.1 物理結(jié)構(gòu):數(shù)據(jù)文件,日志文件,控制文件,參數(shù)文件。 2.2 系統(tǒng)全局區(qū)(SGA ):共享池,數(shù)據(jù)緩沖區(qū),日志緩
14、沖區(qū),字典緩沖區(qū)。 2.3 進(jìn)程:用戶進(jìn)程,服務(wù)器進(jìn)程,后臺進(jìn)程。 具體結(jié)構(gòu)如圖1-1所示。 2.1.1 ORACLE 物理結(jié)構(gòu) 一個(gè)ORACLE數(shù)據(jù)庫是數(shù)據(jù)的集合,被處理成一個(gè)單位。一個(gè) ORACLE數(shù) 據(jù)庫有一個(gè)物理結(jié)構(gòu)和一個(gè)邏輯結(jié)構(gòu)。數(shù)據(jù)庫物理結(jié)構(gòu)是由構(gòu)成數(shù)據(jù)庫的操 作系統(tǒng)文件所決定。每一個(gè) ORACLE數(shù)據(jù)庫是由四種類型的文件組成:數(shù)據(jù) 文件、日志文件、控制文件和參數(shù)文件。數(shù)據(jù)庫的文件為數(shù)據(jù)庫信息提供真 正的物理存儲。 發(fā) 絡(luò) 用 詢 工具 接口 程序 工具 圖 1-1 ORACLE數(shù)據(jù)庫體系結(jié)構(gòu) 文檔 ORACLE數(shù)據(jù)庫的物理結(jié)構(gòu)由四類文件組成 (1) 數(shù)據(jù)文件 數(shù)據(jù)文件是物理存儲
15、ORACLE數(shù)據(jù)庫數(shù)據(jù)的文件,每一個(gè) ORACLE數(shù)據(jù)庫 有一個(gè)或多個(gè)物理的數(shù)據(jù)文件 (data file)。一個(gè)數(shù)據(jù)庫的所有數(shù)據(jù)文件包含了 全部數(shù)據(jù)庫數(shù)據(jù)。邏輯數(shù)據(jù)庫結(jié)構(gòu)(如表、索引)的數(shù)據(jù)物理地存儲在數(shù)據(jù) 庫的數(shù)據(jù)文件中。數(shù)據(jù)文件有下列特征: 每一個(gè)數(shù)據(jù)文件只與一個(gè)數(shù)據(jù)庫聯(lián)系 一個(gè)表空間可包含一個(gè)或多個(gè)數(shù)據(jù)文件 圖1-2給出數(shù)據(jù)庫、表空間及數(shù)據(jù)文件之間關(guān)系。 圖 1-2數(shù)據(jù)庫、表空間及數(shù)據(jù)文件之間關(guān)系 (2) 日志文件 每一個(gè)數(shù)據(jù)庫有兩個(gè)或多個(gè)日志文件 (redo log file)的組,每一個(gè)日志文件組用 于收集數(shù)據(jù)庫日志。日志的主要功能是記錄對數(shù)據(jù)所做的修改,所以對數(shù)據(jù) 庫做的全部修改
16、是記錄在日志中。日志文件的主要作用是保護(hù)數(shù)據(jù)庫以防止 故障。為了防止日志文件本身的故障, ORACLE允許鏡象日志(mirrored redo log),可以在不同磁盤上維護(hù)兩個(gè)或多個(gè)日志副本。日志文件中的信息僅在系 統(tǒng)故障或介質(zhì)故障時(shí)用來恢復(fù)數(shù)據(jù)庫。 (3) 控制文件 每一個(gè)ORACLE數(shù)據(jù)庫有一個(gè)控制文件(control file),它記錄數(shù)據(jù)庫的物理結(jié) 構(gòu),包含下列信息類型: 數(shù)據(jù)庫名。 數(shù)據(jù)庫數(shù)據(jù)文件和日志文件的名字和位置。 數(shù)據(jù)庫建立日期。 文檔 為了安全起見,允許控制文件被鏡象。每一個(gè)ORACLE數(shù)據(jù)庫的實(shí)例啟動(dòng)時(shí), 它的控制文件用于標(biāo)識數(shù)據(jù)庫和日志文件,當(dāng)著手?jǐn)?shù)據(jù)庫操作時(shí)它們被打
17、開。 當(dāng)數(shù)據(jù)庫的物理組成更改時(shí), ORACLE自動(dòng)更改該數(shù)據(jù)庫的控制文件。數(shù)據(jù) 恢復(fù)時(shí),也要使用控制文件。 (4) 參數(shù)文件 是一個(gè)文本文件,可直接使用文本編輯器對其容進(jìn)行修改,該文件只在建立 數(shù)據(jù)庫和啟動(dòng)實(shí)例時(shí)被訪問,修改該文件后必須重啟實(shí)例才生效。文檔 系統(tǒng)初始參數(shù)文件: 生成的參數(shù)文件為: 參數(shù)文件作用如下: 設(shè)置SGA的大小。 設(shè)置數(shù)據(jù)庫的全部缺省值。 設(shè)置數(shù)據(jù)庫的圍。 在數(shù)據(jù)庫建立時(shí)定義數(shù)據(jù)庫的物理屬性。 指定控制文件名和路徑。 通過調(diào)整存結(jié)構(gòu),優(yōu)化數(shù)據(jù)庫性能。 說明: ORACLE8.1.7 版本數(shù)據(jù)庫實(shí)例參數(shù)文件 “initSID.ora ”是在安裝ORACLE數(shù) 據(jù)庫過程中產(chǎn)生
18、的,一般情況下不需要手工修改。 1.2.3 系統(tǒng)全局區(qū) SGA ( System Global Area )是ORACLE系統(tǒng)為實(shí)例分配的一組共享緩沖存 儲區(qū),用于存放數(shù)據(jù)庫數(shù)據(jù)和控制信息,以實(shí)現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)的管理和操作, 圖1-3給出實(shí)例與SGA及數(shù)據(jù)庫關(guān)系。 SGA分為以下幾個(gè)部分: (1) 共享池。 數(shù)據(jù)塊緩沖區(qū)。 日志緩沖區(qū)。 字典緩沖區(qū)。 下面分別介紹: 說明: in it .ora ini tSID.ora 數(shù)據(jù)庫 圖 1-3實(shí)例與 SGA及數(shù)據(jù)庫關(guān)系 文檔 SGA的尺寸應(yīng)小于物理存的一半。 在ORACLE系統(tǒng)中,所有用戶與 ORACLE數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)交換都要經(jīng)過 SGA 區(qū)。
19、1. 共享池(Shared Pool ) 由共享SQL區(qū)和數(shù)據(jù)字典區(qū)組成,參數(shù) shared_pool_size 確定共享池大小, 共享SQL區(qū)包括: SQL或PL/SQL語句的文本。 2.1.3 SQL或PL/SQL語句的語法分析形式。 2.1.4 SQL或PL/SQL語句的執(zhí)行方案。 說明: shared_pool_size=物理存x( 1520 ) % 對于OPS取下限。 2. 數(shù)據(jù)塊緩沖區(qū) 用于存儲從數(shù)據(jù)文件中讀出的數(shù)據(jù),其大小由以下兩個(gè)參數(shù)決定: DB_BLOCK_SIZE 確定數(shù)據(jù)塊的大小,一般為 2K或4K。 DB_BLOCK_BUFFERS 確定數(shù)據(jù)塊的數(shù)目。 DB_BUFFE
20、RS=DB_BLOCK_BUFFERS X DB_BLOCK_SIZE= 物理存 X (1525 ) % ,對于OPS取上限。該值應(yīng)盡量大。 3. 日志緩沖區(qū) 以記錄項(xiàng)的形式備份數(shù)據(jù)庫緩沖區(qū)中被修改的緩沖塊,這些記錄項(xiàng)將被寫到 日志文件中。日志緩沖區(qū)大小由參數(shù) LOG_BUFFER 確定 4. 字典緩沖區(qū) 用于存放數(shù)據(jù)字典信息行。 5. SGA設(shè)置大小總原則 在設(shè)置各參數(shù)調(diào)整 SGA大小時(shí),應(yīng)保證其小于物理存的一半。 SGA的計(jì)算方法如下: 文檔 SGA=DB_BLOCK_BUFFERS X DB_BL0CK_SIZE+SHARE_P00L_SIZE+S0RT_AREA_SIZE+1M+3 X
21、 DB_BLOCK_SIZE X( CPUs+2 )X PARALELL_MAX_SREVERS 說明: OPS才有最后一項(xiàng)。 SORT_AREA_SIZE :排序區(qū),并發(fā)用戶數(shù)較多,需要排序時(shí)該值宜大。 PARALELL_MAX_SREVERS : 2 XCPU 個(gè)數(shù) X 4 X 并發(fā)用戶數(shù)。對單 CPU 不 能修改此值。 1.2.4 進(jìn)程 進(jìn)程是操作系統(tǒng)中的一種機(jī)制,它可執(zhí)行一系列的操作步驟(在有些操作系 統(tǒng)中使用作業(yè)(JOB)或任務(wù)(TASK)的術(shù)語來表示進(jìn)程)。一個(gè)進(jìn)程通常有它自 己的專用存儲區(qū)。 ORACLE實(shí)例有兩種類型:單進(jìn)程實(shí)例和多進(jìn)程實(shí)例。通常用的是多進(jìn)程實(shí) 例。 單進(jìn)程OR
22、ACLE (又稱單用戶 ORACLE ) 是一種數(shù)據(jù)庫系統(tǒng), 一個(gè)進(jìn)程執(zhí)行 全部ORACLE代碼。由于ORACLE部分和客戶應(yīng)用程序不能分別以進(jìn)程執(zhí) 行,所以O(shè)RACLE的代碼和用戶的數(shù)據(jù)庫應(yīng)用是單個(gè)進(jìn)程執(zhí)行。在單進(jìn)程環(huán) 境下的 ORACLE 實(shí)例,僅允許一個(gè)用戶可存取。例如在 MS-DOS 上運(yùn)行 ORACLE 。 多進(jìn)程ORACLE實(shí)例(又稱多用戶 ORACLE )使用多個(gè)進(jìn)程來執(zhí)行 ORACLE 的不同部分,對于每一個(gè)連接的用戶都有一個(gè)進(jìn)程。在多進(jìn)程系統(tǒng)中,進(jìn)程 分為兩類:用戶進(jìn)程和ORACLE進(jìn)程。當(dāng)一用戶運(yùn)行一應(yīng)用程序, 如PRO*C 程序(Pro*C是一種開發(fā)工具, 它把過程化語言
23、 C和非過程化語言 SQL最 完善地結(jié)合起來, 具有完備的過程處理能力,又能完成任何數(shù)據(jù)庫的處理品 任務(wù),使用戶可以通過編程完成各種類型的報(bào)表。 )或一個(gè)ORACLE工具(如文檔 SQL*PLUS ),為用戶運(yùn)行的應(yīng)用建立一個(gè)用戶進(jìn)程。 分為服務(wù)器進(jìn)程和后臺進(jìn)程。 1. 服務(wù)器進(jìn)程 用于處理用戶請求的進(jìn)程。處理過程如下: 1. 分析SQL命令并生成執(zhí)行方案。 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)程是在具有分布式選項(xiàng)時(shí)所使用的一個(gè)進(jìn)程, 自動(dòng)
24、地解決在分布式事務(wù)中的故障。一個(gè)結(jié)點(diǎn) RECO后臺進(jìn)程 自動(dòng)地連接到包含有懸而未決的分布式事務(wù)的其它數(shù)據(jù)庫中, RECO自動(dòng)地解決所有的懸而不決的事務(wù)。任何相應(yīng)于已處理 的懸而不決的事務(wù)的行將從每一個(gè)數(shù)據(jù)庫的懸掛事務(wù)表中刪 去。 當(dāng)一數(shù)據(jù)庫服務(wù)器的 RECO后臺進(jìn)程試圖建立同一遠(yuǎn)程服務(wù)器 的通信,如果遠(yuǎn)程服務(wù)器是不可用或者網(wǎng)絡(luò)連接不能建立時(shí), RECO自動(dòng)地在一個(gè)時(shí)間間隔之后再次連接。 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é)
25、緩 沖存儲區(qū)管理的一個(gè) ORACLE后臺進(jìn)程。當(dāng)緩沖區(qū)中的一緩沖 區(qū)被修改,它被標(biāo)志為“弄臟”,此進(jìn)程的主要任務(wù)是將“弄 臟”的緩沖區(qū)寫入磁盤,使緩沖區(qū)保持“干凈”。 ora_pmon_ora817 進(jìn)程監(jiān)控進(jìn)程:該進(jìn)程在用戶進(jìn)程岀現(xiàn)故障時(shí)執(zhí)行進(jìn)程恢復(fù), 負(fù)責(zé)清理存儲區(qū)和釋放該進(jìn)程所使用的資源。例:它要重置活 動(dòng)事務(wù)表的狀態(tài),釋放封鎖,將該故障的進(jìn)程的 ID 從活動(dòng)進(jìn)程 表中移去。PMON還周期地檢查調(diào)度進(jìn)程(DISPATCHER )和 服務(wù)器進(jìn)程的狀態(tài), 如果已死, 則重新啟動(dòng)(不包括有意刪除 的進(jìn)程)。 PMON有規(guī)律地被呼醒,檢查是否需要,或者其它 進(jìn)程發(fā)現(xiàn)需要時(shí)可以被調(diào)用。 ora_l
26、gwr_ora817 日志寫進(jìn)程:該進(jìn)程將日志緩沖區(qū)寫入磁盤上的一個(gè)日志文件, 它是負(fù)責(zé)管理日志緩沖區(qū)的一個(gè) ORACLE后臺進(jìn)程。 ora_ckpt_ora817 檢查點(diǎn)寫進(jìn)程:該進(jìn)程在檢查點(diǎn)岀現(xiàn)時(shí),對全部數(shù)據(jù)文件的標(biāo) 題進(jìn)行修改,指示該檢查點(diǎn)。 ora_smon_ora817 系統(tǒng)監(jiān)控進(jìn)程:該進(jìn)程實(shí)例啟動(dòng)時(shí)執(zhí)行實(shí)例恢復(fù),還負(fù)責(zé)清理 不再使用的臨時(shí)段。在具有并行服務(wù)器選項(xiàng)的環(huán)境下, SMON 對有故障 CPU或?qū)嵗M(jìn)行實(shí)例恢復(fù)。SMON進(jìn)程有規(guī)律地被 呼醒,檢查是否需要,或者其它進(jìn)程發(fā)現(xiàn)需要時(shí)可以被調(diào)用。 ORACLE系統(tǒng)進(jìn)程又 ora817表示實(shí)例 文檔 前面已經(jīng)提到過,ORACLE數(shù)據(jù)庫
27、都將數(shù)據(jù)存儲在數(shù)據(jù)文件中,在其部,數(shù) 據(jù)庫結(jié)構(gòu)提供了數(shù)據(jù)對數(shù)據(jù)文件的邏輯映射,允許不同類型的數(shù)據(jù)分開存放。 這些邏輯劃分稱為表空間,圖 1-4給出了詳細(xì)的ORACLE數(shù)據(jù)庫存儲結(jié)構(gòu)圖。 Database 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)是由一個(gè)或多個(gè)表空間組成,一個(gè)數(shù)據(jù)庫劃分為一個(gè)或 多個(gè)邏輯單位,該邏輯單位稱為表空間( tablespace )。一個(gè)表空間可將相關(guān) 的邏輯結(jié)構(gòu)組合在一起。 一個(gè)表空間由一
28、組分類段組成。 一個(gè)段由一組圍組成。 一個(gè)圍由一批數(shù)據(jù)庫塊組成。 一個(gè)數(shù)據(jù)庫塊對應(yīng)一個(gè)或多個(gè)物理塊。 每一個(gè)ORACLE數(shù)據(jù)庫包含有一個(gè)名為 SYSTEM的表空間,在數(shù)據(jù)庫建立 時(shí)自動(dòng)建立。在該表空間中包含有整個(gè)數(shù)據(jù)庫的系統(tǒng)信息數(shù)據(jù),最小的數(shù)據(jù) 庫可只需要SYSTEM表空間。表空間利用增加數(shù)據(jù)文件可擴(kuò)大表空間,表空1.3 存儲管理 1 Logical Camitflhl Ow. CofiHMBlovi 1M* nmfwij ORACUe 文檔 間的大小為組成該表空間的數(shù)據(jù)文件的大小的和。 ORACLE數(shù)據(jù)庫中一表空 間是由一個(gè)或多個(gè)物理數(shù)據(jù)文件組成,一個(gè)數(shù)據(jù)文件只可與一個(gè)表空間相聯(lián) 系。當(dāng)為一
29、表空間建立一數(shù)據(jù)文件時(shí), ORACLE建立該文件,分配指定的磁 盤空間容量。在數(shù)據(jù)文件初始建立后,所分配的磁盤不包含有任何數(shù)據(jù)。 一個(gè)模式(schema )為模式對象(schema object )的一個(gè)集合,每一個(gè)數(shù)據(jù) 庫用戶對應(yīng)一個(gè)模式。模式對象為直接引用數(shù)據(jù)庫數(shù)據(jù)的邏輯結(jié)構(gòu),模式對 象包含如表、視圖、索引、同義詞等結(jié)構(gòu)。模式對象是邏輯數(shù)據(jù)存儲結(jié)構(gòu), 每一種模式對象在磁盤上沒有一個(gè)相應(yīng)文件存儲其信息。一個(gè)模式對象邏輯 地存儲在數(shù)據(jù)庫的一個(gè)表空間中,每一個(gè)對象的數(shù)據(jù)物理地包含在表空間的 一個(gè)或多個(gè)數(shù)據(jù)文件中。例如:表、索引等模式對象,在指定表空間的數(shù)據(jù) 文件上為該對象分配多少空間。圖 1-5
30、說明模式對象、表空間和數(shù)據(jù)文件之間 的關(guān)系。 Drive k1 圖 1-5模式對象、表空間和數(shù)據(jù)文件之間的關(guān)系 模式與表空間之間的關(guān)系為:一個(gè)表空間可包含不同模式的對象,而一個(gè)模 式中的對象可包含在不同的表空間中。 1. 數(shù)據(jù)庫塊 數(shù)據(jù)庫塊(database block )是ORACLE邏輯分配空間的最底層,又稱邏輯 塊、頁或 ORACLE 塊。 數(shù)據(jù)庫塊是數(shù)據(jù)庫使用和分配空間的最小單元, 也可以說是使用的最小 I/O單 SYSTEM Table .J J1 1 TM 1 1 In血u i 1 MAEK i T 山 - Tablt i hudfijt - - ;Tab Is. Twte I T
31、ab叭 DATA 碘喚載 DATAFILES-1 DATAFILE2. DATAFILEL*J Drivru2+I 文檔 元,一個(gè)數(shù)據(jù)塊與磁盤上指定的物理空間大小相一致,一個(gè)數(shù)據(jù)庫塊對應(yīng)一 個(gè)或多個(gè)物理塊,塊的大小由參數(shù) db_block_size確定。 PCTFREE和PCTUSED是開發(fā)人員用來控制數(shù)據(jù)塊中可用插入和更新數(shù)據(jù) 的空閑空間大小的參數(shù)。 PCTFREE :設(shè)置數(shù)據(jù)塊中保持空閑的百分比。 PCTUSED :當(dāng)數(shù)據(jù)塊空閑空間達(dá)到 PCTFREE時(shí),此塊不允許插入數(shù)據(jù), 只能修改或刪除塊中的行,更新時(shí)可能使數(shù)據(jù)塊空閑空間變大,已用數(shù) 據(jù)空間變小,當(dāng)已用空間低于 PCTUSED時(shí),則可
32、以重新插入數(shù)據(jù)。 PCTFREE 及 PCTUSED 的選擇: 經(jīng)常做查詢(select)的表,應(yīng)使PCTFREE小些,盡量減少存儲空間浪 費(fèi)。 經(jīng)常做插入(insert)的表,應(yīng)使 PCTUSED大一些。 經(jīng)常做更新(update )的表,應(yīng)使 PCTFREE大一些,給更新留出更大 的空間,減少行移動(dòng)。 說明: 這兩個(gè)參數(shù)只能在創(chuàng)建、修改表和聚簇(數(shù)據(jù)段)時(shí)指定。另外,在創(chuàng)建、修 改索引(索引段)時(shí)只能指定 PCTFREE參數(shù)。 經(jīng)常做插入的表設(shè)置舉例: create table COMMINFOR SERIALNUMBER VARCHAR2(20) not n ull. ENTERHIST
33、IME DATE not null, ACCEPTBEGINTIME DATE null ACCEPTDURATION NUMBER(10) null ACCEPTERNO VARCHAR2(4) null CALLINGPHONENO VARCHAR2(20) null ACCEPTID NUMBER(10) null OPERATIONTYPE VARCHAR2(10) null APPELLANTNAME VARCHAR2(16) null 文檔 CONTACTID ) pctfree 10 pctused 90 initrans 2 maxtrans 255 TABLESPACE SE
34、RVICE_RPT_DAT 經(jīng)常做查詢的表設(shè)置舉例: create table AUTH constraint PK_AUTH primary key (AUTHID) ) pctfree 10 pctused 40 2. 圍( Extent ) 數(shù)據(jù)庫存儲空間分配的邏輯單位, 一個(gè)圍由一組數(shù)據(jù)塊組成, 圍是由段分配 的,分配的第一個(gè)圍稱初始圍,以后分配的圍稱增量圍。 Extent 是段中分配空間的邏輯單元。它有如下特性: 一個(gè)或多個(gè)圍構(gòu)成一個(gè)段。 當(dāng)段增長時(shí),圍自動(dòng)添加到段中。 DBA 可以手工把圍加到一個(gè)段中。 一個(gè)圍不能跨數(shù)據(jù)文件,即一個(gè)擴(kuò)展只屬于一個(gè)數(shù)據(jù)文件。 一個(gè)圍由一片連續(xù)的 OR
35、ACLE block 構(gòu)成。 每個(gè)段在定義時(shí)有許多存儲參數(shù)來控制圍的分配,主要是 STORGAE 參數(shù), 主要包括如下幾項(xiàng): INITIAL :分配給段的第一個(gè)圍的字節(jié)數(shù),缺省為 5 個(gè)數(shù)據(jù)塊。 NEXT :分配給段的下一個(gè)增量圍的字節(jié)數(shù),缺省為 5 個(gè)數(shù)據(jù)塊。 MAXEXTENTS :最大擴(kuò)展次數(shù)。 PCTINCREASE :每一個(gè)增量圍都在最新分配的增量圍上增長,這個(gè)百 分?jǐn)?shù)缺省為 50 ,建表時(shí)通常設(shè)置為 0,建表空間時(shí)為 1%。 圍在分配時(shí),遵循如下分配方式: 初始創(chuàng)建時(shí),分配 INITIAL 指定大小的區(qū)。 空間不夠時(shí),按 NEXT 大小分配第二個(gè)區(qū)。 再不夠時(shí),按 NEXT + N
36、EXT *PCTINCREASE 分配。 可以對表、聚集、索引、回滾段、表空間等實(shí)體設(shè)置存儲參數(shù)。 3. 段 NUMBER(10) null ( AUTHID DESCRIPTION NUMBER(10) VARCHAR2(50) not null, null TABLESPACE SERVICE_RPT_DAT 文檔 是表空間中一個(gè)指定類型的邏輯存儲結(jié)構(gòu),它由一個(gè)或多個(gè) Extent 組成,段 將占用并增長存儲空間, 但是一個(gè)段不能跨越表空間, ORACLE 中有數(shù)據(jù)段、 索引段、 臨時(shí)段、回滾段和自舉段 (包含打開數(shù)據(jù)庫時(shí)要裝入的數(shù)據(jù)字典表) 。 當(dāng)執(zhí)行建表命令時(shí),系統(tǒng)將自動(dòng)創(chuàng)建一個(gè)段,若
37、沒有指定存儲參數(shù)子句 storage , 則系統(tǒng)會用相應(yīng)表空間的 storage , 當(dāng)初始區(qū)用完后, 系統(tǒng)會按 next 和 pctincrease 的值分配新的區(qū)。 在這里要講一個(gè)比較重要的概念:回滾段。回滾段是當(dāng)某事務(wù)修改一個(gè)數(shù)據(jù) 塊時(shí),用以存放數(shù)據(jù)以前映像信息的數(shù)據(jù)段。回滾段中的信息用以保存讀連 續(xù)性,并進(jìn)行事務(wù)回滾和事務(wù)恢復(fù)。例如,如果事務(wù)通過把一列的關(guān)鍵值從 10 改為 20 來修改數(shù)據(jù)塊,則原值 10 要存放于回滾段中,而數(shù)據(jù)塊將具有新 值 20 。如果事務(wù)被回滾,則值 10 從回滾段拷回?cái)?shù)據(jù)塊。事務(wù)產(chǎn)生的重做記 錄保證在事務(wù)提交或回滾之前保持在回滾段中,而一個(gè)事務(wù)只能用一個(gè)回滾
38、 段存放其所有的重做記錄,因此,如果回滾段大小配置不恰當(dāng),當(dāng) ORACLE 執(zhí)行一個(gè)大的事務(wù)時(shí),就會出現(xiàn)回滾段溢出的錯(cuò)誤。所以設(shè)置回滾段大小是 一個(gè)比較重要的問題,這取決于數(shù)據(jù)庫應(yīng)用的主要事務(wù)模式(穩(wěn)定的平均事 務(wù)速度、頻繁大型事務(wù)、不頻繁大型事務(wù)),并可通過一些測試來確定。 這里還有另外一個(gè)概念:臨時(shí)段。用于以下 SQL 操作: CREATE INDEX 帶 DISTINCT , ORDER BY,GROUP BY ,UNION , INTERSECT 和 MINUS 子句的 SELECT 語句 無索引的 JION 語句 某些相互關(guān)聯(lián)的子查詢 了解了邏輯結(jié)構(gòu)后,下面介紹數(shù)據(jù)庫中存儲對象。 1
39、33 表( Table) 1. 表的組成 表是數(shù)據(jù)庫的最基本的邏輯結(jié)構(gòu),一切數(shù)據(jù)都存放在表中,一個(gè) ORACLE數(shù) 據(jù)庫就是由若干個(gè)數(shù)據(jù)表組成。其它數(shù)據(jù)庫對象都是為了用戶很好地操作表 中的數(shù)據(jù)。表是關(guān)系模型中反映實(shí)體與屬性關(guān)系的二維表格,它由列和行組 成,通過行與列的關(guān)系,表達(dá)出了實(shí)體與屬性的關(guān)系,如圖 1-6所示。 電誦門 DDE 址押転僧懸 a 粘半路廿尋 g片 中國工商銀行&806047 公主墳1號 35007356 友諒路27 主關(guān)魏竽心 対/竽段 圖 1-6表(Table )的組成 文檔 表的組成部分有: 列/域 /字段:表的容,也就是實(shí)體的各個(gè)屬性,組成了表的各個(gè)列。 列名
40、:列的名稱。 長度:該列所能容納的最大數(shù)據(jù)位數(shù)。 類型:該列存儲的數(shù)據(jù)類型,常用數(shù)據(jù)類型如表 40652781-0所示。 關(guān)鍵字:該列能唯一表示一行容,貝U稱該列為關(guān)鍵字。 非空列:該列值是不能為空的。 常用數(shù)據(jù)類型 數(shù)據(jù)類型 說明 串長度 Char (長度) 定長字符串 255 Varchar (長度) 變長字符串 2000 Number (精度,比例) 數(shù)字 Date 日期時(shí)間 Long (長度) 大型可變長字符串 21 億 行/記錄:表中所有列組合在一起形成的一條信息,稱之為一行或一條記錄。 所屬表:記錄一定是歸屬于某一表的。文檔 行號:每條記錄在數(shù)據(jù)庫中的一個(gè)定位位置。在 ORACLE
41、 數(shù)據(jù)庫中,每 表有一系統(tǒng)提供的偽列來定位每條記錄。 記錄長度:該記錄所有非空列的長度求和得出的字節(jié)數(shù)。 2. 建表命令 建表命令如下: CREATE TABLE tablename (column1 datatype DEFAULT expression constraint, column1 datatype DEFAULT expression constraint, STORAGE 子句 其他子句 ; 建表舉例: create table AUTOCALLLOG PCTFREE 10 PCTUSED 90 STORAGE ( INITIAL 10M NEXT 10M MINEXTENT
42、S 2 MAXEXTENTS 500 pctincrease 0 ); 3. 刪除表中數(shù)據(jù) 刪除表中數(shù)據(jù)有以下兩種方式:( ID VARCHAR2(20) not null , CityId NUMBER(4) NULL TABLESPACE SERVICE_HIST_DAT 文檔 Delete :刪除數(shù)據(jù)時(shí),數(shù)據(jù)庫需要寫日志, ORACLE數(shù)據(jù)庫還需要占用 回滾段,每次事務(wù)越大,對數(shù)據(jù)庫的沖擊越大,所以在刪除或者更新數(shù) 據(jù)時(shí),一定要注意控制事務(wù)的大小。 ORACLE數(shù)據(jù)庫在刪除或更新數(shù)據(jù) 時(shí),where條件中加rownum控制每次刪除或更新的數(shù)量,如: delete from t_my_ta
43、ble where . and row num create table emp (eno char(4) con stra int e1 primary key , en ame char(8) not n ull, sal nu mber(8,2) con stra int ck1 check (sal between 5000 and 10000), mgr char(4), 文檔 dno char(2) con stra int d2 references dep(d no) on delete cascade ); 引用完整性約束時(shí)需要注意以下幾點(diǎn): (1) 先建主表,后從表。 (2
44、) 從表引用的必須是主表的主碼或定義了唯一性約束的列。 (3) 從表的外來碼值必須匹配與主表的引用碼的值 (4) 當(dāng)刪除主表記錄時(shí),從表指定了 on delete cascade子句,連帶刪除從 表記錄,否則,若從表中有對應(yīng)記錄 ,則不能刪除主表記錄。 1. 視圖(View) 視圖,數(shù)據(jù)中表的窗口,在表上的查詢所形成的一個(gè)數(shù)據(jù)集體。通過視圖, 你將看到你所需要的信息,而排除其它不關(guān)心的容。 將表中所需要的列和行選取出來傳遞給用戶。 不是真正將數(shù)據(jù)重新復(fù)制一遍,不占用存儲空間。 不僅在表的基礎(chǔ)上建立,還可在視圖的基礎(chǔ)之上再建立視圖。 建立視圖主要基于: 保護(hù)數(shù)據(jù)安全,防止數(shù)據(jù)泄露。 簡化數(shù)據(jù)查詢
45、方式,建立有效的查詢。 保持?jǐn)?shù)據(jù)獨(dú)立性,保證程序不會隨著數(shù)據(jù)的位置變化、名稱變化而需要 修改。 說明: ORACLE數(shù)據(jù)庫的視圖請參考“附錄 A ORACLE 數(shù)據(jù)字典與視圖”。 2. 索引(Index) 索引是與表相關(guān)的一種選擇結(jié)構(gòu)。索引可建立在一表的一列或多列上,一旦 建立,由ORACLE自動(dòng)維護(hù)和使用,對用戶是完全透明的。索引是邏輯地和 物理地獨(dú)立于數(shù)據(jù),它們的建立或刪除對表沒有影響,所有應(yīng)用可繼續(xù)處理。 關(guān)于索引需要注意以下幾點(diǎn): 2.4 索引是一種數(shù)據(jù)庫對象,并不改變表的邏輯結(jié)構(gòu),而是在物理存儲結(jié)構(gòu) 上增加一些輔助信息,以提高查詢速度。 文檔 2.5 當(dāng)表中記錄增加或刪除時(shí),索引結(jié)構(gòu)
46、均要發(fā)生變化,因此,當(dāng)有大量數(shù) 據(jù)裝入數(shù)據(jù)庫時(shí),應(yīng)該先裝入數(shù)據(jù),后建立索引, 以提高數(shù)據(jù)裝入速度。 2.6 只有當(dāng)按指定的索引列的值查找或按索引列的順序存取表時(shí),才可利用 索引提高性能。 說明: 當(dāng)索引被刪除后,原分配給索引的數(shù)據(jù)塊將全部返回給索引所在的表空間 建立索引可以: 加快查詢速度。 確保唯一性特征。可以為表中某一列建一個(gè)唯一性索引,那么如果有人 企圖向表中插入這樣一行記錄,即它在這個(gè)有索引的列的數(shù)值與以前已 有值重復(fù),則這個(gè)操作就會失敗。 3. 同義詞(Synonym ) 同義詞是表、視圖或其它數(shù)據(jù)庫實(shí)體的一個(gè)別名??梢杂门c存取表、視圖等 實(shí)體同樣的方法來存取別名。 簡單性(用戶名.
47、表名T同義詞名)。 表的獨(dú)立性(只需修改同義詞的定義,避免修改大量應(yīng)用程序)。 4. 序列(Sequenee ) 序列是一個(gè)數(shù)據(jù)庫對象, 利用它可以生成唯一的整數(shù), 序列的值是由 ORACLE 程序自動(dòng)生成。 創(chuàng)建序列: SQLcreate seque nee zxk in creme nt by 10 start with 10 maxvalue 1000 cycle ; 上例說明: in creme nt by 10 增量值為 10。 start with 10指定生成的第一個(gè)序列號為 10。 maxvalue 1000指定序列可生成的最大值。 cycle 序列上升到最大值 1000 后,
48、繼續(xù)由開始值 10 開始生成。 引用序列: 序列當(dāng)前值: zxk.currval 文檔 序列下一個(gè)值: zxk.nextval 5. 數(shù)據(jù)庫鏈( Database Link ) 數(shù)據(jù)庫鏈?zhǔn)潜镜財(cái)?shù)據(jù)庫中的一個(gè)對象,利用它可以存取遠(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ù)庫上的用戶 icdmain ,口令為 icd ,建立 一名為 icdma
49、inold 的數(shù)據(jù)庫鏈。 SQLcreate database link icdmainold connect to icdmain identified by icd using icd_main ; 下面給出使用數(shù)據(jù)庫鏈進(jìn)行查詢、插入、修改、刪除舉例: SQLselect * from empicdmainold; SQLinsert into empicdmainold values(0001,zxk,5000,0010,00); SQLupdate empicdmainold set sal=sal+1000; SQLdelete from empicdmainold where en
50、ame=aaaa; 第2章 管理 ORACLE 數(shù)據(jù)庫 本章主要講述管理 ORACLE 數(shù)據(jù)庫的一些必備知識。 3. 基本概念 2.4.3 數(shù)據(jù)字典 數(shù)據(jù)字典是 ORACLE 數(shù)據(jù)庫的最重要的部分之一, 是由一組只讀的表及其視 文檔 圖所組成。這些表和視圖是數(shù)據(jù)庫被建立同時(shí)由數(shù)據(jù)庫系統(tǒng)建立起來的,起 著系統(tǒng)狀態(tài)的目錄表的作用。數(shù)據(jù)字典描述表、列、索引、用戶、訪問權(quán)以 及數(shù)據(jù)庫中的其它實(shí)體,當(dāng)其中的一個(gè)實(shí)體被建立、修改或取消時(shí),數(shù)據(jù)庫 將自動(dòng)修改數(shù)據(jù)字典。因此,數(shù)據(jù)字典總是包含著數(shù)據(jù)庫的當(dāng)前描述。數(shù)據(jù) 字典提供有關(guān)該數(shù)據(jù)庫的信息,可提供的信息如下: ORACLE 用戶的名字。 每一個(gè)用戶所授的特
51、權(quán)和角色。 模式對象的名字 (表、視圖、索引、同義詞等 )。 關(guān)于完整性約束的信息。 列的缺省值。 有關(guān)數(shù)據(jù)庫中對象的空間分布信息及當(dāng)前使用情況。 審計(jì)信息 (如誰存取或修改各種對象 )。 其它一般的數(shù)據(jù)庫信息。 可用 SQL 存取數(shù)據(jù)字典,由于數(shù)據(jù)字典為只讀,只允許查詢。數(shù)據(jù)字典中全 部基本表和用戶可存取視圖為 ORACLE 用戶 SYS 所持有,所有對象包含在 SYS 模式中,安全管理員對該要嚴(yán)格控制。 當(dāng) ORACLE 數(shù)據(jù)庫系統(tǒng)啟動(dòng)后,數(shù)據(jù)字典總是可用,它駐留在 SYSTEM 表 空間中。數(shù)據(jù)字典包含視圖集, 在許多情況下,每一視圖集有三種視圖包含 有類似信息, 彼此以前綴相區(qū)別,前綴
52、為 USER 、ALL 和 DBA 。 前綴為 USER 的視圖,為用戶視圖,是在用戶的模式。 前綴為 ALL 的視圖為擴(kuò)展的用戶視圖(為用戶可存取的視圖)。 前綴為 DBA 的視圖為 DBA 的視圖(為全部用戶可存取的視圖)。 常用數(shù)據(jù)字典與視圖 ORACLE 數(shù)據(jù)庫有三個(gè)可查看系統(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_
53、tablespaces ) 除三個(gè)系統(tǒng)用戶以外的用戶登錄可查看 user_tablespaces 表。 dba_tablespaces ( user_tablespaces )表可查看本數(shù)據(jù)庫的表空間,它存放 各個(gè)表空間的屬性,包括:表空間名、表空間宿主、以及存儲參數(shù)( initial 、 next 、 maxextents 、minextents 、 blocks 等)等。 (2) dba_data_files ( user_data_files ) 該表可查看數(shù)據(jù)庫所有數(shù)據(jù)庫數(shù)據(jù)文件,它存放了各個(gè)數(shù)據(jù)文件的屬性,包 括:表空間名、宿主、數(shù)據(jù)文件名、大小、可用空間以及 ID 號等。 (3)
54、dba_segments ( user_segments ) 該表可查看數(shù)據(jù)庫所有段,它存放了各個(gè)段的屬性,包括:段名、表空間名、 宿主、大小、第一個(gè)區(qū)間的塊號等。 文檔 (4) dba_rollback_segs 該表可查看數(shù)據(jù)庫所有回滾段,它存放了各個(gè)數(shù)據(jù)庫回滾段的屬性,包括: 回滾段名、 表空間名、 宿主、 存儲參數(shù) ( initial 、next 、maxextents 、minextents 等)、第一個(gè)區(qū)間的塊號、占用數(shù)據(jù)庫文件 ID 號。 (5) dba_extents 該表可查看數(shù)據(jù)庫所有區(qū)間,它存放了各個(gè)區(qū)間的屬性,包括:區(qū)間 ID 、使 用段ID、所屬對象(object )
55、名、宿主、占用數(shù)據(jù)庫文件ID(對應(yīng)dba_data_files 中的 ID 號)、塊號等。 常見應(yīng)用:查看各對象的區(qū)間是否已達(dá)到了最大區(qū)間數(shù)量( maxextents )。 select object_name,sum(*) from dba_extents group by object_name; (6) dba_free_spaces 可查看數(shù)據(jù)庫表空間的使用情況,如查看各數(shù)據(jù)庫表空間的可用空間: select tablespace_name,sum(bytes) from dba_free_spaces group by talbespace_name; 以上為常用的數(shù)據(jù)字典,可在維護(hù)
56、中靈活應(yīng)用。在維護(hù)過程中,第一步應(yīng)查 看數(shù)據(jù)庫管理系統(tǒng)的運(yùn)行日志,日志文件的存放路徑應(yīng)版本不同而不同,一 般 : ORACLE workgroup 版 , 日 志 文 件 存 放 路 徑 為 : $ORACLE_HOME/rdbms/alert_SID.log ,OPS 版, 日志文件存放路徑為:文檔 $ORACLE_HOME/././admin/bdump/alert_SIDog 。 可用命令:tail logfile name 查看,或用 vi logfile name, 按shift+g 至U文件尾進(jìn)行查看。 說明: 附錄A詳細(xì)列出了 ORACLE的數(shù)據(jù)字典與視圖,供參考。 2.1.2
57、事務(wù)管理 3. 事務(wù)(tran sactio n) 數(shù)據(jù)庫是多用戶的共享資源,在多個(gè)用戶并行地存取數(shù)據(jù)時(shí),應(yīng)對數(shù)據(jù)做并 發(fā)控制,以免存取不正確的數(shù)據(jù),破壞數(shù)據(jù)庫的一致性。 數(shù)據(jù)庫的任何狀態(tài)變化都要能反映客觀世界的某種真實(shí)存在的合理狀態(tài),反 映到數(shù)據(jù)庫中,就是數(shù)據(jù)要滿足一定的約束條件,這種約束條件就是一致性 約束。 有時(shí),為了完成復(fù)雜的修改動(dòng)作,往往需要臨時(shí)破壞數(shù)據(jù)庫的狀態(tài)一致性。 因此,就有必要把這種對數(shù)據(jù)庫復(fù)雜修改的一連串動(dòng)作序列合并起來,這就 是事務(wù)。 事務(wù)是數(shù)據(jù)庫維護(hù)數(shù)據(jù)一致性的單位,它將數(shù)據(jù)庫從一致性狀態(tài)轉(zhuǎn)換成新的 一致性狀態(tài)。 4. 事務(wù)提交 提交事務(wù):即將在事務(wù)中由 SQL語句所執(zhí)
58、行的改變永久化。數(shù)據(jù)庫數(shù)據(jù)的更 新操作提交以后,這些更新操作就不能再撤消。 ORACLE的提交命令如下: SQLCOMMJT 5. 事務(wù)回退 事務(wù)回退的含義是:撤消未提交事務(wù)中的 SQL語句所作的對數(shù)據(jù)修改。 ORACLE允許撤消未提交的整個(gè)事務(wù),也允許撤消部分 (需設(shè)置保存點(diǎn))。回 退之后,數(shù)據(jù)庫將恢復(fù)事務(wù)開始時(shí)的狀態(tài)或保留點(diǎn)狀態(tài)?;赝嗣钊缦拢?SQLROLLBACK 6. 保存點(diǎn) 保存點(diǎn)就是將一個(gè)事務(wù)劃分成為若干更小的部分,以便在必要時(shí),使當(dāng)前事 務(wù)只回退一部分,而其余工作得到保留。其格式為: SAVEPOINT 保存點(diǎn)名; ROLLBACK TO 保存點(diǎn)名; (1) 數(shù)據(jù)庫管理員 (D
59、BA) 任何一個(gè)系統(tǒng)都需要一個(gè)負(fù)責(zé)管理和維護(hù)的人員,負(fù)責(zé)管理和維護(hù) ORACLE 數(shù)據(jù)庫的人就是文檔 數(shù)據(jù)庫管理員( DataBase Administrator ,簡稱 DBA )。 每個(gè) ORACLE 數(shù)據(jù)庫至少要有一名專職的數(shù)據(jù)庫管理員,其職責(zé)如下: 保證數(shù)據(jù)的完整性和一致性。 提高執(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)初始安裝后,存在以下三個(gè)具有 D
60、BA 特權(quán)的數(shù)據(jù)庫用戶: internal 用戶。 sys 用戶。 system 用戶。 2.5.1 DBA 的操作系統(tǒng) 在進(jìn)行許多數(shù)據(jù)庫的管理任務(wù)時(shí),必須能夠執(zhí)行操作系統(tǒng)命令,所以需要有 個(gè)操作系統(tǒng),以便能完成操作系統(tǒng)的操作,此時(shí)要求此具有比一般數(shù)據(jù)庫用 戶更多的操作系統(tǒng)權(quán)限或存取特權(quán)。 數(shù)據(jù)庫的啟動(dòng)( startup )和關(guān)閉( shutdown )是重要的管理任務(wù),只有通過 internal 用戶連接到 ORACLE 數(shù)據(jù)庫,才能執(zhí)行啟動(dòng)和關(guān)閉。對于不同的操 作系統(tǒng),必須完成下列要求之一,才能用 internal 登錄 ORACLE 。 你的操作系統(tǒng)有允許你作為 internal 登錄 ORAC
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 全國清華版信息技術(shù)小學(xué)五年級上冊新授課 第6課 蜻蜓點(diǎn)水 -制作動(dòng)作漸變動(dòng)畫 說課稿
- Unit 2 Different families Part A Lets talk(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級上冊
- 2025年度肉牛產(chǎn)業(yè)鏈綠色低碳發(fā)展項(xiàng)目買賣合同3篇
- Unit 1 Science and Scientists Discovering Useful Structures(說課稿+學(xué)案) 高中英語同步備課系列人教版2019選擇性必修第二冊
- 第五單元第二課《說說電話》(說課稿)-2023-2024學(xué)年三年級下冊綜合實(shí)踐活動(dòng)廣州版
- 人教版七年級歷史與社會下冊:6.2.1 水鄉(xiāng)孕育的城鎮(zhèn)說課稿
- 26手術(shù)臺就是陣地說課稿-2024-2025學(xué)年三年級上冊語文統(tǒng)編版
- 全國川教版信息技術(shù)八年級下冊第三單元第1節(jié)《數(shù)據(jù)與數(shù)據(jù)分析》說課稿
- 2025年投標(biāo)保證金合同范本撰寫與示范案例6篇
- 個(gè)性化離婚合同模板:雙方協(xié)商一致版本版B版
- 錄用通知書郵件
- 影響健康的主要因素課件
- 小學(xué)三年級數(shù)學(xué)軸對稱圖形練習(xí)題
- 【自考練習(xí)題】大連交通大學(xué)概率論與數(shù)理統(tǒng)計(jì)真題匯總(附答案解析)
- 布袋除塵器分部分項(xiàng)驗(yàn)收記錄表完整
- 新編劍橋商務(wù)英語(初級)學(xué)生用書-答案
- 公路工程質(zhì)量鑒定辦法
- 水果購銷合同模板(精選5篇)
- 板框壓濾機(jī)方案具體方案模板
- 鉆探工程編錄方法課件
- 物理奧賽:力學(xué)物體的平衡31-優(yōu)質(zhì)課件
評論
0/150
提交評論