出版時間:2010 年7月 出版社:人民郵電出版社 作者:白鱔 頁數(shù):338
Tag標簽:無
內容概要
本書是一本介紹Oracle數(shù)據(jù)庫優(yōu)化方法的書,以一個實際的大型優(yōu)化項目為原型,用日記的形式記錄了一個優(yōu)化小組的DBA 如何從紛繁的頭緒中找到突破口,進而完成了一個看似不可能完成的任務的歷程。在日記之間,作者還穿插了優(yōu)化小技巧、每日點評等,總結了數(shù)據(jù)庫優(yōu)化常用的方法、工具和技巧。另外本書第一次詳盡地披露了Oracle數(shù)據(jù)庫內部存儲結構,并公布了部分代碼,對于有興趣研究數(shù)據(jù)庫內部存儲結構或者編寫dul工具的讀者有一定的參考價值。 本書適合Oracle數(shù)據(jù)庫管理開發(fā)人員閱讀。
作者簡介
白鱔,本名徐戟,國內資深Oracle數(shù)據(jù)庫優(yōu)化專家,從事Oracle數(shù)據(jù)庫應用開發(fā)、性能優(yōu)化工作超過15年。曾供職于DEC、賽格集團、長天集團、聯(lián)想集團等國內外知名企業(yè),擔任過應用體系總監(jiān)、技術總監(jiān)等高級技術職務。曾主持開發(fā)了國內第一套聯(lián)機實時計費系統(tǒng),國內第一套三檢合一的檢驗檢疫綜合業(yè)務系統(tǒng)。1999年起致力于Oracle數(shù)據(jù)庫性能優(yōu)化等方面的研究,參與了大量性能優(yōu)化項目,積累了許多實際工作案例。2008年起,在博客上連載《DBA日記》,希望將自己在Oracle數(shù)據(jù)庫應用領域的10多年的經(jīng)驗與廣大讀者分享。
書籍目錄
5月11日 出發(fā) 今日點評 優(yōu)化小技巧 性能 優(yōu)化項目 優(yōu)化小技巧 優(yōu)化常用知識1:診斷事件 5月12日 開始工作和CPU瓶頸 今日點評 優(yōu)化小技巧 數(shù)據(jù)庫 優(yōu)化的步驟 優(yōu)化小技巧 按部就班是成功的關鍵 優(yōu)化小技巧 優(yōu)化常用知識2:常用診斷事件清單 5月13日 聯(lián)席會議 今日點評 優(yōu)化小技巧 優(yōu)化流程 優(yōu)化小技巧 轉儲文件內容1:數(shù)據(jù)文件 5月14日 聚會 優(yōu)化小技巧 系統(tǒng)級 優(yōu)化 優(yōu)化小技巧 轉儲文件內容2:轉儲對象的段頭 5月15日 業(yè)務支撐系統(tǒng)出問題了 今日點評 優(yōu)化小技巧 索引監(jiān)控 優(yōu)化小技巧 性能 優(yōu)化時常用的工具 優(yōu)化小技巧 轉儲文件內容3:轉儲控制文件 5月18日 Top SQL 優(yōu)化小技巧 查找Top SQL 優(yōu)化小技巧 索引設計的一些建議 優(yōu)化小技巧 什么是索引的集群因子 優(yōu)化小技巧 轉儲文件內容4:轉儲控制文件 5月19日 南京的死鎖問題 今日點評 優(yōu)化小技巧 Oracle的死鎖 優(yōu)化小技巧 幾個常用的與鎖相關的腳本 5月20日 凌晨的郵件通知短信 今日點評 優(yōu)化小技巧 /10028事件 優(yōu)化小技巧 PL/SQL 優(yōu)化工具profiler 5月22日 ODS系統(tǒng)和RAC 優(yōu)化小技巧 以開放的心態(tài)做服務 優(yōu)化小技巧 全局熱塊沖突 優(yōu)化小技巧 PL/SQL中數(shù)據(jù)類型的性能 5月23日 實時ODS 今日點評 優(yōu)化小技巧 ODS系統(tǒng)中Oracle數(shù)據(jù)庫設計管理要點 優(yōu)化小技巧 ODS系統(tǒng)中的開發(fā)要點 優(yōu)化小技巧 集合類型的效率 5月24日 任務提前 今日點評 優(yōu)化小技巧 占位操作與開關操作 優(yōu)化小技巧 優(yōu)化計劃調整 優(yōu)化小技巧 自動段存儲空間管理1 5月25日 傾斜的索引字段 優(yōu)化小技巧 傾斜字段的處理 優(yōu)化小技巧 自動段存儲空間管理2 5月26日 優(yōu)化方案 優(yōu)化小技巧 優(yōu)化中的排隊效應 優(yōu)化小技巧 DB Cache調整方案如何制訂 優(yōu)化小技巧 自動段存儲空間管理3 5月27日 無奈 今日點評 優(yōu)化小技巧 臨時表空間和排序 優(yōu)化小技巧 undo表空間和回滾段 5月28日 BBED的妙用 今日點評 優(yōu)化小技巧 如何啟用BBED 優(yōu)化小技巧 模擬ORA-8102及處理過程 優(yōu)化小技巧 如何計算數(shù)據(jù)塊中某個字段的位置 優(yōu)化小技巧 如何計算索引塊中某個字段的位置 優(yōu)化小技巧 自己動手寫一個dul 優(yōu)化小技巧 bootstrap$的訪問 優(yōu)化小技巧 unloadBlock函數(shù) 優(yōu)化小技巧 unloadRow函數(shù) 5月29日 突破困局 優(yōu)化小技巧 查找“熱的”緩沖區(qū)的常用腳本 優(yōu)化小技巧 什么時候需要使用多緩沖 優(yōu)化小技巧 AIX操作系統(tǒng) 優(yōu)化要點 5月30日 賬務處理 今日點評 優(yōu)化小技巧 表訪問的方式 5月31日 電腦壞了 今日點評 優(yōu)化小技巧 通過OEM錄像采集數(shù)據(jù) 優(yōu)化小技巧 調整游標相關參數(shù) 6月1日 ORA-4030和內存泄漏 今日點評 優(yōu)化小技巧 如何分析ORA-4030 6月2日 優(yōu)化方案 今日點評 優(yōu)化小技巧 一個提供參考的 優(yōu)化方案 優(yōu)化小技巧 游標的共享 6月3日 拆分大型SQL 優(yōu)化小技巧 拆分復雜SQL 6月4日 TNS-12535 今日點評 優(yōu)化小技巧 防火墻和SQL*Net 優(yōu)化小技巧 跟蹤SQL*Net 6月5日 休息時總是最忙的 今日點評 優(yōu)化小技巧 使用hanganalyze 優(yōu)化小技巧 重做日志文件 優(yōu)化的要點 6月6日 實施 優(yōu)化 今日點評 優(yōu)化小技巧 升級維護窗口的確定 優(yōu)化小技巧 回退預案的作用 6月7日 突發(fā)事件 今日點評 優(yōu)化小技巧 使用HINT 優(yōu)化SQL 6月10日 使用自動采樣比例引發(fā)的故障 今日點評 優(yōu)化小技巧 關于表分析比例的判定 優(yōu)化小技巧 AIX下使用vmstat分析I/O問題的小技巧 6月11日 階段總結 今日點評 優(yōu)化小技巧 STATSPACK報告在 優(yōu)化項目中的作用 優(yōu)化小技巧 STATSPACK報告頭的解讀 6月12日 陰謀 今日點評 優(yōu)化小技巧 分析STATSPACK的負載數(shù)據(jù) 優(yōu)化小技巧 重要的命中率指標 6月13日 演戲 今日點評 優(yōu)化小技巧 Top 事件 優(yōu)化小技巧 常見事件清單 6月14日 轉機 今日點評 優(yōu)化小技巧 STATSPACK報告分析之DB Cache1 優(yōu)化小技巧 STATSPACK報告分析之PGA 6月15日 青島 今日點評 優(yōu)化小技巧 如何 優(yōu)化閂鎖 6月16日 SQL 優(yōu)化效果 今日點評 優(yōu)化小技巧 如何轉儲數(shù)據(jù)塊 優(yōu)化小技巧 通過樹轉儲來分析索引碎片 6月17日 完美的效果 今日點評 優(yōu)化小技巧 I/O系統(tǒng) 優(yōu)化的經(jīng)驗與體會 優(yōu)化小技巧 STATSPACK報告之I/O 問題分析 6月18日 準備收工 優(yōu)化小技巧 STATSPACK報告分析之DB Cache2 6月19日 ORA-1591 今日點評 6月20日 好奇心惹的禍 優(yōu)化小技巧 STATSPACK報告分析之共享池分析 7月20日 重回沈陽 優(yōu)化小技巧 如何評估 優(yōu)化效果 優(yōu)化小技巧 STATSPACK報告分析之undo分析 優(yōu)化小技巧 STATSPACK報告分析之鎖分析 7月21日 課堂風波 優(yōu)化小技巧 平均事務響應時間的計算 優(yōu)化小技巧 STATSPACK報告分析之閂鎖分析 7月22日 世博園一日游和心想事成 優(yōu)化小技巧 STATSPACK報告分析之Top對象 優(yōu)化小技巧 STATSPACK報告分析之Top SQL 7月23日 漫長的一夜 優(yōu)化小技巧 本案例的啟示 后記,也算結束語
章節(jié)摘錄
在Metalink文檔285270.1里對死鎖檢測做了一個簡要的介紹,看過這份文檔,再參考John的提示,仔細想想,在做死鎖檢測的時候,確實是必須持有parent enqueue hash chains閂鎖的,因為死鎖檢測(DLD,DeadLock Detection)需要通過對每個資源做一個檢查,才可能發(fā)現(xiàn)哪些資源出現(xiàn)了死鎖。而如果對每個資源都進行一次死鎖檢查,那么開銷就太大了,因為在一個大型系統(tǒng)中同時有幾十萬甚至上百萬個資源都是很正常的。每個資源上面都有三條鏈:一條是持有者鏈,鏈接了所有持有這個資源的鎖的情況;一條是等待轉換狀態(tài)鏈,鏈接了所有等待轉換鎖狀態(tài)的請求;還有一條是等待鎖定鏈,鏈接了所有等待鎖的請求。如果不出現(xiàn)死鎖,那么這三條鏈和資源的狀態(tài)在很短的時間內肯定會發(fā)生變化,而死鎖出現(xiàn)時,相關的資源肯定在很長時間里都不會發(fā)生變化。,因此在檢測死鎖時,只需要對那些從上回檢查后狀態(tài)一直沒有發(fā)生過變化的資源進行檢查就可以發(fā)現(xiàn)死鎖了。為了獲取這些數(shù)據(jù)的一致性視圖,在做死鎖檢測時就必須持有這個門鎖。死鎖檢測本身很快,所以一般情況下不會引起問題。不過,如果出現(xiàn)了死鎖,要做死鎖情況轉儲時就可能會出問題。系統(tǒng)狀態(tài)轉儲或者進程狀態(tài)轉儲被掛住的可能性也是存在的,這很可能是由于另外一個bug引起的,無論哪個bug,關閉轉儲應該可以解決問題。由于在進程狀態(tài)轉儲時,死鎖檢測會話會持有parent enqueue hash chains父閂鎖,所以在這個時候,任何需要申請鎖資源(包括內部鎖)的操作都需要等待。由于游標分析需要申請library cache lock,所以在這種情況下,游標分析無法進行。部分會話會報ORA-600 kksscl-inf-inl-loop故障??纯词謾C,已經(jīng)是早上6點多鐘,澳大利亞已經(jīng)是早上8點多了,Ben可能已經(jīng)起床。Ben有早上上網(wǎng)閱讀早新聞的習慣,希望能碰到他,和他聊聊這個問題。打開Yahoo Pager,發(fā)現(xiàn):Ben已經(jīng)在線了。Ben聽了問題的敘述后,也立即說這是Oracle的一個頑疾,雖然出了很多補丁,但是還有一些問題沒有解決。.Ben在Oracle工作快10年了,作為澳洲Oracle的救火隊員,他處理過10多個類似的案例,因此他十分肯定地說我的猜測是對的。同時,我從Ben那里拿到了一分關于bug2235386的資料,這份資料比我在Metalink上看到的要詳細得多。從中,我有了十分驚人的發(fā)現(xiàn)。bug 2235386里面詳細介紹了ORA.60導致系統(tǒng)掛住的情況,里面的內容與我和John的想法基本一致,但是patch 2235386并沒有解決這個問題。要解決這個問題,需要在做進程狀態(tài)轉儲之前最好釋放閂鎖,而這是不可能的,因為這樣會導致進程狀態(tài)轉儲或者系統(tǒng)狀態(tài)轉儲的信息不準確。因此在這個補丁里引入了10027和10028兩個事件,通過設置這兩個事件來開啟或關閉進程狀態(tài)轉儲或者系統(tǒng)狀態(tài)轉儲。原來如此,patch 2235386并不能解決問題,而僅僅提供了解決問題的方法,因此Oracle的工程師僅僅是打了補丁,而沒有解決問題,必須打完補丁后,通過設置10028事件關閉系統(tǒng)狀態(tài)轉儲,才能解決這個問題。在死鎖出現(xiàn)時,進程狀態(tài)轉儲對于客戶來說是沒有多大用途的,因此關閉后對客戶分析問題影響不大。忙完這些已經(jīng)快9點了,雖然昨晚一夜沒怎么睡,不過現(xiàn)在一點都沒有覺得困。上午一上班,我就和李工通了電話,在電話里,把我的發(fā)現(xiàn)和他進行了溝通。李工也基本認同了我的分析,決定先找一個本地網(wǎng)來做做實驗,如果能夠解決問題,再全面推廣。原本定于今天下午的關于RAC的交流,由于他們有事,押到明天進行??礃幼咏裉炜梢孕菹⒁幌铝恕?/pre>后記
到今天,這本書也就結束了,其中介紹了一個實際的優(yōu)化案例。有些讀者可能會感到里面的內容有些亂,也有些人可能感覺抓不到頭腦,不知道我想表達些什么。確實,這本書如果當做小說來看,未免太枯燥;如果當做紀實文學來看,又不能弘揚主旋律;作為技術書來看,里面又缺乏有分量的技術。實際上,我在剛開始就說過,本書不是一本介紹Oracle技術的書,因此讀者并不需要像讀技術書那樣一字一句地去摳一些字眼。通過這本書,老自給大家展現(xiàn)了一個優(yōu)化項目,并且教給大家一些系統(tǒng)優(yōu)化的方法和技巧,特別是在優(yōu)化項目中如何控制項目,如何讓整個優(yōu)化工作按照自己的預想進行。粗粗看一遍本書,可能會感覺一個優(yōu)化項目里好像也沒有什么,實際上如果你能夠仔細回味一下,或者把本書仔細翻閱兩遍,你會發(fā)現(xiàn)在平淡的工作中還隱藏了很多內容。實際上,優(yōu)化項目里面并沒有十分高深的技術手段。本書中,老白和老于他們采取的所有技術手段都是大家以往學習過的,都是一些耳熟能詳?shù)臇|西。沒有做過優(yōu)化項目的人,可能覺得做一個優(yōu)化項目無從人手。也有一些人可能感覺優(yōu)化項目里使用的技術不過如此,優(yōu)化實際上也不是什么很難的事情,不過如果你真的去做一個優(yōu)化項目,就會感覺好多地方都無法把握。確實是這樣,優(yōu)化項目中最難的是準確的判斷,準確的把握。在前期的數(shù)據(jù)采集和分析階段,你真的已經(jīng)了解了系統(tǒng)的現(xiàn)狀和主要問題嗎?實際上,要回答這個問題并不簡單,這需要很豐富的經(jīng)驗。如果你對數(shù)據(jù)庫的原理融會貫通了,那么很容易從數(shù)據(jù)庫運行的原理去考慮問題,也就很容易找到目前系統(tǒng)存在什么問題。否則,你可能無法抓住主要問題,真要是這樣,這次優(yōu)化基本上就報銷了。其實本書各部分的內容都是我精心安排的,哪怕是一些好像沒有什么技術內容的章節(jié)。比如“電腦壞了”那一節(jié)講的雖然是我的電腦壞掉了,如何去修理,如何通過小齊從HP沈陽辦事處借了一臺電腦。實際上,這一節(jié)的安裝軟件那方面的內容,介紹了一個DBA的電腦里最常用的工具軟件。我雖然不是一個唯工具論者,但是我認為工欲善其事,必先利其器。適當?shù)厥褂霉ぞ?,合理地使用工具是十分重要的。一個只會使用SQL*Plus的DBA并不一定就是一名優(yōu)秀的DBA?!笆啦﹫@一日游”那一節(jié)實際上是要向讀者說明DBA和客戶溝通時應該掌握一定的技巧,做DBA不能光有技術,而且需要通過一些小手段,讓客戶對你產(chǎn)生信任,以及出現(xiàn)危機時,如何去化解和扭轉。對于每個DBA或者想成為DBA的讀者來說,DBA日記從另外一個側面介紹了一名DBA應該如何去工作,在DBA工作和生活中有哪些需要注意的地方。媒體關注與評論
“我知道很多DBA都有自己收藏的一本秘籍,包括處理各種Oracle問題的必殺術,其中關于性能調優(yōu)的特別多??上н@里面有很多道聽途說的成分,或者知其然而不知其所以然。反觀此書,有很多活學活用的例子;對于各種技巧的適用范圍,也盡量闡述清楚。從最后成書的內容看,作者還是比較負責的。書中的指令,大都經(jīng)過上機驗證?!薄 狟en Wang,澳大利亞知名Oracle技術高手編輯推薦
《Oracle優(yōu)化日記:一個金牌DBA的故事》以作者親身經(jīng)歷的一個大型優(yōu)化項目為原型,用日記的形式講述了項目實施的全過程。生動曲折的項目故事,扣人心弦的尖峰時刻,一一再現(xiàn)了幾個經(jīng)驗豐富的老DBA分析數(shù)據(jù)庫性能問題時的真實場景。書中不僅剖析了優(yōu)化過程,還展現(xiàn)了在優(yōu)化項目中處理紛繁的關系的技巧和方法。伴隨精彩的故事情節(jié)。作者還介紹了DBA常用的優(yōu)化技巧,使讀者在大呼過癮的同時。亦能分享到金牌DBA的寶貴經(jīng)驗。數(shù)據(jù)庫優(yōu)化一直是DBA感到十分高深的問題,很多DBA學習了大量優(yōu)化技術,參加了大量培訓,但是仍然感覺在實際工作中無從入手。實際上,在數(shù)據(jù)庫優(yōu)化工作中,比技術更為重要的是方法。金牌DBA精彩紛呈的經(jīng)歷,86個優(yōu)化技巧活學活用,培養(yǎng)多種能力,保障職場成功,恩墨科技創(chuàng)始人、Oracle ACE Director蓋國強傾力推薦。圖書封面
圖書標簽Tags
無評論、評分、閱讀與下載