Oracle 的入门心得

oracle的體系太龐大了,對於初學者來說,難免會有些無從下手的感覺,什麽都想學,結果什麽都學不好,所以把學習經驗共享壹下,希望

讓剛剛入門的人對oracle有壹個總體的認識,少走壹些彎路。 壹、定位 oracle分兩大塊,壹塊是開發,壹塊是管理。開發主要是寫寫存儲過程、觸發器什麽的,還有就是用Oracle的Develop工具做form。有點類似於

程序員,需要有較強的邏輯思維和創造能力,個人覺得會冉閑量啵喬啻悍笿;管理則需要對oracle數據庫的原理有深刻的認識,有全局操縱的能力和緊密的思維,責任較大,因為壹個小的失誤就會down掉整個數據庫,相對前者來說,後者更看重經驗。 因為數據庫管理的責任重大,很少公司願意請壹個剛剛接觸oracle的人去管理數據庫。對於剛剛畢業的年輕人來說,可以先選擇做開發,有壹定經驗後轉型,去做數據庫的管理。當然,這個還是要看個人的實際情況來定。

二、學習方法 我的方法很簡單,就是:看書、思考、寫筆記、做實驗、再思考、再寫筆記 看完理論的東西,自己靜下心來想想,多問自己幾個為什麽,然後把所學和所想的知識點做個筆記;在想不通或有疑問的時候,就做做實

驗,想想怎麽會這樣,同樣的,把實驗的結果記下來。思考和做實驗是為了深入的了解這個知識點。而做筆記的過程,也是理清自己思路的過程。 學習的過程是使壹個問題由模糊到清晰,再由清晰到模糊的過程。而每次的改變都代表著妳又學到了壹個新的知識點。 學習的過程也是從點到線,從線到網,從網到面的過程。當點變成線的時候,妳會有總豁然開朗的感覺。當網到面的時候,妳就是高手了 很多網友,特別是初學的人,壹碰到問題就拿到論壇上來問,在問前,妳有沒有查過書,自己有沒有研究過,有沒有搜索壹下論壇?這就叫思維惰性。由別人來回答妳的問題,會讓妳在短時間內不費勁地弄懂這個知識點,然而通過自己的努力去研究它,不但會更深入的了解這個知識點,更重要的是在研究的過程會提高妳解決問題和分析問題的能力。總的來說,沒有鉆研的學習態度,不管學什麽東西,都不會成功的。 當然,初學的人很多時候是因為遇到問題時,無從下手,也不知道去哪裏找資料,才會到論壇上提問題的。但我認為,在提問的時候,是不是可以問別人是如何分析這個問題?從哪裏可以找到相關的資料?而不是這個題的答案是什麽?授人以魚不如授人以漁。

下面我講下我處理問題的過程

首先要知道oracle的官方網站:www.oracle.com 這裏有oracle的各種版本的數據庫、應用工具和權威的官方文檔。其次,還要知道

http://metalink.oracle.com/這裏是買了oracle服務或是oracle的合作夥伴才可以進去的,裏面有很多權威的解決方案和補丁。然後就是壹些

著名網站:asktom.oracle.com www.orafaq.net, www.dbazine.com。這裏有很多經驗之談。

遇到問題了。如果是概念上的問題,第壹時間可以找tahiti.oracle.com,這裏會給妳最詳細的解釋。如果在運行的過程中出了什麽錯誤。

可以去metalink看看。如果是想知道事務的處理的經驗之談。可以去asktom。當然。這裏只是相對而言。三、oracle的體系 oracle的體系很龐大,要學習它,首先要了解oracle的框架。在這裏,簡要的講壹下oracle的架構,讓初學者對oracle有壹個整體的認識。 1、物理結構(由控制文件、數據文件、重做日誌文件、參數文件、歸檔文件、密碼文件組成) 控制文件:包含維護和驗證數據庫完整性的必要信息、例如,控制文件用於識別數據文件和重做日誌文件,壹個數據庫至少需要壹個控制文件 數據文件:存儲數據的文件 重做日誌文件:含對數據庫所做的更改記錄,這樣萬壹出現故障可以啟用數據恢復。壹個數據庫至少需要兩個重做日誌文件 參數文件:定義Oracle 例程的特性,例如它包含調整SGA 中壹些內存結構大小的參數 歸檔文件:是重做日誌文件的脫機副本,這些副本可能對於從介質失敗中進行恢復很必要。 密碼文件:認證哪些用戶有權限啟動和關閉Oracle例程 2、邏輯結構(表空間、段、區、塊) 表空間:是數據庫中的基本邏輯結構,壹系列數據文件的集合。 段:是對象在數據庫中占用的空間 區:是為數據壹次性預留的壹個較大的存儲空間 塊:ORACLE最基本的存儲單位,在建立數據庫的時候指定 3、內存分配(SGA和PGA) SGA:是用於存儲數據庫信息的內存區,該信息為數據庫進程所共享。它包含Oracle 服務器的數據和控制信息, 它是在Oracle 服務器所駐留的

計算機的實際內存中得以分配,如果實際內存不夠再往虛擬內存中寫。 PGA:包含單個服務器進程或單個後臺進程的數據和控制信息,與幾個進程共享的SGA 正相反PGA 是只被壹個進程使用的區域,PGA 在創建進程

