為什么要寫這本書2008年的某一天,我懷著激動(dòng)的心情參加了支付寶公司的面試,這次面試讓我對(duì)國(guó)內(nèi)最前沿的數(shù)據(jù)庫(kù)自動(dòng)化運(yùn)維技術(shù)有了初步的認(rèn)識(shí),對(duì)我的職業(yè)生涯影響非常大,時(shí)刻激勵(lì)著我以后不管遇到什么困難或者誘惑,Oracle始終都是我追逐的愛(ài)好和目標(biāo)。
在接下來(lái)幾年的工作中,我較為深入地研究了C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)、Linux操作系統(tǒng)原理以及Shell(PHP/Java)編程等知識(shí),這些技術(shù)能夠很好地支撐Oracle運(yùn)維管理。同時(shí),多年的經(jīng)驗(yàn)告訴我,對(duì)集運(yùn)維與開(kāi)發(fā)于一體的Oracle運(yùn)維管理體系來(lái)而言,精通一門開(kāi)發(fā)語(yǔ)言是相當(dāng)有必要的,因?yàn)橹挥羞@樣才可以更為深入地了解數(shù)據(jù)庫(kù)與業(yè)務(wù)程序之間的架構(gòu)設(shè)計(jì),并能夠更為精確地把控Oracle管理優(yōu)化,從而在面對(duì)各種疑難問(wèn)題時(shí)找到解決的突破口。
2014年,我有幸與來(lái)自支付寶開(kāi)發(fā)團(tuán)隊(duì)和淘寶運(yùn)維團(tuán)隊(duì)的伙伴共事,學(xué)習(xí)交流了來(lái)自阿里的系統(tǒng)架構(gòu)設(shè)計(jì)及運(yùn)維管理理念,這使我編寫自動(dòng)化數(shù)據(jù)庫(kù)運(yùn)維書籍的想法更加強(qiáng)烈,并希望通過(guò)書籍與大家分享自己多年的工作經(jīng)驗(yàn)。
本書主要特色由于Oracle運(yùn)維管理的專業(yè)性門檻較高,導(dǎo)致Oracle運(yùn)維管理成本增加。在這種情況下,如何深入掌握Oracle,如何提高數(shù)據(jù)庫(kù)運(yùn)維效率成為許多數(shù)據(jù)庫(kù)管理者的困擾。盡管國(guó)內(nèi)有關(guān)Oracle方面的書籍繁多,但卻沒(méi)有一本真正意義上介紹Oracle數(shù)據(jù)庫(kù)運(yùn)維自動(dòng)化的書。本書從與Oracle緊密相關(guān)的操作系統(tǒng)層面入手,將操作系統(tǒng)架構(gòu)與Oracle體系有機(jī)整合,以逐步深入的方式將Oracle基礎(chǔ)理論運(yùn)用到實(shí)際操作中,引導(dǎo)讀者在面對(duì)故障時(shí)找到處理問(wèn)題的正確方法。同時(shí),結(jié)合開(kāi)放式可擴(kuò)展的自動(dòng)化運(yùn)維體系,將數(shù)據(jù)庫(kù)運(yùn)維工作按需自動(dòng)化,在保障數(shù)據(jù)庫(kù)高性能運(yùn)行的同時(shí),大大提高了數(shù)據(jù)庫(kù)運(yùn)維工作的效率。
本書讀者對(duì)象根據(jù)本書的內(nèi)容特點(diǎn),可以將閱讀對(duì)象分為以下幾類:
Oracle數(shù)據(jù)庫(kù)管理人員;Oracle數(shù)據(jù)庫(kù)開(kāi)發(fā)人員;應(yīng)用架構(gòu)師;數(shù)據(jù)庫(kù)架構(gòu)師;系統(tǒng)集成架構(gòu)師;運(yùn)維管理維護(hù)人員;數(shù)據(jù)庫(kù)技術(shù)愛(ài)好者。
如何閱讀本書閱讀本書前需要對(duì)Oracle基礎(chǔ)知識(shí)有一定的了解和掌握,只有這樣才能保證閱讀的暢通性。如果對(duì)某些知識(shí)點(diǎn)存在困惑,可以查閱Oracle在線官方文檔(http://docs.oracle.com)獲取幫助。
本書共10章,分為三篇:基礎(chǔ)篇、優(yōu)化篇、方法篇。
基礎(chǔ)篇(第1~4章)主要介紹了Linux環(huán)境下Oracle內(nèi)存體系架構(gòu)的組成和功能,同時(shí)對(duì)Oracle日志與回滾段內(nèi)容進(jìn)行了講解,在幫助讀者深入理解Oracle知識(shí)體系的同時(shí),為后續(xù)數(shù)據(jù)庫(kù)優(yōu)化及備份恢復(fù)打下基礎(chǔ)。
優(yōu)化篇(第5~6章)主要介紹了Oracle SQL優(yōu)化的原理和思想,并結(jié)合CBO優(yōu)化器對(duì)Oracle優(yōu)化進(jìn)行探索。其中,SQL優(yōu)化原理和思想是CBO優(yōu)化的基礎(chǔ),將兩者結(jié)合即可提供Oracle數(shù)據(jù)庫(kù)優(yōu)化參考。
方法篇(第7~10章)主要講解了Oracle備份恢復(fù)的原理,以及如何制訂符合自身數(shù)據(jù)庫(kù)特點(diǎn)的Oracle備份恢復(fù)計(jì)劃。同時(shí),結(jié)合自動(dòng)化運(yùn)維管理系統(tǒng)、自動(dòng)化歷史分析系統(tǒng)及自動(dòng)化實(shí)時(shí)監(jiān)控系統(tǒng)對(duì)數(shù)據(jù)庫(kù)自動(dòng)化運(yùn)維進(jìn)行實(shí)踐,幫助數(shù)據(jù)庫(kù)維護(hù)人員從大量重復(fù)煩瑣的運(yùn)維工作中解放出來(lái),實(shí)現(xiàn)高效率、自動(dòng)化的數(shù)據(jù)庫(kù)管理。
勘誤和資源由于本人水平有限,編寫時(shí)間也比較倉(cāng)促,書中難免有錯(cuò)誤或者不準(zhǔn)確的地方,在此懇請(qǐng)讀者朋友批評(píng)指正。你可以 將書中的錯(cuò)誤發(fā)送到Bug勘誤表頁(yè)面中,同時(shí),書中的源碼文件也會(huì)發(fā)布到華章公司的網(wǎng)站上并及時(shí)更新。如果有任何疑問(wèn)或者建議,也歡迎發(fā)送郵件,期待你們真摯的意見(jiàn)反饋。
致謝感謝Oracle技術(shù)社區(qū)的支持以及來(lái)自BAT等企業(yè)的同事和朋友們的技術(shù)分享,感謝Oracle小筑以及Unix DBA等技術(shù)社區(qū)的朋友們,他們包括但不限于李培躍、丁鐵球、周操、文智輝、許劍鋒、陶衛(wèi)、賀學(xué)兵、周立明、李杰斌、羅炳森、龔明全、蹇波等。
感謝機(jī)械工業(yè)出版社華章公司的楊福川老師和李藝?yán)蠋煟銈兊膶I(yè)和熱情深深地打動(dòng)了我,讓我能夠堅(jiān)持完成本書的編寫。同時(shí)感謝你們對(duì)本書頁(yè)面排版等方面的建議和支持。
感謝公司的同事和領(lǐng)導(dǎo),謝謝你們給予我較為充裕的時(shí)間來(lái)完成本書。
特別感謝我的朋友李亞、李純香、鄭勇斌,謝謝你們對(duì)本書的大力支持。需要額外感謝的還有蓋國(guó)強(qiáng)老師以及馮大輝老師等。
最后要感謝我的妻子劉楊及父母對(duì)我和孩子的照顧,因?yàn)橛辛四銈兊睦斫夂椭С郑攀刮矣谐渥愕臅r(shí)間和精力來(lái)完成本書。
謹(jǐn)以本書獻(xiàn)給那些還在追逐、熱愛(ài)Oracle技術(shù),并依然堅(jiān)持夢(mèng)想的朋友們。
冷 菠
冷菠,DBA,有近10年Oracle數(shù)據(jù)庫(kù)管理與運(yùn)維經(jīng)驗(yàn),曾擔(dān)任美資企業(yè)Senior DBA職務(wù)、支付寶成都公司數(shù)據(jù)庫(kù)團(tuán)隊(duì)負(fù)責(zé)人,現(xiàn)就職于上市公司海康威視重慶分公司。
擅長(zhǎng)數(shù)據(jù)庫(kù)備份恢復(fù)、數(shù)據(jù)庫(kù)性能診斷優(yōu)化以及數(shù)據(jù)庫(kù)運(yùn)維自動(dòng)化等,對(duì)于主機(jī)存儲(chǔ)、網(wǎng)絡(luò)、系統(tǒng)業(yè)務(wù)架構(gòu)、大數(shù)據(jù)有較為深入的研究。目前致力于大數(shù)據(jù)、智能一體化、開(kāi)源云計(jì)算等領(lǐng)域的佳實(shí)踐探索。主要涉及領(lǐng)域有通信、金融、游戲、政府部門以及傳統(tǒng)制造業(yè)領(lǐng)域。
網(wǎng)名悠然,活躍于國(guó)內(nèi)外Oracle、Unix技術(shù)交流群。