官术网_书友最值得收藏!

第一篇 數(shù)據(jù)庫安裝篇

第1章 Oracle 11g數(shù)據(jù)庫簡介

Oracle 11g是甲骨文公司推出的最新版本的Oracle數(shù)據(jù)庫軟件,它在以前版本的基礎(chǔ)上得到了進(jìn)一步的改進(jìn)和發(fā)展。本章包括以下知識點(diǎn):

? Oracle 11g的發(fā)展

? Oracle 11g的新特性

? Oracle 11g與SQL Server的區(qū)別

本章內(nèi)容基本涵蓋了Oracle產(chǎn)品版本的介紹和Oracle 11g的一些新特性。通過本章的學(xué)習(xí),讀者可以了解Oracle 11g的特性以及與SQL Server的區(qū)別。

1.1 認(rèn)識Oracle 11g

Oracle 11g是Oracle數(shù)據(jù)庫系列的最新版本,目前已經(jīng)被企業(yè)廣泛應(yīng)用。本節(jié)將講述Oracle的發(fā)展和Oracle 11g的介紹以及Oracle 11g與微軟的SQL Server數(shù)據(jù)庫的對比。

1.1.1 Oracle的成長歷程

圖1.1 Oracle的創(chuàng)始人Larry Ellison

Oracle數(shù)據(jù)庫目前已經(jīng)成為企業(yè)級開發(fā)的首選,那么Oracle數(shù)據(jù)庫是誰創(chuàng)建的呢?又是由哪個(gè)公司創(chuàng)建的?說到Oracle數(shù)據(jù)庫的創(chuàng)始人,不得不提到勞倫斯·埃里森(Larry Ellison),如圖1.1所示,他出生于美國紐約布朗克斯,并不是什么名牌大學(xué)畢業(yè),甚至就讀三所大學(xué)都沒能取得一個(gè)學(xué)位。但是,就是這樣一個(gè)人,卻成為世界上第二大軟件公司的創(chuàng)始人。

正所謂天生我材必有用,勞倫斯·埃里森自學(xué)了計(jì)算機(jī)編程。由于20世紀(jì)60年代美國也動蕩不安,所以勞倫斯·埃里森不斷地跳槽,適應(yīng)著不同公司的工作,直到他跳到一家影像器材公司工作,認(rèn)識了創(chuàng)建Oracle公司的另外兩位重要人物Bob Miner和Edward Oates,改變了他的一生。1977年,勞倫斯·埃里森與這兩個(gè)重要人物在硅谷共同出資創(chuàng)辦了一家軟件開發(fā)公司,其中勞倫斯·埃里森占有60%的股權(quán)。

在勞倫斯·埃里森創(chuàng)建軟件開發(fā)公司的初期,并不是一開始就確定要開發(fā)數(shù)據(jù)庫產(chǎn)品,也不是一開始就把公司的名字稱為Oracle。之所以要開發(fā)數(shù)據(jù)庫產(chǎn)品,是受IBM的研究員發(fā)表的一篇文章《大型共享數(shù)據(jù)庫的關(guān)系數(shù)據(jù)模型》的啟發(fā),3個(gè)人才開始研發(fā)關(guān)系型數(shù)據(jù)庫的。他們的第一個(gè)項(xiàng)目是給美國政府做的,項(xiàng)目的名字當(dāng)時(shí)就叫Oracle,Oracle在英語中的意思是神諭宣誓、預(yù)言或圣言。此后,勞倫斯·埃里森就把研發(fā)的數(shù)據(jù)庫叫做Oracle,后來也把自己公司的名字改成了Oracle。

Oracle數(shù)據(jù)庫的第一商用版本是在1979年誕生的,到現(xiàn)在的Oracle 11g版本已經(jīng)歷經(jīng)30余年了,在這些年中,Oracle公司的Oracle產(chǎn)品也成為家喻戶曉的產(chǎn)品,勞倫斯·埃里森的名字也被《福布斯》排行榜收錄。這就是Oracle,也是甲骨文公司的成長歷程。

