Oracle的結構體系的抽象

來源:互聯網
上載者:User

Oracle的結構體系的抽象

一個狂熱攝影愛好者—老王的幸福家庭

 

 

每一本介紹ORACLE的書籍第一章節一般都會介紹ORACLE的結構體系,當開啟該章節時候,讀者會一下子陷入一個充滿了大量晦澀難懂的、陌生的概念之深淵。讀下去的興趣一下子沒有了,產生了ORACLE是一個深奧難懂的一個資料庫的想法。但是如果不知道oracle的結構體系,即使使用oracle多年了,仍然處於低檔次應用水平。為了協助大家理解結構體系的內容,我寫了一個《一個狂熱攝影愛好者—老王的幸福家庭》的介紹,通過對比與聯想,希望有助於您對ORACLE資料庫的結構體系有所理解。

 

 

家庭成員與角色(注意這家人的別名,它們會出現在附件文檔中)

成員

關係

別名

角色功能

老王

一家

之主

SID

用特殊的相機(不用換菲林的一次產生一張照片和一張底片的)照相,並將照片放在DB_BUFFER_CACHE,將底片交給大兒子, 並作標記SCN;

王妻

妻子

DBWR

王妻是一個傳統的中國女性,她的一項工作是不斷地看看DB_BUFFER_CACHE上是否有新的照片,如有,她就放在照片空間(照片空間有照片剪貼簿、掛在牆壁上,照相簿幾部分組成)上。牆上的照片架構一樣大小,有時候一個架構放一張照片,有時候,一個架構放多張照片,有時候一張照片佔用多個架構(照片鏈),每個架構上用SCN(system change number)作記錄,每一張照片有唯一的ID(rowid),這個ID包含牆壁與架構的資訊,

有時候,老王在看牆上照片,覺得不滿意,拿下來進行修改,他就將包含這張照片的架構進行拷貝(也叫快照),並將拷貝放在一個叫回退的儲藏室, 如果對修改滿意並得到確認,王妻則將修改後的照片放回牆壁的原處,並把新的SCN放在架構上。如果不滿意,則從回退的儲藏室取回架構放在牆上,牆壁上的照片回到原來的樣子。

王伯當

大兒子

LDWR

老王照一張照片的同時,產生了一張底片,他將底片放在家裡的廚房裡的一個架子上,在架子上,老王貼了一個標籤,標籤上標記底片,這個標籤叫“LOG-BUFFER”,當大兒子王伯當發現架子上有底片,他立即將底片放在一個筆記本裡,這個筆記本叫做“重做筆記本”,使用這個名字,是因為可以用裡面的底片恢複一張照片。大兒子王伯當將底片按照順序將底片放入到“重做筆記本”,一旦當前的筆記本滿了,他就換另一個筆記本,並在“警示日記本上”作一次記錄。

注意:不是所有照片都有底片的儲存,老王可以指定那些照片不必做日誌。

王仲和

二兒子

ARCH

儘管已經這樣做了,老王還是不放心,他擔心如果來了一場大火,或者其他什麼意外,他的照片底片還是有可能被損壞,他賦予他的二兒子仲和一項任務,一旦大兒子更換“重做筆記本”時候,他就拿出那些“重做筆記本”中的底片,將他放在房子外面的一個安全的地方—後院的地下室,作了一份“重做筆記本”的拷貝,這個拷貝被稱為“歸檔的重做筆記本”,同時他更新“控制筆記本”,並在並在“警示日記本上”作一次記錄。

王小三

小兒子

CKPT

小兒子王小三是一個動作迅速的小傢伙,他的任務將每一個牆壁,照相簿,剪貼冊的照片與控制筆記本中的數字協調起來,當他得到指令,他就飛奔起來,在每一個牆面上寫下數字,並將同樣的數字記錄在“控制筆記本”中,使得每一件事情協調起來。

王管家

管家

SMON

有時候,全家早晨起來,房子顯得淩亂,這是因為昨晚大家休息前,沒有來得及清理各自的事情,SMON負責在開門前處理一下沒有完成的照片與回退(從回退儲藏室中取出照片架構,把舊的版本放回原來的牆上)

王管家妻

女傭

PMON

老王家幹完一天的工作,準備休息,他要求全家休息前,把東西放好,關掉或者停下手裡的工作。讓房間裡參觀的客人離開,一般有4種情況:

1:老王很有耐心,等待所有客人自行離開,再休息;

2:老王沒有耐心,他親自監督每一個客人,但客人看完照片後,他給客人指出出門的方向;

3:老王非常沒有耐心,他揪著客人的衣領,送出門,不讓他們幹完自己的事情;

4:老王,拉下電閘,說,時間到。屋子裡一片狼藉,第二天早上,由王管家來收拾。

當一個客人走後,老王叫來女傭,她監控每一個客人的活動,在這些客人走後,這位女傭不厭其煩地將客人留下的垃圾掃盡垃圾桶裡,並妥善處理。

