Oracle一家的幸福生活

regonly1發表於2008-08-08

 一個名叫Sid的男人,狂熱地愛好拍攝、儲存和整理照片。Sid的妻子名叫Debbie,他們有三個兒子LoganArchieChuck sidoracle例項,照片是資料)

 他有一所很大的房子,同住的有男管家Simon和女僕Pam。我將介紹他的家庭、他的房子和他的愛好:拍攝、收集和炫耀他的照片。

現在,Sid快樂地生活著—家庭、朋友和假期。他不時地拍照。事實上,他總是隨身帶著相機。他不想錯過任何東西。

每一個早餐、午餐和晚宴,都會被拍下來。當孩子們從學校回家,鏡頭攝入他們對父親的問候。當孩子們做家庭作業的時候,“卡嚓、卡嚓、卡嚓”,照相機的快門響個不停。

(照相只是要說明資料庫不斷從外部接受資料)

 棒球賽上,兒子Archie的每一個投擲都被拍攝下來。學校的舞會上,Chuck的父親拍下了每一個緩慢的舞步以及在蘇打水機器旁的交談。而他的狗——Sadie則是這個世界上被拍攝次數最多的狗。

他和他的家庭收藏了數以百萬計的照片。一些照片被銷燬掉了,一些則經歷了改變。Sid有一套神奇的系統來處理這些照片。

讓我來告訴你一些關於他的家庭、他的房子的事,以及關於他和他的家人如何致力於發展、組織和保護所有這些照片。

Sid用一架特殊的相機拍攝。他的相機每拍攝一次,就同時產生一張照片和一張底片。他從來不用換膠捲(這是一種科幻技術)。

照片被貼在房間的牆壁上,而底片則被儲存在一個安全的地方。

 

1.1.1 Sid的家

我介紹過Sid的家了嗎?嗯。那裡非常的大而且到處都是照片。因為照片實在是太多了,所以Sid必須尋找地方來放置它們。

一些照片被掛在牆上,一些被藏在照相簿內,一些被插入剪貼簿裡,一些被放在儲藏室的一個盒子裡再也不會被撇上一眼。所有這些照片都被放在他家中的某處。(照相簿和剪貼簿應該指的是SGA中的某部分)

他稱呼這些放置照片的地方為“相片空間”。一個相片空間可能是一個有著很多牆壁的房間,或者是有著很多頁的剪貼簿。一個房間是照片的邏輯儲存單元。 (房間是表空間)

房間內的牆壁則是相片空間中儲存照片的物理結構。

(牆壁是資料檔案,房間是由多個牆壁組成的)

 

1.1. 2 Debbie的家務事

因為Sid忙於拍攝和處理照片,他沒有足夠的精力來放置和儲存它們—那是她妻子的工作。Debbie的全名是Debra Wrider (寫程式)

她的T恤衫上印著DBWR—這是一種家庭傳統—為所有的東西做標籤。

