




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第十章
日動售檢票中央計(jì)算機(jī)系統(tǒng)
上海地鐵運(yùn)營有限公司軌道交通票務(wù)中心
2008年5月
目錄
1計(jì)算機(jī)系統(tǒng)概述4
1.1系統(tǒng)控制概述4
1.2數(shù)據(jù)庫概述4
1.2.1數(shù)據(jù)庫定義4
1.2.2數(shù)據(jù)庫的發(fā)展4
1.2.3ORACLE系統(tǒng)5
1.3數(shù)據(jù)分析概述5
1.4計(jì)算機(jī)網(wǎng)絡(luò)概述5
2自動售檢票中央慷作系統(tǒng)原理5
2.1備份工具的使用5
2.2操作系統(tǒng)原理5
2.3通信原理5
2.4中央計(jì)算機(jī)系統(tǒng)5
2.5基本邏輯門電路功能5
2.6觸發(fā)器、計(jì)數(shù)器5
2.7計(jì)算機(jī)系統(tǒng)原理5
2.8UNIX基本命令和基本操作5
3自動售檢票中央數(shù)據(jù)庫5
3.1ORACLE數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)5
3.1.1ORACLE實(shí)例的進(jìn)程結(jié)構(gòu)和內(nèi)存結(jié)構(gòu)6
3.1.2后臺進(jìn)程的功能:6
3.2SQL語言基礎(chǔ)7
3.2.1SQL語言的特點(diǎn)7
3.2.2基本的SQL語句8
3.2.3編寫基本的SQLSELECT語句9
3.3存儲結(jié)構(gòu)管理11
3.3.1表空間的管理12
3.3.1.1管理表空間的原則12
3.3.1.2創(chuàng)建表空間12
3.3.1.3使用只讀表空間14
3.3.1.4查看表空間信息14
3.3.1.5刪除表空間15
3.3.2管理還原數(shù)據(jù)16
3.32.1還原段16
3.3.2.2自動還原管理18
3.3.2.3獲取還原段信息23
3.4模式對象管理24
3.4.1表24
3.4.1.1表的結(jié)構(gòu)24
3.4.1.2創(chuàng)建表25
34.1.3修改表27
3.41.4刪除表27
3.4.2索引29
3.4.2.1概念29
3.4.2.2索引分類29
3.4.2.3創(chuàng)建索引31
3.4.2.4修改索引35
3.4.2.5刪除索引37
3.4.3聚簇38
3.4.3.1聚簇概念38
3.4.3.2創(chuàng)建聚簇索引38
3.4.3.3散列聚簇39
3.4.4視圖40
3.4.4.1視圖的概念40
3.4.42視圖的創(chuàng)建40
3.4.4.3視圖的查詢、修改與刪除41
3.4.5同義詞和序列43
3.4.5.1同義詞43
3.4.5.2序列43
3.5安全管理44
3.5.1管理用戶44
3.5.1.1用戶與安全性44
3.5.1.2創(chuàng)建新用戶45
3.5.1.3刪除用戶47
3.5.1.4獲取用戶信息47
3.5.2管理權(quán)限48
3.5.2.1權(quán)限的定義48
35.2.2權(quán)限的種類48
3.5.2.3系統(tǒng)權(quán)限48
3.5.2.4對象權(quán)限50
3.5.2.5獲取權(quán)限信息53
3.5.3管理角色53
3.5.3.1角色的定義53
3.5.3.2創(chuàng)建角色54
3.5.3.3預(yù)定義角色56
3.5.3.4給用戶分配角色57
3.5.3.5設(shè)置缺省角色58
3.5.3.6啟用和禁用角色58
3.5.3.7撤銷用戶角色59
3.5.3.8刪除角色59
3.6備份與恢復(fù)管理59
3.6.1使用RMAN備份數(shù)據(jù)庫60
3.6.1.1RMAN環(huán)境的基本操作60
3.6.1.2使用backup命令創(chuàng)建備份集60
3.6.1.3歸檔重做日志文件的備份65
3.6.1.4復(fù)制整個數(shù)據(jù)庫65
3.6.1.5制作增量備份66
3.6.1.6在N0ARCHIVEL0G模式下進(jìn)行備份67
3.6.1.7自動備份RMAN控制文件68
3.6.1.8監(jiān)視RMAN備份68
3.6.1.9其他RMAN問題69
3.6.2使用RMAN完全恢夏69
3.6.2.1介質(zhì)恢復(fù)69
3.6.2.2使用RMAN執(zhí)行還原和數(shù)據(jù)文件介質(zhì)恢復(fù)70
3.6.2.3使用RMAN還原ARCHIVELOG模式下的數(shù)據(jù)庫70
3.6.2.4將數(shù)據(jù)文件還原到新位置71
3.6.2.5使用RMAN恢復(fù)表空間72
3.6.2.6使用RMAN重新定位表空間72
3.6.3RMAN不完全恢復(fù)73
3.6.3.1不完全恢更概覽73
3.6.3.2使用RMAN進(jìn)行數(shù)據(jù)庫的不完全恢復(fù)74
4數(shù)據(jù)分析76
4.1自動售檢票系統(tǒng)與有關(guān)專業(yè)的借口要求76
4.276
4.3錯誤!未定義書簽。
4.4錯誤!未定義書簽。
4.5錯誤!未定義書簽。
4.6錯誤!未定義書簽。
4.7錯誤!未定義書簽。
4.8錯誤!未定義書簽。
5自動售檢票中央網(wǎng)絡(luò)系統(tǒng)76
計(jì)算機(jī)系統(tǒng)概述
系統(tǒng)控制概述
數(shù)據(jù)庫概述
數(shù)據(jù)庫定義
數(shù)據(jù)庫是依照某種數(shù)據(jù)模型組織起來并存放二級存儲器中的數(shù)據(jù)集合。這種數(shù)據(jù)集合具有
如下特點(diǎn):盡可能不重復(fù),以最優(yōu)方式為某個特定組織的多種應(yīng)用服務(wù),其數(shù)據(jù)結(jié)構(gòu)獨(dú)立于使
用它的應(yīng)用程序,對數(shù)據(jù)的增、冊IJ、改和檢索由統(tǒng)一軟件進(jìn)行管理和控制。從發(fā)展的歷史看,
數(shù)據(jù)庫是數(shù)據(jù)管理的高級階段,它是由文件管理系統(tǒng)發(fā)展起來的。
數(shù)據(jù)庫的基本結(jié)構(gòu)分三個層次,反映了觀察數(shù)據(jù)庫的三種不同角度.
(1)物理數(shù)據(jù)層。它是數(shù)據(jù)庫的最內(nèi)層,是物理存貯設(shè)備上實(shí)際存儲的數(shù)據(jù)的集合。這些數(shù)
據(jù)是原始數(shù)據(jù),是用戶加工的對象,由內(nèi)部模式描述的指令操作處理的位串、字符和字組成。
(2)概念數(shù)據(jù)層。它是數(shù)據(jù)庫的中間一層,是數(shù)據(jù)庫的整體邏輯表示。指出了每個數(shù)據(jù)的邏
輯定義及數(shù)據(jù)間的邏輯聯(lián)系,是存貯記錄的集合。它所涉及的是數(shù)據(jù)庫所有對象的邏輯關(guān)系,
而不是它們的物理情況,是數(shù)據(jù)庫管理員概念下的數(shù)據(jù)庫。
(3)邏輯數(shù)據(jù)層。它是用戶所看到和使用的數(shù)據(jù)庫,表示了一個或一些特定用戶使用的數(shù)據(jù)
集合,即邏輯記錄的集合。
數(shù)據(jù)庫不同層次之間的聯(lián)系是通過映射進(jìn)行轉(zhuǎn)換的。數(shù)據(jù)庫具有以下主要特點(diǎn):
(1)實(shí)現(xiàn)數(shù)據(jù)共享。數(shù)據(jù)共享包含所有用戶可同時存取數(shù)據(jù)庫中的數(shù)據(jù)?,也包括用戶可以用
各種方式通過接口使用數(shù)據(jù)庫,并提供數(shù)據(jù)共享。
(2)減少數(shù)據(jù)的冗余度。同文件系統(tǒng)相比,由于數(shù)據(jù)庫實(shí)現(xiàn)了數(shù)據(jù)共享,從而避免了用戶各
自建立應(yīng)用文件。減少了大量重復(fù)數(shù)據(jù),減少了數(shù)據(jù)冗余.維護(hù)了數(shù)據(jù)的一致性。
(3)數(shù)據(jù)的獨(dú)立性。數(shù)據(jù)的獨(dú)立性包括數(shù)據(jù)庫中數(shù)據(jù)庫的邏輯結(jié)構(gòu)和應(yīng)用程序相互獨(dú)立,也
包括數(shù)據(jù)物理結(jié)構(gòu)的變化不影響數(shù)據(jù)的邏輯結(jié)構(gòu)。
(4)數(shù)據(jù)實(shí)現(xiàn)集中控制。文件管理方式中,數(shù)據(jù)處于?一種分散的狀態(tài),不同的用戶或同一用
戶在不同處理中其文件之間亳無關(guān)系。利用數(shù)據(jù)庫可對數(shù)據(jù)進(jìn)行集中控制和管理,并通過數(shù)據(jù)
模型表示各種數(shù)據(jù)的組織以及數(shù)據(jù)間的聯(lián)系。
(5)數(shù)據(jù)?致性和可維護(hù)性,以確保數(shù)據(jù)的安全性和可靠性。主要包括:①安全性控制:以
防止數(shù)據(jù)丟失、錯誤更新和越權(quán)使用;②完整性控制:保證數(shù)據(jù)的正確性、有效性和相容性;
③并發(fā)控制:使在同一時間周期內(nèi),允許對數(shù)據(jù)實(shí)現(xiàn)多路存取,又能防止用戶之間的不正常交
互作用;④故障的發(fā)現(xiàn)和恢復(fù):由數(shù)據(jù)庫管理系統(tǒng)提供一套方法,可及時發(fā)現(xiàn)故障和修復(fù)故障,
從而防止數(shù)據(jù)被破壞
數(shù)據(jù)庫的發(fā)展
數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ)。因此,對數(shù)據(jù)庫技術(shù)發(fā)展階段的劃分應(yīng)該以數(shù)據(jù)模
型的發(fā)展演變作為主要依據(jù)和標(biāo)志??傮w說來,數(shù)據(jù)庫技術(shù)從開始到現(xiàn)在一共經(jīng)歷了三個發(fā)展
階段:第一代是網(wǎng)狀、層次數(shù)據(jù)庫系統(tǒng),第二代是關(guān)系數(shù)據(jù)庫系統(tǒng),第三代是以面向?qū)ο髷?shù)據(jù)
模型為主要特征的數(shù)據(jù)庫系統(tǒng)。
第一代包括網(wǎng)狀和層次數(shù)據(jù)庫系統(tǒng),是因?yàn)樗鼈兊臄?shù)據(jù)模型雖然分別為層次和網(wǎng)狀模型,但實(shí)
質(zhì)上層次模型只是網(wǎng)狀模型的特例而已。這二者都是格式化數(shù)據(jù)模型,都是在60年代后期研究
和開發(fā)的,不論是體系結(jié)構(gòu)、數(shù)據(jù)庫語言,還是數(shù)據(jù)的存儲管理,都具有共同特征,所以它們
應(yīng)該劃分為一代。
第二代數(shù)據(jù)庫系統(tǒng)支持關(guān)系數(shù)據(jù)模型v關(guān)系模型不僅具有簡單、清晰的優(yōu)點(diǎn),而且有關(guān)系代數(shù)
作為語言模型,有關(guān)系數(shù)據(jù)理論作為理論基礎(chǔ)。因此關(guān)系數(shù)據(jù)庫具有形式基礎(chǔ)好、數(shù)據(jù)獨(dú)立性
強(qiáng)、數(shù)據(jù)庫語言非過程化等特點(diǎn),這些特點(diǎn)是數(shù)據(jù)庫技術(shù)發(fā)展到了第二代的顯著標(biāo)志。雖然關(guān)
系數(shù)據(jù)模型描述了現(xiàn)實(shí)世界數(shù)據(jù)的結(jié)構(gòu)和一些重要的相互狹系,但是仍然不足以抓住和表達(dá)數(shù)
據(jù)對象所具有的豐富而重要的語義,因而它屬于語法模型。
第三代數(shù)據(jù)庫系統(tǒng)的特征是數(shù)據(jù)模型更加豐富,數(shù)據(jù)管理功能更為強(qiáng)大,能夠支持傳統(tǒng)數(shù)
據(jù)庫難以支持的新的應(yīng)用需求。
ORACLE系統(tǒng)
1.ORACLE產(chǎn)品結(jié)構(gòu)及紐成
ORACLE系統(tǒng)是由以RDBMS為核心的一批軟件產(chǎn)品構(gòu)成.
2.ORACLE系統(tǒng)特點(diǎn)
ORACLE公司于1979年,首先推出基于SQL標(biāo)準(zhǔn)的關(guān)系數(shù)據(jù)庫產(chǎn)品,可在100多種硬件平
臺上運(yùn)行(所括微機(jī)、工作站、小型機(jī)、中型機(jī)和大型機(jī)),支持很多種操作系統(tǒng)。用戶的ORACLE
應(yīng)用可方便地從一種計(jì)算機(jī)配置移至另一種計(jì)算機(jī)配置上。ORACLE的分布式結(jié)構(gòu)可將數(shù)據(jù)和應(yīng)
用駐留在多臺計(jì)算機(jī)上,而相互間的通信是透明的。1992年6月ORACLE公司推出的0RACLE7
協(xié)同服務(wù)器數(shù)據(jù)庫,使關(guān)系數(shù)據(jù)庫技術(shù)邁上了新臺階。根泥TDG(國際數(shù)據(jù)集團(tuán))1992年全球
UNIX數(shù)據(jù)庫市場報告,ORACLE占市場銷售量50%。它之所以倍受用戶喜愛是因?yàn)樗幸韵峦怀?/p>
的特點(diǎn):
壬持大數(shù)據(jù)庫、多用戶的高性能的事務(wù)處理。ORACLE支持最大數(shù)據(jù)庫,其大小可到幾百千
兆,可充分利用硬件設(shè)備。支持大量用戶同時在同一數(shù)據(jù)上執(zhí)行各種數(shù)據(jù)應(yīng)用,并使數(shù)據(jù)爭用
最小,保證數(shù)據(jù)一致性。系統(tǒng)維護(hù)具有高的性能,ORACLE每天可連續(xù)24小時工作,正常的系
統(tǒng)操作(后備或個別計(jì)算機(jī)系統(tǒng)故障)不會中斷數(shù)據(jù)庫的使用??煽刂茢?shù)據(jù)庫數(shù)據(jù)的可用性,
可在數(shù)據(jù)庫級或在子數(shù)據(jù)庫級上控制。
ORACLE遵守?cái)?shù)據(jù)存取語言、操作系統(tǒng)、用戶接口和網(wǎng)絡(luò)通信協(xié)議的工業(yè)標(biāo)準(zhǔn)。所
以它是一個開放系統(tǒng),保護(hù)了用戶的投資。美國標(biāo)準(zhǔn)化和技術(shù)研究所(NIST)對ORACLE7s三RVER
進(jìn)行檢驗(yàn),100%地與ANSI/1S0SQL89標(biāo)準(zhǔn)的二級相兼容。
實(shí)施安全性控制和完整性控制。ORACLE為限制各監(jiān)控?cái)?shù)據(jù)存取提供系統(tǒng)可靠的
安全性。ORACLE實(shí)施數(shù)據(jù)完整性,為可接受的數(shù)據(jù)指定標(biāo)準(zhǔn)。
支持分布式數(shù)據(jù)庫和分布處理。ORACLE為了充分利用計(jì)算機(jī)系統(tǒng)和網(wǎng)絡(luò),允許將
處理分為數(shù)據(jù)庫服務(wù)器和客戶應(yīng)用程序,所有共享的數(shù)據(jù)管理由數(shù)據(jù)庫管理系統(tǒng)的計(jì)算機(jī)處理,
而運(yùn)行數(shù)據(jù)庫應(yīng)用的工作站集中于解釋和顯示數(shù)據(jù)。通過網(wǎng)絡(luò)連接的計(jì)算機(jī)環(huán)境,ORACLE將存
放在多臺計(jì)算機(jī)上的數(shù)據(jù)組合成?個邏輯數(shù)據(jù)庫,可被全部網(wǎng)絡(luò)用戶存取。分布式系統(tǒng)像集中
式數(shù)據(jù)庫一樣具有透明性和數(shù)據(jù)一致性.
具有可移植性、可兼容性利可連接性。由于ORACLE軟件可在許多不同的操作系統(tǒng)
上運(yùn)行,以致ORACLE上所尸發(fā)的應(yīng)用可移植到任何操作系統(tǒng),只需很少修改或不需修改。ORACLE
軟件同.工業(yè)標(biāo)準(zhǔn)相兼容,包括許多I:業(yè)標(biāo)準(zhǔn)的操作系統(tǒng),所開發(fā)應(yīng)用系統(tǒng)可在任何操作系統(tǒng)上
運(yùn)行??蛇B接性是指ORALCE允許不同類型的計(jì)算機(jī)和操作系統(tǒng)通過網(wǎng)絡(luò)可共享信息。
數(shù)據(jù)分析概述
計(jì)算機(jī)網(wǎng)絡(luò)概述
自動售檢票中央操作系統(tǒng)原理
備份工具的使用
操作系統(tǒng)原理
通信原理
中央計(jì)算機(jī)系統(tǒng)
基本邏輯門電路功能
觸發(fā)器、計(jì)數(shù)器
計(jì)算機(jī)系統(tǒng)原理
UNIX基本命令和基本操作
自動售檢票中央數(shù)據(jù)庫
ORACLE數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)
ORACLE數(shù)據(jù)庫系統(tǒng)為具有管理ORACLE數(shù)據(jù)庫功能的計(jì)算機(jī)系統(tǒng)。每一個運(yùn)行的
ORACLE數(shù)據(jù)庫與一個ORACLE實(shí)例(INSTANCE)相聯(lián)系。一個ORACLE實(shí)例為存取和控制一數(shù)據(jù)
庫的軟件機(jī)制。每一次在數(shù)據(jù)庫服務(wù)器上啟動一數(shù)據(jù)庫時,稱為系統(tǒng)全局區(qū)(SYSTEMGLOBAL
AREA)的一內(nèi)存區(qū)(簡稱SGA)被分配,有一個或多個ORACLE進(jìn)程被啟動。該SGA和ORACLE
進(jìn)程的結(jié)合稱為一個ORACLE數(shù)據(jù)庫實(shí)例。一個實(shí)例的SGA和進(jìn)程為管理數(shù)據(jù)庫數(shù)據(jù)、為該數(shù)據(jù)
庫一個或多個用戶服務(wù)而工作。
在ORACLE系統(tǒng)中,首先是實(shí)例啟動,然后由實(shí)例裝配(MOUNT)一數(shù)據(jù)庫。在松耦合系統(tǒng)
中,在具有ORACLEPARALLELSERVER選項(xiàng)時,單個數(shù)據(jù)庫可被多個實(shí)例裝配,即多個實(shí)例共
享同一物理數(shù)據(jù)庫。
ORACLE實(shí)例的進(jìn)程結(jié)構(gòu)和內(nèi)存結(jié)構(gòu)
進(jìn)程結(jié)構(gòu)
進(jìn)程是操作系統(tǒng)中的一種機(jī)制,它可執(zhí)行一系列的操作步。在有些操作系統(tǒng)中使用
作業(yè)(JOB)或任務(wù)(TASK)的術(shù)語。一個進(jìn)程通常有它自己的專用存儲區(qū)。ORACLE進(jìn)程的體系結(jié)
構(gòu)設(shè)計(jì)使性能最大。
ORACLE實(shí)例有兩種類型:單進(jìn)程實(shí)例和多進(jìn)程實(shí)例。
單進(jìn)程ORACLE(又稱單用戶ORACLE)是一種數(shù)據(jù)庫系統(tǒng),一個進(jìn)程執(zhí)行全部ORACLE
代碼。由于ORACLE部分和客戶應(yīng)用程序不能分別以進(jìn)程執(zhí)行,所以O(shè)RACLE的代碼和用戶的數(shù)
據(jù)庫應(yīng)用是單個進(jìn)程執(zhí)行。
在單進(jìn)程環(huán)境下的ORACLE實(shí)例,僅允許一個用戶可存取。例如在MS-DOS上運(yùn)行
ORACLE。
多詵程ORACLE實(shí)例(又稱多用戶ORACLE)使用多個進(jìn)程來執(zhí)行ORACLE的不同部
分,對于每一個連接的用戶都有一個進(jìn)程。
在多進(jìn)程系統(tǒng)中,進(jìn)程分為兩類:用戶進(jìn)程和ORACLE進(jìn)程。當(dāng)一用戶運(yùn)行一應(yīng)用程序,如
PRO*C程序或一個ORACLE工具(如SQL*PLUS),為用戶運(yùn)行的應(yīng)用建立一個用戶進(jìn)程。ORACLE
進(jìn)程又分為兩類:服務(wù)器進(jìn)程和后臺進(jìn)程。服務(wù)器進(jìn)程用于處理連接到該實(shí)例的用戶進(jìn)程的請
求。當(dāng)應(yīng)用和ORACELE是在同一臺機(jī)器上運(yùn)行,而不再通過網(wǎng)絡(luò),一般將用戶進(jìn)程和它相應(yīng)的
服務(wù)器進(jìn)程組合成單個的進(jìn)程,可降低系統(tǒng)開銷。然而,當(dāng)應(yīng)用和ORACLE運(yùn)行在不同的機(jī)器上
時,用戶進(jìn)程經(jīng)過一個分離服務(wù)器進(jìn)程與ORACLE通信。它可執(zhí)行下列任務(wù):
對應(yīng)用所發(fā)出的SQL語句進(jìn)行語法分析和執(zhí)行。
從磁盤(數(shù)據(jù)文件)中讀入必要的數(shù)據(jù)塊到SGA的共享數(shù)據(jù)庫緩沖區(qū)(該塊不在緩
沖區(qū)時),將結(jié)果返回給應(yīng)用程序處理。
系統(tǒng)為了使性能最好和協(xié)調(diào)多個用戶,在多進(jìn)程系統(tǒng)中使用一些附加進(jìn)程,稱為后
臺進(jìn)程。在許多操作系統(tǒng)中,后臺進(jìn)程是在實(shí)例啟動時自動地建立。一個ORACLE實(shí)例可以有許
多后臺進(jìn)程,但它們不是一直存在。后臺進(jìn)程的名字為:
DBWR數(shù)據(jù)庫寫入程序
LGWR日志寫入程序
CKPT檢查點(diǎn)
SMON系統(tǒng)監(jiān)控
PMON進(jìn)程監(jiān)控
ARCH歸檔
RECO恢復(fù)
LCKn封鎖
Dnnn調(diào)度進(jìn)程
Snnn服務(wù)器
每個后臺進(jìn)程與ORACLE數(shù)據(jù)庫的不同部分交互。
后臺進(jìn)程的功能:
DBWR進(jìn)程:該進(jìn)程執(zhí)行將緩沖區(qū)寫入數(shù)據(jù)文件,是負(fù)責(zé)緩沖存儲區(qū)管理的一個
ORACLE后臺進(jìn)程。當(dāng)緩沖區(qū)中的一緩沖區(qū)被修改,它被標(biāo)志為“弄臟”,DBWR的主要任務(wù)是將
“弄臟”的緩沖區(qū)寫入磁盤,使緩沖區(qū)保持“干凈”。由于緩沖存儲區(qū)的緩沖區(qū)填入數(shù)據(jù)庫或
被用戶進(jìn)程弄臟,未用的緩沖區(qū)的數(shù)目減少。當(dāng)未用的緩沖區(qū)下降到很少,以致用戶進(jìn)程要從
磁盤讀入塊到內(nèi)存存儲區(qū)時無法找到未用的緩沖區(qū)時,DBWR將管理緩沖存儲區(qū),使用戶進(jìn)程總
可得到未用的緩沖區(qū)。
ORACLE采用LRU(LEASTRECENTLYUSED)算法(最近最少使用算法)保持內(nèi)存中
的數(shù)據(jù)塊是最近使用的,使I/O最小。在下列情況預(yù)示DBWR要將弄臟的緩沖區(qū)寫入磁盤:
當(dāng)一個服務(wù)器近程將一緩沖區(qū)移入“弄臟”表,該弄臟表達(dá)到臨界長度時,該服務(wù)
進(jìn)程將通知DBWR進(jìn)行寫。:亥臨界長度是為參數(shù)DB-BLOCK-WRITE-BATCH的值的一半。
當(dāng)一個服務(wù)器業(yè)程在LRU表中查找DB-BLOCK-MAX-SCAN-CNT緩沖區(qū)時,沒有查到未
用的緩沖區(qū),它停止查找并通知DBWR進(jìn)行寫。
出現(xiàn)超時(每次3秒),DBWR將通知本身。
當(dāng)出現(xiàn)檢查點(diǎn)時,LG*R將通知DRWR
在前兩種情況下,DBWR將弄臟表中的塊寫入盛盤,每次可寫的塊數(shù)由初始化參數(shù)
DB-BLOCK-WRITE-BATC1I所指定。如果弄臟表中沒有該參數(shù)指定塊數(shù)的緩沖區(qū),DBWR從LLR表中
查找另外一個弄臟緩沖區(qū)。
如果DBWR在三秒內(nèi)未活動,則出現(xiàn)超時。在這種情況下DBWR對LRU表查找指定數(shù)
目的緩沖區(qū),將所找到任何弄臟緩沖區(qū)寫入磁盤。每當(dāng)出現(xiàn)超時,DBWR行找一個新的緩沖區(qū)組。
每次由DBWR查找的緩沖區(qū)的數(shù)目是為寢化參數(shù)DB-BLOCK-WRITE-BATCH的值的二倍。如果數(shù)據(jù)
庫空運(yùn)轉(zhuǎn),DBWR最終將全部緩沖區(qū)存儲區(qū)寫入磁盤。
在出現(xiàn)檢杳點(diǎn)時,LGWR指定一修改緩沖區(qū)表必須寫入到磁盆。DBWR將指定的緩沖
區(qū)寫入磁盤。
在有些平臺上,一個實(shí)例可有多個DBWR。在這樣的實(shí)例中,一些塊可寫入一磁盤,
另一些塊可寫入其它磁盤。參數(shù)DB-WRITERS控制DBWR進(jìn)程個數(shù)。
LGWR進(jìn)程:該進(jìn)程將日志緩沖區(qū)寫入磁盤上的一個日志文件,它是負(fù)責(zé)管理日志
緩沖區(qū)的一個ORACLE后臺進(jìn)程。LGWR進(jìn)程將自上次寫入磁盤以來的全部日志項(xiàng)輸出,LGWR輸
出:
當(dāng)用戶進(jìn)程提交一事務(wù)時寫入一個提交記錄。
每三秒將日忐緩沖區(qū)輸出。
當(dāng)日志緩沖區(qū)的1/3已滿時將日志緩沖區(qū)輸出。
當(dāng)DBWR將修改緩沖區(qū)寫入磁盤時則將日志緩沖區(qū)輸出。
LGWR進(jìn)程同步地寫入到活動的鏡象在線日志文件組。如果組中一個文件被刪除或
不可用,LGWR可繼續(xù)地寫入該組的其它文件。
日志緩沖區(qū)是一個循環(huán)緩沖區(qū)。當(dāng)LG*R將日志緩沖區(qū)的日志項(xiàng)寫入日志文件后,
服務(wù)器進(jìn)程可將新的日志項(xiàng)寫入到該日志緩沖區(qū)。LGWR通常寫得很快,可確保日志緩沖區(qū)總有
空間可寫入新的日志項(xiàng)。
注意:有時候當(dāng)需要更多的日志緩沖區(qū)時,LWGR在一個事務(wù)提交前就將日志項(xiàng)寫出,而這
些H志項(xiàng)僅當(dāng)在以后事務(wù)提交后才永久化。
SQL語言基礎(chǔ)
Oracle的日常管理是通過SQL程序進(jìn)行的,如進(jìn)行內(nèi)容杳詢、復(fù)制、插入表等操作。熟練
地進(jìn)行?SQL操作,可以顯著提高工作效率
SQL語言的特點(diǎn)
SQL語言集數(shù)據(jù)查詢(dataquery)、數(shù)據(jù)操縱(datamanipulation)、數(shù)據(jù)定義:data
definition)和數(shù)據(jù)控制[datacontrol)功能于一體,充分體現(xiàn)了關(guān)系數(shù)據(jù)語言的特點(diǎn)和優(yōu)
點(diǎn)。其主要特點(diǎn)包括:
1.綜合統(tǒng)~,
SQ【語言集數(shù)據(jù)定義語言DDL、數(shù)據(jù)操縱語言DHL、數(shù)據(jù)控制語言DCL的功能于一體,語言
風(fēng)格統(tǒng)一,可以獨(dú)立完成數(shù)據(jù)庫生命周期中的全部活動,包括定義關(guān)系模式、錄入數(shù)據(jù)以建立
數(shù)據(jù)庫、查詢、更新、維護(hù)、數(shù)據(jù)庫重構(gòu)、數(shù)據(jù)庫安全性控制等一系列操作要求,這就為數(shù)據(jù)
庫應(yīng)用系統(tǒng)開發(fā)提供了良好的環(huán)境,例如用戶在數(shù)據(jù)庫投入運(yùn)行后,還可根據(jù)需要隨時地逐步
地修改模式,并不影響數(shù)據(jù)庫的運(yùn)行,從而使系統(tǒng)具有良好的可擴(kuò)充性。
2.高度非過程化
非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操縱語言是面向過程的語言,用其完成某項(xiàng)請求,必須指定存取路
徑。而用SQL語言進(jìn)行數(shù)據(jù)操作,用戶只需提出“做什么”,而不必指明“怎么做”,因此用
戶無需了解存取路徑,存取路徑的選擇以及SQL語句的操作過程由系統(tǒng)自動完成。這不但大大
減輕了用戶負(fù)擔(dān),而且有利于提高數(shù)據(jù)獨(dú)立性。
3.面向集合的操作方式
SQL話言采用集合操作方式,不僅查找結(jié)果可以是元組的集合,而且一次插入、刪除、更
新操作的對象也可以是元組的集合。
非關(guān)系數(shù)據(jù)模型采用的是面向記錄的操作方式,任何一個操作其對象都是一條記錄。例如
查詢所有平均成績在80分以上的學(xué)生姓名,用戶必須說明完成該請求的具體處理過程,艮」如何
用循環(huán)結(jié)構(gòu)按照某條路徑一條一條地把滿足條件的學(xué)生記錄讀出來。
4.以同一種語法結(jié)構(gòu)提供兩種使用方式
SQL語言既是自含式語言,又是嵌入式語言。
作為自含式語言,它能夠獨(dú)立地用于聯(lián)機(jī)交互的使用方式,用戶可以在終端鍵盤上直接鍵
入SQL命令對數(shù)據(jù)庫進(jìn)行操作。作為嵌入式語言,SQL語句能夠嵌入到高級語言(例如C、PB)
程序中,供程序員設(shè)計(jì)程序時使用。而在兩種不同的使用方式下,SQL語言的語法結(jié)構(gòu)基本上
是一致的。這種以統(tǒng)一的語法結(jié)構(gòu)梃供兩種不同的使用方式的作法,為用戶提供了極大的靈活
性與方便性。
5.語言簡潔,易學(xué)易用
基本的SQL語句
語句說明
SELEC檢索數(shù)據(jù)庫中的數(shù)據(jù)
T
INSER在數(shù)據(jù)庫的表中分別輸入新行、更改現(xiàn)有行,和刪除不要的行。統(tǒng)稱為教據(jù)操
T縱語言(DML),
UPDAT
E
DELET
E
MERGE
GREAT在表中設(shè)置、更改和刪除數(shù)據(jù)結(jié)構(gòu)。統(tǒng)稱為數(shù)據(jù)定義語言(DDL)o
E
ALTER
DROP
RENAM
E
TRUNC
ATE
COMMI管理有DML語句執(zhí)行的更改.對數(shù)據(jù)進(jìn)行的更改可以被歸類到邏輯事務(wù)處理
T中。
ROLLB
ACK
SAVEP
OINT
GRANT授予或取消對Oracle數(shù)據(jù)庫和其中結(jié)構(gòu)的訪問權(quán)限。統(tǒng)稱為數(shù)據(jù)控制語言
REVOK(DCL)。
E
編寫基本的SQLSELECT語句
為了從數(shù)據(jù)庫中提取數(shù)據(jù),需要使用結(jié)構(gòu)查詢語言(SQL)SELECT語句。還需要對所顯示
的列進(jìn)行限制。
SQLSELECT語句的功能
SQLSELECT語句的功能
投影選擇
表1
SELECT語句可以從數(shù)據(jù)庫中檢索信息。使用SELECT語句,可以執(zhí)行以下任務(wù)(如圖所示):
投影:如果要查詢表中某些列的信息,可以使用SQL中的投影(Projcctiong)功能來選定
這些列??梢愿鶕?jù)需要選擇表中任意數(shù)量的列。
選擇:如果要查詢表中的某些行可以使用SQL中的選擇功能來選定這些行。同時可以使用
各種標(biāo)準(zhǔn)對所顯示的行進(jìn)行限制。
聯(lián)結(jié):可以使用SQL中的聯(lián)結(jié)功能,通過創(chuàng)建存儲于不同表格中數(shù)據(jù)之間的鏈接,將這些
數(shù)據(jù)集合在一起。
基本SELECT語句
SELECT*{[DISTINCT]columnexpression[alias],...}
FROMtable;
?SELECT確定處理顏些列
?FROM確定處理第個表
結(jié)構(gòu)最簡單的SELECT沿句也必須包含一下內(nèi)容:
一個SELECT子句,指定要顯示的列
一個FROM子句,指定SELECT子句要求處理的列所在的表。
在此語法中:
SELECT一個列或多個列的列表
*選擇所有列
DISTINCT禁止重復(fù)項(xiàng)
column|expression選擇指定的列或表之式
alias給出所選列的不同標(biāo)題
FROMtable指定列所在的表
選擇所有行的所有列
SELECT*
FROMdepartments;
DtPARIMtNIJDDtPARlMEWlNABIEMANAGERJDLOCATIONID
10Administration2001703
20Mooring2miR(n
60劭加空1241500
GOIT103140J
80Sales149『2603
90Exscutve1001703
110Accounhrg2051700
190Coarsctirg1700
Brnws"getM
可以在SELECT關(guān)鍵字后面加上一個星號(*),這樣就可以顯示表中數(shù)據(jù)的所有列。
也可以在SELECT關(guān)鍵字之后列出所有列,從而顯示表中的所有列。例如,下面SQL語句
和圖片的示例一樣,將顯示departments表中的所有行和列:
SELECTdepartment_id,department_name,manager_id,location_id
FROMdepartments;
選擇所有行的特定列
SELECTdepartmentid,locationid
FROMdepartments;
DtPARIMtNIIULOLA1IONID
101700
201800
50150D
GO1400
802600
901700
1101700
190170D
Biov/5selected
可以在SELECT語句中指定列名,用逗號分隔開,這樣可以指定表顯示某些列。圖上的
示例只顯示了departments表中的所有部門編號和地點(diǎn)編號。
存儲結(jié)構(gòu)管理
表空間的管理
表空間(tablespace)是Oracle數(shù)據(jù)庫中數(shù)據(jù)的邏輯組織,他存儲段的集合,一個表空間
在操作系統(tǒng)級映射到一個或多個數(shù)據(jù)文件上去。
管理表空間的原則
在對Oracle數(shù)據(jù)庫中的表空間進(jìn)行管理之前,要熟悉一下兩個原則:
使用多個表空間;
為用戶設(shè)定表空間配額(tablespacequota)o
)使用多個表空間。
使用多個表空間可以獲得數(shù)據(jù)庫操作的更大的靈活性,如果一個數(shù)據(jù)庫包括了多個不同的
表空間,就可以獲得一下好處:
把用戶數(shù)據(jù)與數(shù)據(jù)字典數(shù)據(jù)分隔開,從而減少了在同一個數(shù)據(jù)文件的字典對象和模式對象
之間的競爭;
把一個應(yīng)用程序中的數(shù)據(jù)與另一個應(yīng)用程序中的數(shù)據(jù)分開,從而可避免如果一個表空間必
須被脫機(jī)多個應(yīng)用程序都受到影響;
在不同的磁盤驅(qū)動器上存儲不用表空間的數(shù)據(jù)文件,以減少I/O競爭;
為一個特定類型的數(shù)據(jù)庫應(yīng)用保留一個表空間,比如很快的更新動作、只讀動作、或者臨
時段的存儲。這使得用戶可以優(yōu)化表空間的使用;
備份單獨(dú)的表空間。
一些操作系統(tǒng)設(shè)置了可同時打開的文件的個數(shù)的限制,這樣的限制會影響可以同時聯(lián)機(jī)的
表空間的數(shù)量。為了避免超過操作系統(tǒng)的限制,要有效地計(jì)劃表空間,只創(chuàng)建滿足需求的足夠
的表空間,并使用盡可能少的文件來創(chuàng)建這些表空間。如果需要增加一個表空間的大小,可添
加一個或兩個較大的數(shù)據(jù)文件,或者創(chuàng)建設(shè)置為自動擴(kuò)展的數(shù)據(jù)文件,而不是創(chuàng)建很多較小的
數(shù)據(jù)文件。
根據(jù)以上這些因素檢查數(shù)據(jù),并確定對于數(shù)據(jù)庫設(shè)計(jì)需要多少表空間。
2.設(shè)定表空間配額
在授權(quán)給用戶創(chuàng)建表、簇、實(shí)體視圖、索引等對象的權(quán)限的時候,同時要加上一個對
承載這些對象的表空間的配額(如空間量或者限制)。
創(chuàng)建表空間
典型的數(shù)據(jù)庫表空間有系統(tǒng)表空間(systemtablespace)、臨時表空間(temptablespace)、
工具表空間(toolstablespace),用戶表空間(userstablespace)數(shù)據(jù)及索引表空間、回滾
表空間等。
Oracle對用于通用目的(如一般的事務(wù)處理、數(shù)據(jù)倉庫等)的數(shù)據(jù)庫基本表空間的大小提
出了建議:
表空間名稱建議大小
系統(tǒng)表空間400MB
用戶表空間12OMB
臨時表空間1OOMB
索引表空間70MB
工具表空間12MB
回滾表空間25OMB
DRSYS表空間250MB
創(chuàng)建表空間有兩種方式:手工創(chuàng)建或者利用Oracle企業(yè)管理器創(chuàng)建。
1.手工創(chuàng)建
使用CREATETABLESPACE命令可創(chuàng)建表空間:
CREATETABLESPACEtablespace
[DATAFILEclause]
[MINIMUMEXTENTinteger[KM]]
[BLOCKSIZEinteger:K]]
[LOGGING|NOLOGGING]
[DEFAULTstorageclause]
[ONLINE|OFFLINE]
[PERMANENTITEMPORARY]
[extent_management_clause]
[segmentmanagementclause]
其中:
Tablespace:是要創(chuàng)建的表空間的名稱
DATAFILE:指定組成表空間的?個或多個數(shù)據(jù)文件
MINIMUMEXTENT:確保表空間內(nèi)每個占用區(qū)的大小是整數(shù)(integer)的倍數(shù)。使用K或M
以千字節(jié)或兆字節(jié)為單位指定該大小。
BLOCKSIZE:BLOCKSIZE指定表空間的非標(biāo)準(zhǔn)塊大小。要指定該子句,必須具有
DBCACHESIZE,并至少設(shè)置一個DBnKCACHESIZE參數(shù),在該子句中指定的整數(shù)
(integer)必須與一個DB_nK_CACHE_SIZE參數(shù)設(shè)置相對應(yīng)。
LOGGING:指定在缺省晴況下,表空向內(nèi)的所有表、索引和分區(qū)的所有更改都寫入重做日
志文件。LOGGING為缺省設(shè)置。
NOLOGG1NG:指定在缺省情況下,表空間內(nèi)的所有表、索引和分區(qū)的所有更改都不寫入重
做F1志文件。NOLOGGING只影響某些DML和DDL命令,如直接加載。
DEFAULT:DEFAULT指定表空間內(nèi)創(chuàng)建的所有對象的缺省存儲參數(shù)。
OFFLINE:指定表空間從創(chuàng)建后就不可用。
PERMANENT:指定表空間可用于保留永久對象。
TEMPORARY:指定表空間僅用于保留臨時對象,如:由ORDERBY子句引起的隱式排序
所使用的段。不能指定EXTENTMANAGEMENTLOCAL或BLOCKSIZE子句。
extent_managementclause:該子句指定如何管理表空間內(nèi)的區(qū)。該子句在本課的后
續(xù)部分中討論。
segment_management_clause:這只與永久的、且在本地管理的表空間相關(guān)。通過它
可指定Oracle是否應(yīng)使用空閑列表或位圖來跟蹤表空間段中的已占用空間和空閑空間。
datafile_clause:==filename[SIZEinteger[K|M][REUSE]
[autoextendclause]
filename:是袤空間中的數(shù)據(jù)文件的名稱。
SIZE:指定文件大小。使用K或M以千字節(jié)或兆字節(jié)為單位指定大小。
REUSE:允許Oracle服務(wù)器重新使用現(xiàn)有文件。
autoextend_clause:該子句后用或禁用數(shù)據(jù)文件的自動擴(kuò)展。
NEXT:以字書為單位指定在需要更多區(qū)時自動分配的磁盤空間下一增量的大小。
MAXSIZE:指定數(shù)據(jù)文件可以自動擴(kuò)展到的最大磁盤空間。
UNLIMITED:指定可分配給數(shù)據(jù)文件或Tempfile的磁盤空間是不受限制的。
2.利用企業(yè)管理器創(chuàng)建
從“OEM控制臺”(OEMConsole):
1)導(dǎo)航到“數(shù)據(jù)庫”(Databases)》“存儲"(Storage)>“表空間”
(Tablespaces)。
2)單擊鼠標(biāo)右鍵,從彈出的菜單中選擇“創(chuàng)建"(Create)。
3)在“常規(guī)”(General)和“存儲"(Storage)選項(xiàng)卡中填寫創(chuàng)建表空間所需的
信息。
4)單擊“創(chuàng)建”(Create).
使用只讀表空間
使一個表空間只讀就防止了對這個表空間愛你相關(guān)的數(shù)據(jù)文件進(jìn)行寫操作。使表空間只讀
的主要目的是免除對數(shù)據(jù)庫中大量的靜態(tài)部分進(jìn)行備份和恢復(fù)麻煩。只讀表空間還提供了一個
保護(hù)歷史數(shù)據(jù)的手?段,使用戶不能修改。把一個表空間變成只讀后,不管一個用戶是否具有更
新權(quán)限,都不能更新這個表空間上的任何表。
在一次性寫入(WORM)設(shè)備上創(chuàng)建只讀表空間:
ALTERTABLESPACE...READONLY
使用操作系統(tǒng)命令將表空間的數(shù)據(jù)文件移動到只讀設(shè)備上。
ALTERTABLESPACE...RENAMEDATAFILE
使用OracleEnterpriseManager將表空間設(shè)為只讀
從“OEM控制臺”(OEMConsole):
導(dǎo)航到“數(shù)據(jù)庫”(Databases))“存儲”(Storage)>“表空間”
(Tablespaces)。
選擇表空間。
在“General”(常規(guī))選項(xiàng)卡的“Status"(狀態(tài))區(qū)域選擇“ReadOnly”
(只讀)復(fù)選框。
單擊“應(yīng)用”(Apply)o
查看表空間信息
以下數(shù)據(jù)字質(zhì)量的動態(tài)性能視圖提供了關(guān)于一個數(shù)據(jù)庫的表空間的有用信息、。
視圖說明
VSTABLESPACE從控制文件中得到的所有表空間的名稱和數(shù)量
DBA_TABLESPACES所有(或者用戶可訪問的)表空間的描述
USER_TABLESPACES
DBA_TABLESPACE_GROUPS展示了所有的表空間組和屬于它們的表空間
DBA_SEGMENTS所有的(或者用戶可訪問的)表空間內(nèi)的段的信息
USER_SEGMENTS
DBA_EXTENTS所有的(或者用戶可訪問的)表空間內(nèi)的數(shù)據(jù)區(qū)間的信
USER_EXTENTS息
DBA_FREE_SPACE所有的(或者用戶可訪問的)表空間內(nèi)的空閑區(qū)間的信
USERFREESPACE息
V$DATAFILE關(guān)于所有數(shù)據(jù)文件的信息,包括相應(yīng)的表空間序號
V$TEMPFILE關(guān)于所有臨時文件的信息,包括相應(yīng)的表空間序號
DBA_DATA_FILES顯示所有屬于表空間的數(shù)據(jù)文件
DBA_TEMP_FILES顯示所有屬于表空間的臨時文件
V$TENO_EXTENT_Nb\P在所有本地管理的臨時表空間內(nèi)的所有區(qū)間信息
V$TEMP_EXTENT_POOL對于所有本地管理的臨時表空間:每一個實(shí)例緩沖和使
用的臨時空間的狀態(tài)
V$TEMP_SPACE_HEADER顯示每一個臨時文件的使用/剩余空間
DBA_USERS所有用戶的默認(rèn)和臨時表空間
DBA_TS_QUOTAS列舉r所有用戶的表空間配額
V$SORT_SEGMENT關(guān)于一個給定實(shí)例的每個排序段的信息,該視圖只在表
空間是TEMPORARY類型時更新
V$TEMPSEG_USAGE用戶使用的臨時排序空間和臨時的/永久的表空間
刪除表空間
當(dāng)不再需要表空間及其內(nèi)容時,可以通過下面的DROPTABLESPACESQL命令從數(shù)據(jù)庫
中刪除表空間:
DROPTABLESPACEtablespace
[INCLUDINGCONTENTS[ANDDATAFILES][CASCADECONSTRAINTS]]
其中;
tablespace:指定要刪除的表空間的名稱
1NCLLD1NGCONTENTS:刪除表空間內(nèi)的所有段
ANDDATAFILES:刪除關(guān)聯(lián)的操作系統(tǒng)文件
CASCADECONSTRAINTS:如果要刪除的表空間之外的表引用了該表空間內(nèi)表的主鍵利唯一
鍵,則刪除這種引用完整性約束
原則:
不使用INCLUDINGCONTENTS選項(xiàng),將無法刪除仍包含數(shù)據(jù)的表空間。當(dāng)表空間
包含許多對象時,該選項(xiàng)可能會生成許多還原數(shù)據(jù)。
刪除表空間后,其數(shù)據(jù)將不再包含在數(shù)據(jù)庫內(nèi)。
在刪除表空間時,只刪除關(guān)聯(lián)數(shù)據(jù)庫控制文件內(nèi)的文件指針。操作系統(tǒng)文件仍然存
在,如果未使用ANDDATAFILES子句或數(shù)據(jù)文件是OMF,則必須使用適當(dāng)?shù)牟僮?/p>
系統(tǒng)命令明確刪除這些文件。
即使將表空間切換到只讀狀態(tài),仍可以刪除該表空間以及其中的段。
刪除表空間之前,建議您將表空間脫機(jī),以確保沒有事務(wù)處理訪問該表空間內(nèi)的任何段。
使用OracleEnterpriseManager刪除表空間
從“OEM控制臺”(OEMConsole):
導(dǎo)航到“數(shù)據(jù)庫”(Databases)>“存儲"(Storage)>“表空間”
(Tablespaces)。
選擇表空間。
單擊鼠標(biāo)右鍵,從算出的菜單中選擇“刪除"(Remove)。
單擊“是"(Yes)確認(rèn)刪除。
管理還原數(shù)據(jù)
自動還原管理:
Oracle服務(wù)器可以自動管理還原段的創(chuàng)建、分配和優(yōu)化。
手動還原管理:
您可以手動管理還原段的創(chuàng)建、分配和優(yōu)化。在0racle9i以前的版本中,這是唯一可用
的方法。
還原段
還原段
更新事務(wù)處理
還原段用卜在進(jìn)程更改數(shù)據(jù)庫中的數(shù)據(jù)時保存舊值(要還原的數(shù)據(jù))。它按數(shù)據(jù)被修改之前
的原樣存儲數(shù)據(jù)的位置及數(shù)據(jù)本身。
還原段的標(biāo)頭包含一個事務(wù)處理表,該表中存儲著有關(guān)使用這個還原段的當(dāng)前事務(wù)處理的
信息。
二個連續(xù)的事務(wù)處理只使用一個還原段存儲它的全部還原數(shù)據(jù)。
許多并發(fā)事務(wù)處理可以寫入一個還原段。
還原段:用途
還原段:用途
事務(wù)處理恢復(fù)還原段讀一致性
事務(wù)處理回退
當(dāng)某事務(wù)處理修改表中某行時,被修改的列的舊映像(要還原的數(shù)據(jù))將存儲在還原段中。
如果將該事務(wù)處理回退,則Oracle服務(wù)器通過將還原段口的值寫回到該行來恢復(fù)原始值。
事務(wù)處理恢復(fù)
如果例程在事務(wù)處理訐在進(jìn)行時失敗,那么Oracle服務(wù)器需要在數(shù)據(jù)庫再次打開時還原
所有未提交的更改。這種回退操作是事務(wù)處理恢復(fù)的一部分。之所以有可能恢復(fù)事務(wù)處理,原
因在于對還原段所做的更改同樣受重做日志文件的保護(hù)。
讀一致性
在事務(wù)處理正在進(jìn)行時,數(shù)據(jù)庫中的其他用戶不應(yīng)看到這些事務(wù)處理所做的任何未提交更
改。此外,也不應(yīng)從某條語句中看到該語句開始執(zhí)行后所提交的任何更改。還原段中的舊值(要
還原的數(shù)據(jù))也可用于為讀者提供給定語句的一致映像。
讀一致性
讀一致性
SELECT*
表FROMtable
■新的映像
—I語句開始執(zhí)行時的映像
Oracle服務(wù)器保證一條語句所看到的數(shù)據(jù)來自一致的時間,即使其它事務(wù)處理修改了該數(shù)
據(jù)。
當(dāng)Oracle服務(wù)謂開始執(zhí)行SELECT語句時,它確定當(dāng)前系統(tǒng)更改號(SCN),并確保這個SCN
之前未提交的任何更改不會被這條語句處理。請考慮在進(jìn)行多個更改的同時執(zhí)行長時間運(yùn)行的
杳詢的情況。如果在這次杳詢開始時某行有未提交的更改,Oracle服務(wù)器會構(gòu)建該行的讀一致
性映像,方法是從還原段檢索這些更改的前像,并將更改應(yīng)用于內(nèi)存中該行的副本。
事務(wù)處理讀一致性
始終為SQL語句提供讀一致性。但是,您可以為只讀事務(wù)處理請求讀一致性,方法是在事
務(wù)處理開始時發(fā)出下列命令:
SQL>SETTRANSACTIONREADONLY;
或者,可以為執(zhí)行DML的事務(wù)處理請求讀一致性,方法是在事務(wù)處理開始發(fā)出下列命令:
SQL>SETTRANSACTIONISOLATIONLEVELSERIALIZABLE;
無論是以上哪種情況,Oracle服務(wù)器都提供從事務(wù)處理開始時就具有讀一致性的數(shù)據(jù)。使
用SERIALIZABLE會對性能造成負(fù)面影響。
還原段的類型
SYSTEM還原段
創(chuàng)建數(shù)據(jù)庫時,將在SYSTEM表空間中創(chuàng)建SYSTEM還原段。這個還原段只用于對
SYSTEM表空間中的對象所做的更改。SYSTEM還原段在手動模式和自動模式下的存在和工
作是一樣的。
非SYSTEM還原段
具有多個表空間的數(shù)據(jù)庫至少需要一個非SYSTEM還原段用于手動模式,或至少需要一個
UNDO表空間用干自動模式。
手動模式
在手動模式下,由數(shù)據(jù)庫管理員創(chuàng)建的非SYSTEM還原段可用于對任何非SYSTEM表空間中
的對象所做的更改。非SYSTEM還原段有以下兩種類型。
專用
因?yàn)閷S眠€原段列在參數(shù)文件中,所以它們是通過例程聯(lián)機(jī)的段。但是,通過發(fā)出ALTER
ROLLBACKSEGMENT命令,可以使它們顯式聯(lián)機(jī)。
公用
△用還原段形成了數(shù)據(jù)庫中可用還原段的池。公用還原段通常與OracleRealApplication
Clusters一起使用來創(chuàng)建本原段池,這個池可以由任何“實(shí)時應(yīng)用集群"(RealApplication
Clusters)例程使用。
延遲還原段
當(dāng)表空間脫機(jī)時,可能會創(chuàng)建延遲還原段.它們用于在表空間恢復(fù)聯(lián)機(jī)時回退事務(wù)處理。
當(dāng)不再需要這些延遲還原段時,它們將自動被刪除。
因?yàn)檠舆t還原段是由Oracle服務(wù)滯來維護(hù)的,所以元需進(jìn)行維護(hù)。
自動還原管理
自動還原管理:概念
還原段是按照卜面的命名約定創(chuàng)建的:
_SYSSMUn$
例如:
_SYSSMU1$
SYSSMU2$
自動還原管理:配置
自動還原管理:
配置
?配置初始化文件中的兩個參數(shù):
-UNDO_MANAGEMENT
-UNDO_TABLESPACE
?至少創(chuàng)建一個UNDO表空間。
undoldbOl.dbf
初始化文件UNDO表空間
如果數(shù)據(jù)庫中只有一個UNDO表空間,并且將UNDO_MANAGEMENT設(shè)置為AUTO,則
UNDO_TABLESPACE參數(shù)是可選的;Oracle服務(wù)器將自動選擇UNDO表空間。
匕動還原管理:初始化參數(shù)
自動還原管理:
初始化參數(shù)
?UNDO_MANAGEMENT:指定系統(tǒng)應(yīng)該使用AUTO模式
還是MANUAL模式
?UNDO_TABLESPACE:指定要使用的特定UNDO表空間
UNDO_MANAGEMENT=AUTO
UNDO_TABLESPACE=UNDOTBS
UNDO_MANAGEMENT參數(shù):
UND()_MANAGEMENT參數(shù)決定數(shù)據(jù)庫的還原模式。該參數(shù)可以設(shè)置為AUTO和MANUAL這兩個
值中的任一個值,并且必須在初始化參數(shù)文件中設(shè)置。UNDOMANAGEMENT不能在數(shù)據(jù)庫啟動后
進(jìn)行動態(tài)更改。AUTO模式可以將數(shù)據(jù)庫設(shè)置為自動還原管理,并需要UNDO表空間。在MANUAL
模式(缺省值)下,可以根據(jù)需要在數(shù)據(jù)庫中創(chuàng)建和管理還原段,這與以前的Oracle服務(wù)器
版本中的操作相同。
UNDO_TABLESPACE參數(shù):
指定要使用的UNDO表空間。此參數(shù)可以在初始化文件中設(shè)置,或使用ALTERSYSTEM命令
來動態(tài)改變。
SQL>ALTERSYSTEMSETundo_tablespace=UNDOTBS;
自動還原管理:UNDO表空間
在創(chuàng)建數(shù)據(jù)庫時一起創(chuàng)建UNDO表空間,方法是,在
CREATEDATABASE命令中添加一個子句
CREATEDATABASEdbOl
???
UNDOTABLESPACEundol
DATAFILE'/uOl/oradata/undoldbOl.dbf1SIZE20M
AUTOEXTENDON
或者稍后使用CREATEUNDOTABLESPACE命令創(chuàng)建它
CREATEUNDOTABLESPACEundol
DATAFILE'/uOl/oradata/undoldbOl.dbf*
SIZE20M;
自動還原管理需要一個UNDO表空間。數(shù)據(jù)庫中可能有多個UNDO表空間,但只能有一個
UNDO表空間處于活動狀態(tài)。
可以在創(chuàng)建數(shù)據(jù)庫時一起創(chuàng)建UNDO表空間,方法是,在CREATEDATABASE命令中添加一
個子句。
在創(chuàng)建數(shù)據(jù)庫期間,如果將UNDO_MANAGEMENT參數(shù)設(shè)置為AUTO并在CREATE
DATABASE語句中省略了UNDO表.間子句,那么Oracle服務(wù)器將創(chuàng)建一個名為
SYS_LNDOTBS的UNDO表空間。數(shù)據(jù)文件表空間SYS_UNDOTS的缺省數(shù)據(jù)文件名稱是
'dbul〈oracle_sid>.dbf'。該文件位于$ORACLE_HOME/dbs中。文件的大小取決于操作系統(tǒng)。
將AUTOEXTEND設(shè)置為ON。
創(chuàng)建完數(shù)據(jù)庫后,您可以使用CREATEUNDOTABLESPACE命令創(chuàng)建UNDO表空間。
使用OracleEnterpriseManager創(chuàng)建UNDO表空間
從“OEM控制臺”(OEMConsole):
導(dǎo)航到“數(shù)據(jù)庫”(Databases)>“存儲"(Storage))“表空間”
(Tablespaces)。
單擊鼠標(biāo)右鍵,從彈出的菜單中選擇“創(chuàng)建"(Create)。
在“常規(guī)”(General)選項(xiàng)卡中,輸入文件名和文件大小。
在“類型”(Type)區(qū)域中,選擇“還原”(Undo).
單擊“創(chuàng)建”(Create))>
白動還原管理:刪除UNDO表空間
?使用DROPTABLESPACE命令,可以刪除UNDO表空間。
DROPTABLESPACEUNDOTBS2;
?某個UNDO表空間只有在當(dāng)前未由任何例程使用的時候
才能被刪除。
?要刪除活動的UNDO表空間,請執(zhí)行以下操作:
-切換到新的UNDO表空間
-完成當(dāng)前所有事務(wù)處理后,刪除該表空間
刪除UNDO表空間時,該表空間不能再被例程使用,表空間內(nèi)的所有事務(wù)處理必須均已完
成。
如果表空間UNDOTBS是數(shù)據(jù)庫當(dāng)前活動的UNDO表空間,并且將被刪除,那么在刪除該表
空間前必須設(shè)置一個新的UNDO表空間。如果某個UNDO表空間已不再存在,先創(chuàng)建另一個UNDO
表空間。然后,使用ALTERSYSTEM命令更改當(dāng)前的UNDO表空間。
SQL>ALTERSYSTEMSETundo_tablespace=UNDOTBS2;
可以在表空間UNDOTBS內(nèi)的所有事務(wù)處理都已完成后刪除它。要確定是否存在任何一個活
動的事務(wù)處理,請使用以下查詢:
SQL>SELECTa.name,b.status
2FROMv$rollnamea,vSrolIstatb
3WHEREa.nameIN(SELECTsegment_name
4FROMdbasegments
5WHEREtablespace_name='UNDOTBS')
6ANDa.usn=b.usn;
NAMESTATUS
_SYSSMU4$PENDINGOFFL
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)??照{(diào)清洗合同協(xié)議
- 山田租賃協(xié)議合同
- 家政行業(yè)客戶合同協(xié)議
- 實(shí)驗(yàn)合作合同協(xié)議
- 學(xué)校類保安合同協(xié)議
- 廣州職工合同協(xié)議
- 宅基地合同協(xié)議書模板
- 廣西集體合同協(xié)議
- 應(yīng)急維修合同協(xié)議
- 宣傳欄工程合同協(xié)議
- 《建筑工程施工技術(shù)》課件-承插型盤扣式鋼管腳手架施工
- 2023年天津醫(yī)科大學(xué)眼科醫(yī)院招聘考試真題
- 2024-2030年中國智慧校園行業(yè)競爭格局及投資商業(yè)模式分析報告版
- 八項(xiàng)制度學(xué)習(xí)心得體會
- JGJ46-2024 建筑與市政工程施工現(xiàn)場臨時用電安全技術(shù)標(biāo)準(zhǔn)
- 企業(yè)供應(yīng)鏈管理優(yōu)化及創(chuàng)新研究報告
- 某醫(yī)院精神衛(wèi)生中心信息化建設(shè)方案
- 《農(nóng)夫山泉公司稅收籌劃方案設(shè)計(jì)(5000字論文)》
- 自編MSA(計(jì)數(shù)型)自動分析表
- 超市專用棚架搭建方案
- 工程質(zhì)量,安全生產(chǎn)管理制度
評論
0/150
提交評論