如果老王沒有拉閘,每個人開著燈,進行清理:王妻會從DB_BUFFER_CACHE架子上取走所有照片,放在合適的牆壁上,大兒子王伯當確定LOG_BUFFER的架子上是空的,所有的底片都在“重做筆記本”中,小兒子王小三在整個房間裡兜了一圈,用最高與最低的目錄編號SCN來更新牆壁與筆記本;老二王仲和把最後的一張底片放在“重做筆記本”,並放到後院的地下室,然後更新控制與警示筆記本。每一件事情做完後,老王關燈,全家休息。


 

下面是一些角色活動中涉及到的一些名詞,在這裡單獨說明:

 

控制筆記本:老王家的主要成員,要想將照片與底片處理的井井有條,需要製作很詳細的筆記(如我們的工作周報),每個人都將自己的事情寫入這個筆記本,這個筆記本叫做“控制筆記本”。“控制筆記本”記錄了每一面牆,剪貼簿等家庭財產的清單條目,當老王覺得要增加一個房間,來放置更多的照片,他必須在“控制筆記本”增加相應的記錄。當老大更換“重做筆記本”時候,他需要在“控制筆記本”增加相應的記錄。當老二作了一份“重做筆記本”的拷貝的時候,他需要在“控制筆記本”增加相應的記錄。當王小三在房間裡跑了一圈,他需要在“控制筆記本”增加相應的記錄。這個特殊的筆記本動態地儲存了所有地方的資產情況,和房子裡以數字表示的背景工作處理序。

 

警示筆記本:每個家庭成員將遇到的問題寫在這個日誌裡。如果需要某個情形下的額外資訊,需要“跟蹤筆記本”,它與警示筆記本配合使用,使得警示筆記本不會那麼淩亂。

 

老王家的其他問題:

如果發生以下問題,老王無法開展一天的工作:

1:找不到新的一日工作的工作計劃(初始設定檔案)

2:後院的地下室滿了,老二沒有空間放置新的底片,全家人只有等著;

3:老王的妻子患了感冒,老王很傷心,他會傷心地關上門,全家停工。

4:有時候老王需要用後院地下室的底片恢複一張(些)照片。如果他丟失一張底片,或者在恢複過程中損壞了一張底片,那他無法恢複那張損壞了底片以後拍的所有照片。

5:老王在工作中有時候不小心,在工作的時候,相機裡的菲林曝光,他會要求相機廠家提供有兩個菲林倉的照相機,萬一一個菲林倉的菲林曝光,他還能指望另一個菲林倉,這第二個菲林倉叫“鏡像”。

 

 

ORACLE記憶體的體繫結構SGA

資料庫啟動的時候,能夠看到以下主要參數資訊

 

名稱

角色功能

共用池

(shared pool)

庫緩衝、字典等

large pool:RMAN  平行處理 多線程伺服器分時記憶

java pool:java代碼資料使用

緩衝儲存區

(buffer cache)

新的資料或者更新的資料工作先在緩衝中進行,然後寫回磁碟

重做日誌緩衝區

(redo log buffer)

當資料被更新後,對於他們所作的修改被儲存在重做日誌緩衝區,當這個區滿了1/3或者有了1M的重做日誌記錄時,這個區的資料寫道聯機重做日誌裡。

 

 

資料庫的體繫結構---老王家與ORACLE的基本內容的對照

ORACLE概念

老王家的對比物

ORACLE資料庫

老王家儲存照片與相關的筆記本、牆壁、儲藏室。

一張照片。老王通過察看、修改、刪除來處理照片,資料庫的行儲存了資料,可以查看,修改、刪除、添加。

行標示(ROWID)

照片的ID

資料區塊

儲存照片的架構。

資料表空間

儲存照片的房間

系統更改號SCN

小三來回兜圈子協調牆壁與各個筆記本中內容的依據

資料檔案

儲存照片的房間的每一個牆壁

聯機重做記錄檔

 

控制檔案

控制筆記本內容

參數檔案

老王在一家開工前必須閱讀的老王家一天工作的活動指南。

資料寫入器

王妻從DB_BUFFER_CACHE架子上取照片,並放在牆壁上

日誌寫入器

大兒子王伯當將底片放入重做筆記本。

歸檔器

二兒子仲和拿出“重做筆記本”中的底片,放入“歸檔的重做筆記本”(在後院的地下室)

系統監視器

王管家

進程監視器

保姆王管家妻子

開啟\關閉\啟動資料庫

王家的房子對客人開放\全家休息\早上常規程式

事務

處理一張或者多張照片

檢查點

王小三同步牆上照片與控制筆記本的內容

 

 

 

 

 

活動流程:

                                                                          1、寫入一條資料

INSERTINTO DEPTVALUES(........)              2、產生重做  儲存在重做緩衝區

                                                                          3、產生UNDO  儲存在復原段中

 

無論是否提交,都要產生重做

 

COMMIT;       1、讀取一致性(原理SCN)

              2、將重做日誌緩衝寫入聯機重做日誌 

繼續其他工作,如果一個聯機重做日誌寫滿,LGWR關閉這個日誌,開啟寫下一個日誌,LGWR還會通知ARCH,將剛剛完成的重做日誌寫入到歸檔重作日誌中。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.