時分配在終止進程時回收 4、後臺進程(數據寫進程、日誌寫進程、系統監控、進程監控、檢查點進程、歸檔進程、服務進程

Oracle公司簡介與OCP基礎入門

Oracle公司頒布並實施的一項權威的專業技術標準,它是專為認證那些能夠滿足對Oracle核心產品的服務與支持,並具有嫻熟的操作能力與廣泛理論知識的專業人士。一經認證,在行業內的專業資格將被確認,從而使個人或企業更具競爭實力。一次性通過Oracle認證專家計劃包含了兩個目前IT行業十分熱門的認證角色,即數據庫管理員(DBA Atabase Administrator)和應用程序開發員(DEV Application Developer)。

Oracle認證這一方面是由於Oracle產品的特殊性,作為全球最大的數據庫廠商,Oracle在行業中有著不容置疑的地位,而數據庫又是整個IT行業中的關鍵和核心應用,特別是大型企業級數據庫,更是高端中的高端。 Oracle的最新認證體系包括三個層次:Oracle Certified Associate (OCA),Oracle Certified Professional (OCP)和Oracle Certified Master (OCM)

下面是學習OCP的一些基礎入門的方法。

1. 為了打開數據庫,所有的控制文件,每個聯機日誌文件組的至少壹個成員以及

  所有的聯機數據文件都必須存在且同步。

  2. 若任壹控制文件副本受損或丟失,數據庫停在NOMOUNT狀態。否則繼續進行。

  3. 查看所有聯機數據文件的頭部,若任壹文件頭部受損或丟失,則數據庫停留在mount狀態。

  4 .若聯機文件沒有同步,應用重做日誌進行實例恢復.若聯機日誌不可用,則無法打開數據庫。

  若數據文件是通過備份還原的。則需要進行media恢復。

  5.數據庫打開後,任何控制文件副本,SYSTEM表空間或活動undo表空間的數據任壹數據文件受損,

  則實例立即終止。聯機日誌受損時,只要日誌文件組中存在幸存成員,不會造成實例的終止.

  除SYSTEM表空間或活動undo表空間的之外的數據文件受損,ORACLE讓這些受損數據文件脫機,不用導致實例終止。

簡述Oracle優化器的優化方式

不同的情況,壹條SQL可能有多種執行計劃,但在某壹時點,壹定只有壹種執行計劃是最優的,花費時間是最少的。相信妳壹定會用Pl/sql Developer、Toad等工具去看壹個語句的執行計劃,不過妳可能對Rule、Choose、First rows、All rows這幾項有疑問,因為我當初也是這樣的,那時我也疑惑為什麽選了以上的不同的項,執行計劃就變了?

  1、Oracle優化器的優化方式

  Oracle優化器共有兩種的優化方式,即基於規則的優化方式(Rule-Based Optimization,簡稱為RBO)和基於代價的優化方式(Cost-Based Optimization,簡稱為CBO)。

  A、RBO方式:優化器在分析SQL語句時,所遵循的是Oracle內部預定的壹些規則。比如我們常見的,當壹個where子句中的壹列有索引時去走索引。

  B、CBO方式:依詞義可知,它是看語句的代價(Cost)了,這裏的代價主要指Cpu和內存。優化器在判斷是否用這種方式時,主要參照的是表及索引的統計信息。統計信息給出表的大小 、有少行、每行的長度等信息。這些統計信息起初在庫內是沒有的,是妳在做analyze後才出現的,很多的時侯過期統計信息會令優化器做出壹個錯誤的執行計劃,因些我們應及時更新這些信息。在Oracle8及以後的版本,Oracle列推薦用CBO的方式。

  我們要明了,不壹定走索引就是優的 ,比如壹個表只有兩行數據,壹次IO就可以完成全表的檢索,而此時走索引時則需要兩次IO,這時對這個表做全表掃描(full table scan)是最好的。

  2、Oracle優化器的優化模式(Optermizer Mode)

  優化模式包括Rule,Choose,First rows,All rows這四種方式,也就是我們以上所提及的。如下我解釋壹下:

  Rule:不用多說,即走基於規則的方式。

  Choolse:這是我們應觀註的,默認的情況下Oracle用的便是這種方式。指的是當壹個表或或索引有統計信息,則走CBO的方式,如果表或索引沒統計信息,表又不是特別的小,而且相應的列有索引時,那麽就走索引,走RBO的方式。

  First Rows:它與Choose方式是類似的,所不同的是當壹個表有統計信息時,它將是以最快的方式返回查詢的最先的幾行,從總體上減少了響應時間。

  All Rows:也就是我們所說的Cost的方式,當壹個表有統計信息時,它將以最快的方式返回表的所有的行,從總體上提高查詢的吞吐量。沒有統計信息則走基於規則的方式。

  3、如何設定選用哪種優化模式

  ◆A、Instance級別

  我們可以通過在init.ora文件中設定OPTIMIZER_MODE=RULE、OPTIMIZER_MODE=CHOOSE、OPTIMIZER_MODE=FIRST_ROWS、OPTIMIZER_MODE=ALL_ROWS去選用3所提的四種方式,如果妳沒設定OPTIMIZER_MODE參數則默認用的是Choose這種方式。

  ◆B、Sessions級別

  通過SQL> ALTER SESSION SET OPTIMIZER_MODE=;來設定。

  ◆C、語句級別

  這些需要用到Hint