1.1.2 了解最新版本Oracle 11g

Oracle 11g是目前最新的Oracle版本,可以在Oracle的官方網(wǎng)站www.oracle.com獲取Oracle的版本信息。

本書中要講解的是Oracle 11g的第1版,所以在這里只對Oracle 11g的各版本做以說明。Oracle 11g分為Oracle 11g 11.1.0.7.0和Oracle 11g 11.1.0.6.0兩個(gè)版本。其中,Oracle 11g 11.1.0.7.0版本主要安裝在Windows Server 2008系統(tǒng)中使用。Oracle 11g 11.1.0.6.0版本中所支持的操作系統(tǒng)比較廣泛,主要有:

? Microsoft Windows(32位)

? Microsoft Windows(x64)

? Linux x86

? Linux x86-64

? Solaris(SPARC)(64位)

? AIX(PPC64)

? HP-UX Itanium

? HP-UX PA-RISC(64位)

安裝到Windows 2003系統(tǒng)或者Windows XP系統(tǒng)中時(shí),使用Microsoft Windows(32位)即可。在第2章中將具體講述Oracle的安裝過程。

1.1.3 Oracle與SQL Server

Oracle數(shù)據(jù)庫與SQL Server數(shù)據(jù)庫在企業(yè)應(yīng)用當(dāng)中各自有著用武之地。Oracle數(shù)據(jù)庫的最新版本是Oracle 11g,而SQL Server數(shù)據(jù)庫也有了最新的SQL Server 2008版本。下面從幾個(gè)方面講解Oracle數(shù)據(jù)庫與SQL Server數(shù)據(jù)庫的特點(diǎn)。

1. 對操作系統(tǒng)的支持

Oracle數(shù)據(jù)庫對操作系統(tǒng)的支持比SQL Server數(shù)據(jù)庫更多。Oracle可以支持的操作系統(tǒng)有Windows系統(tǒng)、Linux系統(tǒng)、蘋果的操作系統(tǒng)等;而SQL Server由于是微軟研發(fā)的,所以目前支持的操作系統(tǒng)只有Windows操作系統(tǒng)。另外,對于SQL Server數(shù)據(jù)庫,通常只能在Windows Server系列的操作系統(tǒng)上安裝企業(yè)版,而普遍使用的Windows XP系統(tǒng)只能安裝SQL Server的個(gè)人版或開發(fā)版。因此,當(dāng)數(shù)據(jù)庫服務(wù)器是非Windows系統(tǒng)時(shí),只能使用Oracle數(shù)據(jù)庫;當(dāng)數(shù)據(jù)庫服務(wù)器是Windows操作系統(tǒng)時(shí),才可以考慮使用SQL Server數(shù)據(jù)庫。

2. 數(shù)據(jù)庫的架構(gòu)

在Oracle數(shù)據(jù)庫中,一個(gè)實(shí)例只能管理一個(gè)數(shù)據(jù)庫,只有數(shù)據(jù)庫在集群的環(huán)境下才能實(shí)現(xiàn)多個(gè)數(shù)據(jù)庫被一個(gè)實(shí)例管理;而SQL Server數(shù)據(jù)庫是一個(gè)實(shí)例管理多個(gè)數(shù)據(jù)庫。

3. 數(shù)據(jù)庫的安全性

SQL Server系統(tǒng)數(shù)據(jù)庫沒有通過安全性認(rèn)證,而Oracle數(shù)據(jù)庫是獲得ISO安全認(rèn)證的數(shù)據(jù)庫,所以說Oracle的安全性更好一些。

4. 內(nèi)存分配

Oracle的內(nèi)存分配大部分是由INIT.ORA來決定的,而SQL的內(nèi)存分配主要有動態(tài)內(nèi)存分配和靜態(tài)內(nèi)存分配。

1.2 回憶Oracle的產(chǎn)品版本

Oracle發(fā)展到目前的Oracle 11g版本,是歷經(jīng)30多年努力實(shí)現(xiàn)的成果,本節(jié)將帶你回憶Oracle的整個(gè)發(fā)展歷程。