把所有這些照片放置得井井有條是一件巨大的工作,不過SidDebbie已經建立了一個系統。當Sid拍攝結束後,他把照片都放在廚房裡一個特定的架子上。 (架子是DBBUFFER

那個特定的架子被稱為“DB_BUFFER_CACHE”。Debbie時常檢查那個架子,看看上面是否有新拍攝的照片。在白天,她把從架子上取回的照片分別放置到對應的相片空間。

(這裡沒有說明她工作的幾個要求,幹什麼事情都要有激發條件的,不然誰做^_^

 

事實上,在一場棒球賽或者學校的舞會上,Sid製作照片的速度太快了。以至於Debbie幾乎跟不上。這是一個特別的情景,Sid拍攝照片,然後放置在那個特定的架子上,

Debbie把這些照片放在剪貼簿裡,掛在牆上或者插入照相簿內。

Sid帶著照片和底片進入廚房時,他和他妻子之間可能會有這樣的一段對話:

(照片是提交後資料,底片為日誌資料)

Sid:“親愛的,猜猜我給你帶回來了什麼?”

Debbie:“你又拍了很多照片,是嗎?你知道我是多麼喜歡整理照片啊。”

Sid:“當然了,Archie的棒球隊贏得了最後一局。他在第九局以兩個二壘打獲勝,我全部都拍攝下來了。”

Debbie:“太好了,那些照片放在相片空間9號牆壁的運動類裡,看上去一定棒極了。我已經等不及去放置它們了,我將邀請所有的鄰居來觀賞。”

Sid:“Archie也非常高興。OK,我再去拍一些照片,我將在23毫秒後回來。哦,順便說一下,我剛才將那些照片放在DB_BUFFER_CACHE架子上。

現在Sid的目錄號為1332935。”Debbie:“知道了,再見。”

為了易於管理照片、框架和日誌,他使用一種特殊的數字來建立目錄,稱之為Sid的目錄編號。他用這些獨特的、不斷遞增的數字來追蹤對這所房子內所有照片的操作。SCN

SidDebbie已經對查閱Sid的目錄編號感到厭倦。Sid在所有的照片、錄影帶和底片上都寫上“Sid的目錄編號”,累得手要抽筋。

最後,他們將“Sid的目錄編號”縮略為SCN。記住SCNSid的生活都圍繞著它展開。SCN是oracle內部用於維護一致性的重要機制)

現在,全家人都知道這個數字被簡稱為SCN。你可以在每一個地方都看到SCNSid把它們寫在底片上,然後他把低位和高位的SCN寫在每一包底片外面。

Debbie把它們寫在她放置照片的地方。這些數字在Sid的複雜家庭生活中顯得尤為重要。

Debbie把照片放在框架裡,房子裡的每一個框架都是一樣大小。一些框架只儲存了一張照片,一些框架則儲存了幾張照片。一些特別大的照片則要佔據多個框架。(框架是dbblock

Sid有一張和原物同樣大小的照片,拍攝的是他在跳傘後在空中做造型動作,這張照片佔據了兩個框架。當照片跨越框架時,Sid稱之為照片鏈。

任何時候,只要Debbie改變框架內的照片,她就把照片的SCN寫在框架上。房子內的每張照片都有一個惟一的數字。他們稱照片的這個數字為照片ID rowid

這些照片ID幫助Sid管理家中所有牆上的照片。如果他需要儘快找到一張照片,他透過照片ID來實現。透過照片IDSid能夠迅速找到牆壁和儲存照片的框架。

有時候,Sid會對照片進行一些改變。如果他要編輯一張照片,那麼他讓Debbie透過照片ID找到他的照片。Debbie給他一份包括所需照片的整個框架的複製。(資料更改前映像)

為防止Sid可能改變主意,不喜歡他已經做的一些改變,他把那份複製放在一個儲藏室內,稱之為“回退”儲藏室。當Sid完成了更改並且確定了以後,Debbie把更改後的照片放回到牆壁上原先的地方,並且把新的SCN寫在框架上。如果Sid不喜歡他的更改,他們就從“回退”儲藏室裡取出框架並且把它放回牆上。(儲藏室是回滾段或者UNDO空間)

這樣一來,照片就和Sid沒有改動以前一樣。

 

1.1.3 Logan的家務事

Debbie為了處理Sid的照片已經忙得焦頭爛額,所以她沒有足夠的時間和精力來處理Sid的底片。Sid認為他的兒子們在玩電子遊戲和吃土豆片上浪費了太多的時間,他決定給他們安排任務。

Sid的大兒子叫做Logan William RandolphLogan的襯衫上都印著LGWRLogan有一個非常簡單但是非常重要的任務。 LGWR日誌寫程式)

Sid的相機產生照片的同時產生了底片,Logan的任務是將底片放入筆記本里。家中的廚房裡豎著另一個架子,架子上Sid貼了一個標籤,用來標記那些傳送給大兒子的底片。

標籤被稱為“LOG_BUFFER”,Logan坐在廚房的桌子旁,觀察這個特殊的LOG_BUFFER架子。當有底片被放到這個架子上時,他立即把底片放在筆記本里。 (又一個架子是logbuffer

Sid稱這些筆記本為“重做筆記本”。他使用這個名稱是因為以後他可以用裡面的底片重新制作一張照片。Logan檢查他的架子的頻率要比Debbie的高得多。

lgwr要比dbwr更頻繁,不過還是沒指名lgwr工作的觸發條件)

Sid表示,只要有底片,他就可以隨時重新制作一份照片。Logan和他父親的對話簡短而溫馨:

Sid:“Logan,底片在架子上了!”

Logan:“知道了,我會立即處理的。”

Logan按照他得到底片的順序將這些底片放入“重做筆記本”。一旦當前的筆記本裝滿了底片,他就換另一個新的筆記本。每一次他更換“重做筆記本”後,

都在“告警筆記本”上做一個記錄,然後通知他的兄弟來進行他們的家務活。

(日誌切換點log switch,發生的時候會記錄到告警日誌中)

悲哀,是不是?老爸和他的大兒子太專注於底片了!

順便提到,不是所有的照片都有對應的底片儲存。Sid指定某些照片不必被做日誌,這些照片就沒有對應的底片儲存在“重做筆記本”裡。Sid稱其為“無日誌”。 nolog的情況)

 

