oracle學(xué)習(xí)心得
oracle學(xué)習(xí)心得1
一個(gè)好的程序,必然聯(lián)系著一個(gè)龐大的數(shù)據(jù)庫網(wǎng)路...
今年我們學(xué)習(xí)了 oracle數(shù)據(jù)庫這門課程,起初的我,對這個(gè)字眼是要多陌生有多陌生,后來上課的時(shí)候聽一會老師講課,偶爾再跟上上機(jī)課,漸漸的學(xué)會了不少東西,但我感覺,我學(xué)到的仍是一些皮毛而已,懷著疑惑和求知的心態(tài),我在網(wǎng)上搜索了關(guān)于 oracle數(shù)據(jù)庫的一些知識。
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)程起動時(shí),就為其分配一個(gè)PGA區(qū),以存放數(shù)據(jù)及控制信息。
(3)ORACLE的進(jìn)程結(jié)構(gòu)ORACLE包括三類進(jìn)程:
、儆脩暨M(jìn)程 用來執(zhí)行用戶應(yīng)用程序的。
、诜⻊(wù)進(jìn)程 處理與之相連的一組用戶進(jìn)程的請求。
③后臺進(jìn)程 ORACLE為每一個(gè)數(shù)據(jù)庫例程創(chuàng)建一組后臺進(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)程將其拷貝到歸檔存儲設(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í)自動建立。在該表空間中,包含數(shù)據(jù)庫的數(shù)據(jù)字典,其中存儲全部數(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ù)存儲在以段劃分的數(shù)據(jù)庫空間中。一個(gè)段是分配給數(shù)據(jù)庫用于數(shù)據(jù)存儲的范圍的集合。數(shù)據(jù)可以是表、索引或RDBMS所需要的臨時(shí)數(shù)據(jù)。段是表空間的下一個(gè)邏輯存儲的級別。一個(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的一部分,它記錄在某一情況下被撤消的動作;貪L段用于事務(wù)控制和恢復(fù)。
臨時(shí)段 在處理查詢時(shí),ORACLE需要臨時(shí)工作空間,用于存儲語句處理的中間結(jié)果,這個(gè)區(qū)稱為臨時(shí)段。
自舉段 自舉段在SYSTEM表空間中,在數(shù)據(jù)庫建立時(shí)建立。它包括數(shù)據(jù)字典定義,在數(shù)據(jù)庫打開時(shí)裝入。
4.用戶數(shù)據(jù)庫對象
由用戶建立的對象駐留在表空間中,含有真正的數(shù)據(jù)。數(shù)據(jù)庫對象有表、視圖、聚集、索引、偽列和序號生成器。
。1)聚集(Cluster) 聚集是存儲數(shù)據(jù)的一種可選擇的方法。聚集包括存儲在一起的一組表,它們共享公共列并經(jīng)常一起使用。由于內(nèi)容相關(guān)并且物理地存儲在一起,存取時(shí)間得到改進(jìn),存儲空間可以減少。聚集是一種優(yōu)化措施。
聚集對性能的改進(jìn),依賴于數(shù)據(jù)的分布和SQL操作的內(nèi)容。特別是使用聚集對連接非常有利?梢悦黠@地提高連接的速度。建立聚集命令的基本格式:
SQL>CREATE CLUSTER〈聚集名〉(列定義[,…]);利用聚集建立表命令基本格式:
SQL>CREATE TABLE〈新表名〉(列定義[,…]CLUSTER〈聚集名〉(聚集列);
oracle學(xué)習(xí)心得2
一、定位
oracle分兩大塊,一塊是開發(fā),一塊是管理。開發(fā)主要是寫寫存儲過程、觸發(fā)器什么的,還有就是用Oracle的Develop工具做form。有點(diǎn)類似于程序員,需要有較強(qiáng)的邏輯思維和創(chuàng)造能力,個(gè)人覺得會比較辛苦,是青春飯;管理則需要對oracle數(shù)據(jù)庫的原理有深刻的認(rèn)識,有全局操縱的能力和緊密的思維,責(zé)任較大,因?yàn)橐粋(gè)小的失誤就會down掉整個(gè)數(shù)據(jù)庫,相對前者來說,后者更看重經(jīng)驗(yàn)。
因?yàn)閿?shù)據(jù)庫管理的'責(zé)任重大,很少公司愿意請一個(gè)剛剛接觸oracle的人去管理數(shù)據(jù)庫。對于剛剛畢業(yè)的年輕人來說,可以先選擇做開發(fā),有一定經(jīng)驗(yàn)后轉(zhuǎn)型,去做數(shù)據(jù)庫的管理。當(dāng)然,這個(gè)還是要看人個(gè)的實(shí)際情況來定。
二、學(xué)習(xí)方法
我的方法很簡單,就是:看書、思考、寫筆記、做實(shí)驗(yàn)、再思考、再寫筆記
看完理論的東西,自己靜下心來想想,多問自己幾個(gè)為什么,然后把所學(xué)和所想的知識點(diǎn)做個(gè)筆記;在想不通或有疑問的時(shí)候,就做做實(shí)驗(yàn),想想怎么會這樣,同樣的,把實(shí)驗(yàn)的結(jié)果記下來。思考和做實(shí)驗(yàn)是為了深入的了解這個(gè)知識點(diǎn)。而做筆記的過程,也是理清自己思路的過程。
學(xué)習(xí)的過程是使一個(gè)問題由模糊到清晰,再由清晰到模糊的過程。而每次的改變都代表著你又學(xué)到了一個(gè)新的知識點(diǎn)。
學(xué)習(xí)的過程也是從點(diǎn)到線,從線到網(wǎng),從網(wǎng)到面的過程。當(dāng)點(diǎn)變成線的時(shí)候,你會有總豁然開朗的感覺。當(dāng)網(wǎng)到面的時(shí)候,你就是高手了
很多網(wǎng)友,特別是初學(xué)的人,一碰到問題就拿到論壇上來問,在問前,你有沒有查過書,自己有沒有研究過,有沒有搜索一下論壇?這就叫思維惰性,沒有鉆研的學(xué)習(xí)態(tài)度,不管學(xué)什么東西,都不會成功的。
三、oracle的體系
oracle的體系很龐大,要學(xué)習(xí)它,首先要了解oracle的框架。在這里,簡要的講一下oracle的架構(gòu),讓初學(xué)者對oracle有一個(gè)整體的認(rèn)識。
1、物理結(jié)構(gòu)(由控制文件、數(shù)據(jù)文件、重做日志文件、參數(shù)文件、歸檔文件、密碼文件組成)
控制文件:包含維護(hù)和驗(yàn)證數(shù)據(jù)庫完整性的必要信息、例如,控制文件用于識別數(shù)據(jù)文件和重做日志文件,一個(gè)數(shù)據(jù)庫至少需要一個(gè)控制文件
數(shù)據(jù)文件:存儲數(shù)據(jù)的文件
重做日志文件:含對數(shù)據(jù)庫所做的更改記錄,這樣萬一出現(xiàn)故障可以啟用數(shù)據(jù)恢復(fù)。一個(gè)數(shù)據(jù)庫至少需要兩個(gè)重做日志文件
參數(shù)文件:定義Oracle例程的特性,例如它包含調(diào)整SGA中一些內(nèi)存結(jié)構(gòu)大小的參數(shù)
歸檔文件:是重做日志文件的脫機(jī)副本,這些副本可能對于從介質(zhì)失敗中進(jìn)行恢復(fù)很必要。密碼文件:認(rèn)證哪些用戶有權(quán)限啟動和關(guān)閉Oracle例程
2、邏輯結(jié)構(gòu)(表空間、段、區(qū)、塊)
表空間:是數(shù)據(jù)庫中的基本邏輯結(jié)構(gòu),一系列數(shù)據(jù)文件的集合。段:是對象在數(shù)據(jù)庫中占用的空間區(qū):是為數(shù)據(jù)一次性預(yù)留的一個(gè)較大的存儲空間塊:ORACLE最基本的存儲單位,在建立數(shù)據(jù)庫的時(shí)候指定
3、內(nèi)存分配(SGA和PGA)
SGA:是用于存儲數(shù)據(jù)庫信息的內(nèi)存區(qū),該信息為數(shù)據(jù)庫進(jìn)程所共享。它包含Oracle服務(wù)器的數(shù)據(jù)和控制信息,它是在Oracle服務(wù)器所駐留的計(jì)算機(jī)的實(shí)際內(nèi)存中得以分配,如果實(shí)際內(nèi)存不夠再往虛擬內(nèi)存中寫。
PGA:包含單個(gè)服務(wù)器進(jìn)程或單個(gè)后臺進(jìn)程的數(shù)據(jù)和控制信息,與幾個(gè)進(jìn)程共享的SGA正相反PGA是只被一個(gè)進(jìn)程使用的區(qū)域,PGA在創(chuàng)建進(jìn)程時(shí)分配在終止進(jìn)程時(shí)回收
4、后臺進(jìn)程(數(shù)據(jù)寫進(jìn)程、日志寫進(jìn)程、系統(tǒng)監(jiān)控、進(jìn)程監(jiān)控、檢查點(diǎn)進(jìn)程、歸檔進(jìn)程、服務(wù)進(jìn)程、用戶進(jìn)程)
數(shù)據(jù)寫進(jìn)程:負(fù)責(zé)將更改的數(shù)據(jù)從數(shù)據(jù)庫緩沖區(qū)高速緩存寫入數(shù)據(jù)文件日志寫進(jìn)程:將重做日志緩沖區(qū)中的更改寫入在線重做日志文件
系統(tǒng)監(jiān)控:檢查數(shù)據(jù)庫的一致性如有必要還會在數(shù)據(jù)庫打開時(shí)啟動數(shù)據(jù)庫的恢復(fù)進(jìn)程監(jiān)控:負(fù)責(zé)在一個(gè)Oracle進(jìn)程失敗時(shí)清理資源
檢查點(diǎn)進(jìn)程:負(fù)責(zé)在每當(dāng)緩沖區(qū)高速緩存中的更改永久地記錄在數(shù)據(jù)庫中時(shí),更新控制文件和數(shù)據(jù)文件中的數(shù)據(jù)庫狀態(tài)信息。
歸檔進(jìn)程:在每次日志切換時(shí)把已滿的日志組進(jìn)行備份或歸檔服務(wù)進(jìn)程:用戶進(jìn)程服務(wù)。
用戶進(jìn)程:在客戶端,負(fù)責(zé)將用戶的SQL語句傳遞給服務(wù)進(jìn)程,并從服務(wù)器段拿回查詢數(shù)據(jù)。
5、oracle例程:Oracle例程由SGA內(nèi)存結(jié)構(gòu)和用于管理數(shù)據(jù)庫的后臺進(jìn)程組成。例程一次只能打開和使用一個(gè)數(shù)據(jù)庫。
6、SCN(SystemChangeNumber):系統(tǒng)改變號,一個(gè)由系統(tǒng)內(nèi)部維護(hù)的序列號。當(dāng)系統(tǒng)需要更新的時(shí)候自動增加,他是系統(tǒng)中維持?jǐn)?shù)據(jù)的一致性和順序恢復(fù)的重要標(biāo)志。
四、深入學(xué)習(xí)管理:可以考OCP證書,對oracle先有一個(gè)系統(tǒng)的學(xué)習(xí),然后看OracleConcepts、oracleonlinedocument,對oracle的原理會有更深入的了解,同時(shí)可以開始進(jìn)行一些專題的研究如:RMAN、RAS、STATSPACT、DATAGUARD、TUNING、BACKUP&RECOVER等等。
開發(fā):對于想做Oracle開發(fā)的,在了解完Oracle基本的體系結(jié)構(gòu)之后,可以重點(diǎn)關(guān)注PL/SQL及Oracle的開發(fā)工具這一部分。PL/SQL主要是包括怎么寫SQL語句,怎么使用Oracle本身的函數(shù),怎么寫存儲過程、存儲函數(shù)、觸發(fā)器等。Oracle的開發(fā)工具主要就是Oracle自己的DeveloperSuite(OracleFormsDeveloperandReportsDeveloper這些),學(xué)會如何熟練使用這些工具。
【oracle學(xué)習(xí)心得】相關(guān)文章:
Oracle面試試題06-22
oracle論文開題報(bào)告07-05
Oracle DBA面試試題06-17
Oracle面試試題題庫06-17
Oracle面試題庫06-19
oracle論文的參考文獻(xiàn)11-24
某公司的Oracle面試題大全06-22
英語的學(xué)習(xí)心得04-27