? 最早的Oracle版本是在1979年的夏季發(fā)布的,該版本在Oracle出品時(shí)被稱為Oracle的第2版,這也是出于營銷的考慮。這個(gè)數(shù)據(jù)庫產(chǎn)品整合了比較完整的SQL實(shí)現(xiàn),其中包括子查詢、連接及其他特性。

? 1983年3月,Oracle發(fā)布了第3版。該版本是使用C語言重新編寫第2版得到的,這也是為什么Oracle的可移植性非常好的主要原因。

? 1984年10月,Oracle發(fā)布了第4版,產(chǎn)品的穩(wěn)定性得到很大的提高。

? 1985年,Oracle發(fā)布了第5版。該版本的穩(wěn)定性又有了很大的提高,這也是首批可以在C/S模式下運(yùn)行的數(shù)據(jù)庫產(chǎn)品。

? 1988年,Oracle發(fā)布了第6版。在發(fā)布第6版之前,Oracle公司已經(jīng)上市了。第6版中引入了很多新特性,主要有行級鎖、聯(lián)機(jī)熱備份等功能,在一定程度上增強(qiáng)了Oracle的可用性。

? 1992年6月,Oracle發(fā)布了第7版。在該版本中增加的新特性主要有:分布式事務(wù)處理能力、對數(shù)據(jù)庫管理功能的增強(qiáng),同時(shí)也提高了數(shù)據(jù)庫的安全性。Oracle在第7版產(chǎn)品的推進(jìn)下銷售額倍增。

? 1997年6月,Oracle發(fā)布了第8版。Oracle 8支持面向?qū)ο蟮拈_發(fā)及新的多媒體應(yīng)用,這個(gè)版本也為支持Internet、網(wǎng)格計(jì)算等奠定了基礎(chǔ)。同時(shí),這一版本開始具有同時(shí)處理大量用戶和海量數(shù)據(jù)的特性。

? 1998年9月,Oracle發(fā)布了8i版,“i”代表Internet。該版本中添加了大量為支持Internet而設(shè)計(jì)的特性。同時(shí),這一版本為數(shù)據(jù)庫用戶提供了全方位的Java支持。Oracle 8i成為第一個(gè)完全整合了本地Java運(yùn)行環(huán)境的數(shù)據(jù)庫,用Java就可以編寫Oracle的存儲過程。

? 2001年6月,Oracle發(fā)布了Oracle 9i。在Oracle 9i的諸多新特性中,最重要的就是Real Application Clusters(RAC)了。說起Oracle集群服務(wù)器,早在第5版時(shí),Oracle就開始開發(fā)Oracle并行服務(wù)器(Oracle Parallel Server,OPS),并在以后的版本中逐漸完善了其功能,不過,嚴(yán)格來說,盡管OPS算得上是個(gè)集群環(huán)境,但是并沒有體現(xiàn)出集群技術(shù)應(yīng)有的優(yōu)點(diǎn)。

? 2003年9月8日,Oracle發(fā)布了10g版本。10g版本是Oracle應(yīng)用服務(wù)器版本,這里的“g”代表“grid”(網(wǎng)格)。在這個(gè)版本中加入了網(wǎng)格計(jì)算的功能。

? 2007年11月,Oracle發(fā)布了11g版本。這也是目前最新的版本,該版本大大提高了系統(tǒng)性能的安全性,并有了多項(xiàng)的創(chuàng)新,比如實(shí)現(xiàn)了信息生命周期管理、全新的Data Guard將可用性最大化,同時(shí)利用數(shù)據(jù)壓縮技術(shù)大幅降低了數(shù)據(jù)存儲的支出,縮短了應(yīng)用程序測試環(huán)境部署所花費(fèi)的時(shí)間。

1.3 學(xué)習(xí)Oracle 11g的新特性

Oracle 11g是目前使用比較多的一個(gè)版本,也是性能比較穩(wěn)定的版本。Oracle 11g在以前版本的基礎(chǔ)上又增加了很多新的特性,本節(jié)就帶領(lǐng)讀者認(rèn)識Oracle 11g中新增加的一些特性。