1.1.4 Archie的家務事

Sid的第二個兒子Archibald則另有任務。他的襯衫上寫著ARCHArchie從重做筆記本里提取底片後,把它們放置在一個安全的地方。 ARCHIVE歸檔程式)

Archie發現Logan更換到另一個重做筆記本的時候,他就開始行動。他拿起重做筆記本中的那些底片,把它們放在房子外面的一個安全地方。

Sid在後院建造了一個控制好溫溼的地下室。那是他儲存底片的安全地點。如果暴風來到,破壞了房子,他可以使用儲存在地下室的底片來替換那些被損壞的照片。

每一份Logan的“重做筆記本”複製,被稱為“歸檔的重做筆記本”。 可能某一天,你可以聽到Sid和他次子之間的笑談:

Sid::“Archie?你在哪裡?”

Archie:“老爸,我在自己房間裡,Logan現在切換筆記本了嗎?”

Sid:“是的,他剛剛乾完。”

Archie:“知道了,老爸。我會複製這些底片並且製作一個新的筆記本放在地下室裡。然後,我會更新‘控制筆記本’,並且在‘告警筆記本’裡寫一個記錄。”

Sid:“你是一個好孩子,我知道可以相信你。”

archive完成後會更新控制檔案,並記入到告警日誌中)

 

1.1.5 Chuck的家務事

Sid最小的兒子Chuck確保每一件事情都是同步的。他的全名是Charles Kenneth Patrick Thomas。他襯衫上的字母是CKPT CKPT檢查點程式)

Chuck的任務是將每一面牆壁、相片冊和剪貼簿上的相片數字和控制筆記本中的數字協調起來。當他得到訊號,他就開始在房子裡奔跑起來,在每一面牆壁上寫下數字,

同時將同樣的數字也記錄在控制筆記本里。這使得每一件事情都協調起來。以下是一段SidChuck的對話:

Sid:“hiChuck。”

Chuck:“老爸,Logan又開始更換筆記本了嗎?”

Sid:“是的,兒子,你知道規矩。帶著目錄編號1332935跑遍房間,把這個數字寫到每一面牆壁的開頭,每一個剪貼簿的封面和照片盒子的頂部。”

Chuck:“沒問題,給我幾微秒時間搞定”。

Sid:“別忘記把1332935寫在控制筆記本上!”

Chuck:“老爸,我知道了,同樣的事我一天內已經做過幾百次了。”

我敢打賭,你已經對閱讀這個瘋狂的Sid之家感到厭倦,是不是?到現在為止,你可能已經看出Sid有一個功能失常的家庭。功能失常?是的!不過卻有效而可靠。Sid喜歡這樣。

(檢查點程式負責更新控制檔案、資料檔案的頭資訊,以使其保持一致)

 

1.1.6控制筆記本

這個家庭怎樣維持所有這些活動?SidDebbieLoganArchieChuck斷定,要想把這項照片收集和整理工作處理的井井有條,必須要製作很多詳細的筆記。

他們每個人都把自己的東西寫入一個日誌,稱之為“控制筆記本”。 (控制檔案)

控制筆記本有一個記錄整個房子中每一堵牆壁、剪貼簿和照片盒子的家庭財產清單條目。如果Sid增加了一個房間,來放置更多的照片,他在控制筆記本里做一個記錄。

Logan更換重做筆記本時,他在控制筆記本里做摘要記錄。每次Archie製作一個歸檔的重做筆記本放入地下室時,他把名字和SCN的範圍寫在控制筆記本里。

每次Chuck在房子裡跑完一圈,他把細節也記錄在控制筆記本里。這特殊的筆記本動態儲存了所有地方的資產情況,和房子裡以數字表示的程式。

(控制檔案中包含資料庫名、資料檔案、日誌檔案、歸檔檔案,檢查點及scn等相關資訊)

 

1.1.7告警日誌

時不時的總會有些意外發生,也可能出現錯誤。Debbie可能在把照片放進框架的時候發生問題,因為那面牆上已經沒有多餘的空間了。Archie可能無法摺疊起底片條,

