一直認為自己對Oracle的理解還可以,特別是考完OCM認證以後。
幾天前一個朋友問我,你能簡單的介紹一下Oracle的體繫結構嗎。我腦海中立即想到之前那幅Oracle 11g 體繫結構圖(12C由於圖太複雜記不住),如下:
但是面對這幅圖我居然無法進行準確的描述,我確信這個圖我見過無數遍,也確信自己瞭解Oracle的體繫結構,在OCP的時候老師講過,OCM老師也講過,可是我完全不知道如何用自己的語言去描述。一時間呆在那裡,只能尷尬的講了下說了下Oracle的實體儲存體結構,一個庫有多個資料表空間,一個資料表空間有多個資料檔案等等應付。
因為他也是搞DBA的,在此之前我以為他會問我諸如DG,RAC,GC等等的一些問題,我自我安慰的想是我沒有準備,但是這個可是Oracle最基本的東西,我真的對這些知識有過自己的領悟嗎。
後來在網上翻了下資料,大多都是長篇大論,介紹的很詳細,但是並沒有三言兩語可以解釋清楚的答案。
最後翻到了以前OCP培訓時老師留給我的相關文檔,找到了如下一段描述:
第一部分Oracle資料庫的體繫結構:
Oracle Server = 執行個體(instance)+資料庫(database)。
執行個體是由一組記憶體結構(SGA system global area )+後台進程+PGA
資料庫是由一組OS檔案組成,它由資料檔案、參數檔案、控制檔案、重做記錄檔組成。
SGA是所有伺服器處理序和後台進程共用的記憶體地區,當instance啟動時建立該地區。它在內在地區中有且只有一個。它由資料快取(databasebuffer cache)、重做日誌緩衝區(redo log buffer)、共用池(shared pool)、大池(large pool)、java pool等組成。
為什麼把“第一部分”標紅,因為這是這個文檔的開篇。接下來的一句已經清清楚楚明明白白告訴了我答案。餘下不到百字的介紹則描述了各自的功能和組成,如此的精鍊簡潔,才發現這才是正真的大師風格。
彷彿被人打了一巴掌。
大師者集大成者也,雖然拿到所謂的大師認證,但我自己清楚的知道我離大師還有幾座山的距離。
鬼谷子的局有一句話 “欺人容易,欺心卻難”,總覺得這一句很適合自己,你可以裝著自己很高端,卻無法欺騙自己空虛的內心。
總以為做過一些進階實施就自得意滿,可是我真的理解了這些知識嗎。
有的時候最簡單也是最難,如果只是一直依樣畫葫蘆我將只是一個可憐的模仿者,永遠不可能成為正真的大師。