1.3.1 數(shù)據(jù)庫管理部分

數(shù)據(jù)庫管理部分是Oracle 11g中的核心,在這一部分,甲骨文公司為Oracle增加了如下8個(gè)主要特性。

(1)數(shù)據(jù)庫重放

數(shù)據(jù)庫重放在Oracle 11g中主要體現(xiàn)在兩個(gè)部分,一個(gè)是數(shù)據(jù)庫重放;一個(gè)是SQL重放。新的數(shù)據(jù)庫重放工具好似數(shù)據(jù)庫內(nèi)的DVR。利用該方法,可以方便地以二進(jìn)制文件格式捕獲SQL級別以下的所有數(shù)據(jù)庫活動,然后在同一數(shù)據(jù)庫或不同數(shù)據(jù)庫內(nèi)進(jìn)行重放。此外,還可以自定義捕獲流程,以包括或排除某些特定類型的活動。SQL重放與數(shù)據(jù)庫重放的特性類似,但只是捕捉SQL負(fù)載部分。

(2)SQL計(jì)劃管理

之前,我們可以使用存儲大綱和SQL Profile來幫助我們固定某條SQL語句的執(zhí)行計(jì)劃,防止由于執(zhí)行計(jì)劃發(fā)生變化而導(dǎo)致的性能下降。不過這些技術(shù)需要DBA人為的處理,比如存儲大綱,需要DBA手工創(chuàng)建,而對于SQL Profile來說,則要DBA手工應(yīng)用才能生效。從Oracle 11g開始,引入了SQL執(zhí)行計(jì)劃管理這個(gè)新特性,從而可以讓系統(tǒng)自動控制SQL語句執(zhí)行計(jì)劃的穩(wěn)定性,進(jìn)而防止由于執(zhí)行計(jì)劃發(fā)生變化而導(dǎo)致的性能下降。

(3)自動存儲管理

用于管理ASM實(shí)例的新的SYSASM角色,用于降低共享池使用的可變的區(qū)大小,以及實(shí)例能夠讀取磁盤組的特定磁盤。

(4)自動的健康檢查

Oracle能夠自動地對數(shù)據(jù)庫進(jìn)行健康檢查,對于有可能導(dǎo)致數(shù)據(jù)庫在將來出現(xiàn)問題的一些因素,給DBA發(fā)送告警信息,并針對潛在問題給出一些建議。這樣可以在問題嚴(yán)重之前發(fā)現(xiàn)數(shù)據(jù)庫的問題,從而避免災(zāi)難性的事件發(fā)生。

(5)企業(yè)管理器功能的增強(qiáng)

在企業(yè)管理器中增加了一個(gè)LOGMINER接口,該接口主要用作日志的查詢。通過該接口,還可以在企業(yè)管理器的GUI頁面中獲取日志挖掘的圖形。

(6)自動診斷知識庫

當(dāng)Oracle探測到重要錯(cuò)誤時(shí),會自動創(chuàng)建一個(gè)事件,并且捕捉到和這一事件相關(guān)的信息,同時(shí)自動進(jìn)行數(shù)據(jù)庫健康檢查并通知DBA。

(7)閃回事務(wù)

使用閃回事務(wù)可以回退事務(wù),即使是已經(jīng)提交的事務(wù)。這對于更正一些用戶錯(cuò)誤非常有用。比如,用戶不小心執(zhí)行了一些事務(wù),并且在這些事務(wù)里對數(shù)據(jù)庫的數(shù)據(jù)做了一些更改,當(dāng)用戶提交事務(wù)后,發(fā)現(xiàn)這些更改是錯(cuò)誤的,想要回退這些更改,這時(shí)就可以使用閃回事務(wù)了。DBA只需要簡單地將這些事務(wù)閃回,即可把用戶犯下的錯(cuò)誤更正過來。

(8)自動內(nèi)存優(yōu)化