因為有人把蘇打水噴在上面。Sid考慮到了所有的可能,他買了一個螺旋軸的筆記本,放在廚房的抽屜裡。在筆記本的面子上寫上“告警日誌”。

每一個家庭成員將遇到的問題寫在這個日誌裡。他們不僅要記下發生的錯誤,還要記下正常的活動過程。

這個告警日誌是一個用來儲存在Sid家裡已經和即將發生的事情的便利場所。如果他們要解釋某個情形下額外的細節,他們製作一個新的“追蹤筆記本”,把資訊記錄在裡面。

這樣一來,這個告警筆記本不會變得比它原先的樣子更雜亂。

(告警日誌記錄例項所有的變動和錯誤資訊)

 

1.1.8清晨程式

全家早晨一起醒來,也總是同時上床睡覺。他們稱這些時間為一天的“啟動”和“關閉”。下面是早晨的啟動程式:

Sid從床上起來,端上一杯咖啡開始他的一天。在咖啡壺邊上,他將一系列指令儲存在筆記本里,稱之為初始化引數檔案。閱讀這列指令幫助他開始新的一天。

啜著咖啡,他走過去確認控制筆記本是否放在老地方。他在房子裡打轉叫醒DebbieChuckLoganArchieSimonPamela(你很快就會遇到他們)。

當每一個人都醒來後,就開啟控制筆記本。確認根據控制筆記本的內容,所有的照片牆壁都沒有問題,當所有的東西都被檢查過以後,他開啟房子迎接賓客,

並開始拍攝照片。Sid僱傭了一個男管家,Simon,在早晨幫助他,Simon的燕尾服上寫著字母SMON(省掉名字裡的一個字母)。有些早晨房子裡特別凌亂,

因為在前一個就寢時間,家庭的每一個成員都沒有及時清理好各自的事物。當Simon就位後,Sid開啟窗簾,掛好電話,開啟門鎖,他的家庭開放,準備好了迎接客人。

(啟動後執行必要的系統清理和例項恢復是smon一項主要工作)

 

SidSimon可能這樣開始一天:

Simon:“早上好,先生。我今天能幫你做什麼嗎?”

Sid:“是的Simon,早上好。看來我們這裡很凌亂啊。我們昨天晚上突然中斷了。你能否處理一下所有這些沒有完成的照片和‘回退’。”

Simon:“當然了,所有這些底片在重做筆記本里的都要被重新制作,然後以簡單的順序放置在正確的框架裡。”

Sid:“你處理完這些後,接著處理‘回退’,是嗎?”

Simon:“當然了,先生。我從回退儲藏室裡取出照片框架,然後把舊的版本放回它們原來的地方。”

Sid:“太棒了,你完成後,我就開啟房子。” (例項恢復是在資料庫open之前完成的)

 

1.1.9夜間程式

Sid家的夜間程式也很有趣。當Sid躺下準備休息的時候,他要求家裡所有的東西都放好、關掉和停下。就寢時間的第一個行動是要求房子裡所有的客人回家去。

Sid晚上的情緒有四種情況。第一種,有時他很有耐性,等待所有的男女客人自行離去後,再就寢;第二種,Sid沒有耐性,他親自來監督每一個客人,

當客人幹完各自的事情(看照片等等)後,他給客人指示出門的方向;第三種,Sid非常沒有耐性,他揪著客人陪他們出門,不讓他們幹完正在乾的事;

第四種,Sid拉下房子的電閘,大叫“時間到”,房子裡一片狼藉。Simon不得不在第二天早晨來清理混亂的場面。 (資料庫關閉的幾種情形)

當一個客人走後留下一團糟時,Sid叫來他的女傭PamelaMonica。她監控客人的活動,並且在客人走後處理善後。她的清潔裝置上貼著標籤PMON

PMON使用者監控程式,負責對使用者資源的清理和回收)

如果Sid沒有突然拉閘,每個人都開啟燈,進行清理。同步處理筆記本來完成各自的任務。DebbieDB_BUFFER_CACHE架子上取走所有的照片,放到合適的牆壁上。

Logan確保LOG_BUFFER架子是空的,所有的底片都在當前的重做筆記本里。Chuck在房子裡兜一圈,用最高和最低的目錄編號(SCN)來更新牆壁和筆記本。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12932950/viewspace-421577/,如需轉載,請註明出處,否則將追究法律責任。

相關文章