在Oracle 11g中,所有內(nèi)存可以通過只設(shè)定一個(gè)參數(shù)來實(shí)現(xiàn)全表自動優(yōu)化。你只要告訴Oracle有多少內(nèi)存可用,它就可以自動指定多少內(nèi)存分配給PGA、多少內(nèi)存分配給SGA以及多少內(nèi)存分配給操作系統(tǒng)進(jìn)程。

1.3.2 PL/SQL部分

PL/SQL部分是指一些SQL語句的變化,通過這些變化,增強(qiáng)了Oracle 11g中SQL語句的功能。下面就簡單講述3個(gè)在Oracle 11g中新增加的特性。

(1)觸發(fā)器

在Oracle 11g中除了以前用的觸發(fā)器之外,還引入了一個(gè)復(fù)合觸發(fā)器。復(fù)合觸發(fā)器就是在一個(gè)觸發(fā)器中使用4部分內(nèi)容,即申明部分、before過程部分、after each row過程部分和after過程部分。此外,在Oracle 11g中還可以設(shè)置觸發(fā)器的順序,比如為一個(gè)表設(shè)置幾個(gè)觸發(fā)器,可以指定先執(zhí)行哪個(gè)觸發(fā)器的內(nèi)容等。

(2)對象依賴性改進(jìn)

在Oracle 11g之前,如果有函數(shù)或者視圖依賴于某張表,一旦這張表發(fā)生結(jié)構(gòu)變化,無論是否涉及函數(shù)或視圖所依賴的屬性,都會使函數(shù)或視圖變?yōu)閕nvalid。在Oracle 11g中對這種情況進(jìn)行了調(diào)整,如果表改變的屬性與相關(guān)的函數(shù)或視圖無關(guān),則相關(guān)對象狀態(tài)不會發(fā)生變化。

(3)SQL語法

在SQL語法部分中,我們在調(diào)用某一函數(shù)時(shí),可以通過=>來為特定的函數(shù)參數(shù)指定數(shù)據(jù)。這一語法也同樣可以出現(xiàn)在SQL語句中。

除了在數(shù)據(jù)庫管理和PL/SQL部分新增加的特性之外,Oracle 11g還在數(shù)據(jù)的備份和恢復(fù)中增強(qiáng)了RMAN的恢復(fù)功能,提供的數(shù)據(jù)壓縮技術(shù)可以最多壓縮2/3,同時(shí)還提供了在線升級等功能。總之,Oracle 11g是Oracle版本中功能最強(qiáng)的版本,由于Oracle 11g提供的新特性很多,這里只列舉了幾個(gè)比較重要的新特性,其他的新特性可以登錄Oracle的官方網(wǎng)站查看。

1.4 小結(jié)

本章首先講述了Oracle的創(chuàng)始人和它的成長歷程;然后通過Oracle與SQL Server的對比,講解了Oracle和SQL Server各自的特點(diǎn)及使用的范圍;接著講解了Oracle產(chǎn)品的各個(gè)版本發(fā)布的時(shí)間和特性;最后講述了Oracle 11g中的一些新特性,比如在數(shù)據(jù)庫管理方面的數(shù)據(jù)庫重放技術(shù)、SQL計(jì)劃管理、自動存儲管理等特性。

1.5 習(xí)題

簡答題

1. 簡述Oracle與SQL Server的區(qū)別。

2. Oracle的第一個(gè)版本是什么時(shí)候發(fā)布的?它的創(chuàng)始人是誰?

3. Oracle 11g有哪些新特性?

主站蜘蛛池模板: 前郭尔| 岚皋县| 莱阳市| 高青县| 利川市| 乌海市| 蚌埠市| 吉林省| 同江市| 洛隆县| 西吉县| 巴塘县| 鄱阳县| 达拉特旗| 安远县| 道真| 旌德县| 湘阴县| 海门市| 孟连| 武川县| 文成县| 西乡县| 阳谷县| 岱山县| 和静县| 绥棱县| 海林市| 汉阴县| 台安县| 恩平市| 霍林郭勒市| 滦平县| 遂川县| 保靖县| 环江| 容城县| 南城县| 安丘市| 海丰县| 河南省|