專訪資深DBA趙振平:如何成為一名優(yōu)秀的DBA
原創(chuàng)【51CTO.com獨(dú)家特稿】2009年4月2日,51CTO技術(shù)人頻道邀請了資深Oracle DBA、《Oracle數(shù)據(jù)庫精講與疑難解析》的作者趙振平老師作客嘉賓聊天室,與我們共同探討如何成為一名優(yōu)秀的DBA。
趙振平:生于20世紀(jì)末中國西南的一個邊陲小鎮(zhèn)。公元2001年,我正式主攻數(shù)據(jù)庫和數(shù)據(jù)倉庫。開始的歲月,Sybase、Oracle與SQL Server三座大山壓得我無法喘息,從不低頭的我們?nèi)匀灰^續(xù)前行的路。N年以后,我們越過了Sybase、Oracle、SQL Server、MySQL、DB2這幾座大山。但是,中國至今仍然沒有自主知識產(chǎn)權(quán)的數(shù)據(jù)庫,路還很遠(yuǎn)…很長…還需要更多的人與我們一起努力!! ...
以下為聊天實錄,51CTO略有整理
DBA應(yīng)具備哪些素質(zhì)
51CTO:今天來到我們51CTO聊天室做客的嘉賓是《Oracle數(shù)據(jù)庫精講與疑難解析》一書作者,資深Oracle DBA趙振平老師。和我們聊聊如何成為一名優(yōu)秀的DBA。請趙振平老師介紹一下自己的職業(yè)經(jīng)歷。
趙振平: 作為一個在DBA工作很長時間的人士,我想和大家一起分享我的經(jīng)驗。 首先介紹一下我自己,我叫趙振平,2000年左右進(jìn)入IT業(yè),那時候IT業(yè)很容易找到工作。很多華爾街金融家認(rèn)為IT具有投資價值,所以他們大量引入了IT業(yè),導(dǎo)致當(dāng)時的網(wǎng)絡(luò)泡沫。剛開始的時候,我作為開發(fā)人員進(jìn)如IT業(yè),我覺得開發(fā)人員轉(zhuǎn)DBA,對我日后發(fā)展非常重要。作為一個開發(fā)人員,我了解整個開發(fā)流程,包括應(yīng)用程序怎么部署,軟件開發(fā)生命周期,還有數(shù)據(jù)庫如何和應(yīng)用程序如何和數(shù)據(jù)庫進(jìn)行交互。通過一段時間磨煉,我知道很多東西,大概2002年以后,就正式的轉(zhuǎn)到DBA角色,完全脫離開發(fā),在那個時候看DBA這個行業(yè)是很有發(fā)展前景的,不管從美國還是其他一些地方,DBA這個行業(yè)的薪酬,發(fā)展遠(yuǎn)景都非常好。
2002年我正式成為DBA后,一直從事DBA工作,到現(xiàn)在為止我還工作在DBA第一線。03年我獲得了美國Oracle公司的證書,那時候很不容易,國內(nèi)計算機(jī)書籍很少,特別是Oracle數(shù)據(jù)庫這方面,應(yīng)對考試的書非常少。要想通過考試除了對計算機(jī)有所了解,英文也要非常好,尤其閱讀能力。要想獲得第一手資料,很全的資料,必須能夠閱讀Oracle公司官方文檔,包括翻譯書,很多東西是Oracle公司官方文檔翻譯的。獲得OCP證書以后,06年,電子工業(yè)出版社的侯老師想出版Oracle的書,我在DBA這個行業(yè)做了很多年,積累了很多工作經(jīng)驗,很想把我的一些心得跟廣大讀者一起分享,我就從那時候開始寫書,一直到08年Oracle數(shù)據(jù)庫這本書才上市,這就是我這幾年的一些經(jīng)歷。
51CTO:請趙振平老師給我們講一講很多網(wǎng)友關(guān)心的問題,就是DBA這個職業(yè)發(fā)展的前景怎么樣,尤其薪資水平怎么樣。
趙振平: DBA在2000年左右確實是一個高薪行業(yè),DBA薪水跟普通開發(fā)人員薪水拉得非常大,到現(xiàn)在很多人士都覺得DBA是一個高薪行業(yè),導(dǎo)致DBA這個行業(yè)有很多人加入,競爭非常激烈,但是現(xiàn)在DBA行業(yè)還是薪水比較高,在國外在美國,加拿大一般可以拿到75K到80K這個水平。在國內(nèi)DBA薪水拉的得開,主要看個人能力,有拿5000,8000,25萬到35萬的,一些高級的DBA,如果是首席DBA,在一些大公司首席DBA他們薪水可能比這要高得多。 國內(nèi)平均水平8K到10K水平,這就是DBA當(dāng)前薪水情況。
關(guān)于DBA發(fā)展前景,我覺得這個行業(yè)還是不錯的。我們放眼世界除了美國以外,世界還有很多發(fā)展中國家,這些發(fā)展中國家還需要大量的DBA,為什么?因為隨著世界發(fā)展,經(jīng)濟(jì)發(fā)展,網(wǎng)絡(luò)的普及,我們計算機(jī)應(yīng)用在世界上越來越廣,只要人類有活動,就會產(chǎn)生數(shù)據(jù)、信息,只要有信息數(shù)據(jù)就有需要對這些數(shù)據(jù)進(jìn)行管理,只要對數(shù)據(jù)進(jìn)行管理我們就需要DBA這個角色。
DBA這個行業(yè)要考慮遠(yuǎn)一點,不要緊緊把眼光放在中國,要相信某一天我不在中國找這個工作,我可能會到一個中東國家或者到北美、加拿大、日本。所以我覺得DBA這個行業(yè)我感覺還是很有前景的行業(yè),而且這個行業(yè)隨著以后的發(fā)展,這個職位從它產(chǎn)生那天開始,一直非常有活力,而且根據(jù)計算機(jī)在世界各個地方普及,這個職位會越來越重要,越受到人們的尊重,所以我覺得這個職位會非常有前途。
51CTO:金融危機(jī)對DBA有影響嗎?
趙振平:影響非常大,DBA這個職位,在很多人眼里面就是IT職位。其實DBA這個職位分布在很多行業(yè)、領(lǐng)域,尤其是金融、證券業(yè)、石化,還有中國電信、中國聯(lián)通,這些職位分布在這些企業(yè),尤其是大型的金融機(jī)構(gòu),花旗銀行等等,他們DBA也很厲害,他們DBA也很多。
我們知道銀行數(shù)據(jù)是最重要,要保密的,所以說銀行對DBA非常重視,當(dāng)前金融危機(jī)對金融業(yè)的影響非常大。美國很多大銀行,大證券公司,他們關(guān)閉了很多海外機(jī)構(gòu),導(dǎo)致很多DBA的失業(yè),對于工作在金融領(lǐng)域這個行業(yè)的DBA來說,對他們影響是非常大,對于工作在其他行業(yè)的小一點。金融業(yè)受到重創(chuàng),金融業(yè)傳導(dǎo)到其他實體經(jīng)濟(jì),其他實體經(jīng)濟(jì)受到影響也很大,在實體經(jīng)濟(jì)DBA他們薪水、職位能不能保住,對他們影響也是非常大。
我覺得當(dāng)前金融危機(jī)對金融行業(yè),對那些實體經(jīng)濟(jì)影響非常大,但是從往后看的角度,不管金融危機(jī)如何影響,總有一天金融危機(jī)會過去,而且就是說人類的活動、需求不斷產(chǎn)生,所以說在這種前提下,這個世界很多行業(yè)還是不斷需要DBA的,所以我覺得雖然受影響,但是DBA這個行業(yè)還是有前途。
51CTO:您覺得要想成為一個優(yōu)秀的DBA應(yīng)該具備哪些素質(zhì)呢?
趙振平:我覺得分兩個層次,一個從技術(shù)角度,另外一個文化的角度。作為一名DBA必須有全面知識,從技術(shù)角度來說,我們會分成兩大塊,硬件和軟件支持。數(shù)據(jù)庫運(yùn)行到的設(shè)備都是大型設(shè)備,便宜一點像一些PC服務(wù)器,小的十幾萬,一些小型級50、60萬,一些大型機(jī)價錢更貴了。我們要對硬件,主機(jī)比較了解,因為數(shù)據(jù)庫直接運(yùn)行在主機(jī)上,如果一個DBA對主機(jī)不熟悉,你怎么能說從何管理數(shù)據(jù)庫,所以我們對主機(jī)這塊必須非常了解。
另外除了對主機(jī)我們對磁盤陣列也必須了解,因為當(dāng)前雖然技術(shù)發(fā)展,很多銀行、證券公司,一些大的網(wǎng)站,他們都是提供7×24小時,7天24小時不間斷運(yùn)轉(zhuǎn),所以他們的設(shè)備,要提供一種高可用性,需要一些大型設(shè)備,磁盤陣列也要大型的。
另外DBA對網(wǎng)絡(luò)也應(yīng)該有一定了解,現(xiàn)在全球經(jīng)濟(jì)是你中有我,我中有你,為什么在這個金融危機(jī)發(fā)展的前期,各個國家都是各自為政來處理金融危機(jī),但是各個國家包括美國,加拿大,其他國家采取一些措施對金融危機(jī)沒有產(chǎn)生多大的效果。這次金融危機(jī)和美國以前發(fā)生的金融危機(jī)不一樣,以前美國金融危機(jī)僅僅是美國一個國家的金融危機(jī),而現(xiàn)在金融危機(jī)是全球性,一個公司在全球有很多分公司,它的網(wǎng)絡(luò)在邏輯上是聯(lián)在一起,作為一個DBA要管理可能不僅僅是你本地數(shù)據(jù)庫,或者是你中國的數(shù)據(jù)庫,可能你管理是全世界,這些數(shù)據(jù)庫物理可能是分布在韓國日本,所以你對網(wǎng)絡(luò)也有一定的了解,作為一個DBA硬件層次必須了解這幾個方面。
趙振平:軟件方面我們也要了解,首先就是操作系統(tǒng),我們數(shù)據(jù)庫大部分運(yùn)行在Linux等平臺上,如果我們DBA對他們的系統(tǒng)不了解,那么我們無從管理他們的數(shù)據(jù)庫,因為數(shù)據(jù)庫是運(yùn)行在操作系統(tǒng)之上,操作系統(tǒng)就是軸,軸功能不好,其他怎么能好的。軟件包括操作系統(tǒng),另外就是應(yīng)用程序,我們一個數(shù)據(jù)庫運(yùn)行最終目的,是為了給外面人或者客戶提供服務(wù),就存在就是說我們要給其他應(yīng)用程序提供一個交互,如果就是說你對應(yīng)用程序如何訪問數(shù)據(jù)庫我們連這個原理都不了解,那么我們對數(shù)據(jù)庫進(jìn)行管理呢?
另外重要就是我們了解運(yùn)用程序如何訪問數(shù)據(jù)庫,為什么這點非常重要,因為我們了解這個機(jī)制,我們才能知道如何提高我們數(shù)據(jù)庫性能,如何提高我們數(shù)據(jù)庫的最大化,這塊其實我也想多講一下,因為其實數(shù)據(jù)庫經(jīng)常會發(fā)生性能下降的問題,根據(jù)我這幾年的經(jīng)驗分析,數(shù)據(jù)庫性能降低60%,是和我們硬件有關(guān),我們硬件已經(jīng)達(dá)到極限,包括內(nèi)存,CPU計算能力,網(wǎng)絡(luò)傳輸能力已經(jīng)達(dá)到極限,這些是40%。60%是我們數(shù)據(jù)庫設(shè)置不當(dāng)導(dǎo)致效率低下,我們進(jìn)行數(shù)據(jù)庫性能調(diào)整,第一點首先要著眼于60%的軟件問題,40%是發(fā)展我們的硬件。
我們從大的方面講了技術(shù)層面,但要想成為一個優(yōu)秀DBA有兩個方面,一個是技術(shù),一個是文化層面。文化層面就是作為一個優(yōu)秀的DBA,第一必須冷靜,為什么呢,數(shù)據(jù)庫經(jīng)常發(fā)生一些問題,當(dāng)你用數(shù)據(jù)庫最新版本,把最新應(yīng)用用到實際工作當(dāng)中去會遇到很多問題,而且這些問題你在以前沒有看到過,谷歌或者百度也找不到答案,遇到這種情況必須保持冷靜。另外就是必須謹(jǐn)慎,當(dāng)你在一個公司管理一個很重要數(shù)據(jù)庫,出現(xiàn)問題的時候,首先你的客戶,同事正在等待你解決問題,老板正在催促你,CTO在督促你,這個時候必須保持冷靜,因為保持冷靜才能靜下心來,想方設(shè)法解決問題,找到這個問題答案。如果這個時候不冷靜,找不到答案,還會給公司帶來損失,或?qū)е乱恍┢渌墓收?。所以作為DBA冷靜、謹(jǐn)慎這兩點是非常重要的。
另外就是DBA必須有溝通的技巧,這也是非技術(shù)問題。大家知道作為一個DBA他要服務(wù)的對象很多,大家有時候覺得他是一個很神圣的角色,其實不是這樣,DBA其實是一個很下面的角色,為什么呢?因為這個角色為很多人提供服務(wù),你要為客戶提供服務(wù),要為其他客戶提供支持,你要給開發(fā)人員提供技術(shù)培訓(xùn),你要給你的CTO提供整個公司數(shù)據(jù)庫的硬件和軟件規(guī)劃,還有要給你CTO提供性能方面咨詢。所以作為一個DBA你要為很多人服務(wù),還有特別是對市場人員,在競標(biāo)一個項目的時候,DBA需要為市場人員提供一些數(shù)據(jù)方面技術(shù)支持,所以DBA也需要和市場人員溝通,所以一個DBA做得好做不好,技術(shù)是一個層次,溝通也非常重要,跟客戶溝通不好,得罪公司客戶;和開發(fā)人員溝通不好,開發(fā)人員可能寫不出來高效的程序,不和開發(fā)人員進(jìn)行合作可能導(dǎo)致公司整個項目往后推了;不和市場人員溝通好,市場人員得出數(shù)據(jù)不利于這個公司發(fā)展;不和自己CTO溝通好,不知道你的CTO到底讓你做什么,完成什么任務(wù)。所以DBA的溝通能力是非常重要的。
另外一點,作為一個DBA必須有挑戰(zhàn)精神,為什么必須有挑戰(zhàn)精神,因為數(shù)據(jù)庫在不斷發(fā)展,公司在不斷壯大。當(dāng)公司業(yè)務(wù)壯大,數(shù)據(jù)量不斷壯大,我們需要一些高端設(shè)備,包括硬件軟件,我們需要應(yīng)用新的技術(shù)解決我們面臨的問題,如果一個DBA沒有挑戰(zhàn)精神,幾年以后你發(fā)覺你已經(jīng)被整個IT業(yè)遠(yuǎn)遠(yuǎn)落在后面了,所以說一個DBA必須有挑戰(zhàn)性,想方設(shè)法運(yùn)用最新技術(shù)解決公司問題,新的技術(shù)能夠讓我們業(yè)務(wù)提高好幾倍,所以說DBA另外一個精神就是必須有挑戰(zhàn)精神。這就是說作為一個DBA必須要技術(shù)全面,第二就是必須謹(jǐn)慎,小心,有挑戰(zhàn)精神。這僅僅是我作為一個DBA的感受。
#p#
DBA如何提升能力
51CTO:現(xiàn)在還沒有做DBA,但是想做DBA的網(wǎng)友問,DBA工作非常重視經(jīng)驗,如果沒有工作經(jīng)驗很難獲得一份DBA工作,但是這就是形成了一個惡性循環(huán),沒有經(jīng)驗就找不到工作,找不到工作怎么會有經(jīng)驗?所以有網(wǎng)友想問,在沒有實踐條件情況下,怎么獲得DBA的工作的經(jīng)驗?zāi)兀?/FONT>
趙振平:你問的問題是很多網(wǎng)友關(guān)心的問題,其實也是很多大學(xué)畢業(yè)生很感興趣的問題。關(guān)于這個問題我的想法有一點奇怪,我覺得作為一個畢業(yè)生,剛剛進(jìn)入社會的時候,不要在乎這個社會給你多少,而是應(yīng)該想想你能為社會提供多少,你沒有為社會服務(wù),社會是沒有辦法回報你的。所以我覺得應(yīng)該從你成長的角度考慮,進(jìn)入一個新公司目的,不是要掙多少錢,你是想從這個公司讓自己快速成長起來。
對于沒有經(jīng)驗又想從事DBA工作的人我有點建議?,F(xiàn)在PC已經(jīng)很發(fā)達(dá)了,我們不一定非要到很真實的環(huán)境才能獲得一些經(jīng)驗,我們在平時的學(xué)習(xí)中我們也可以學(xué)到一些經(jīng)驗。比如說數(shù)據(jù)庫這塊,我在家可以先學(xué)習(xí)一些數(shù)據(jù)庫理論知識,這些理論知識非常重要,為你以后在工作中解決問題打下一定基礎(chǔ),在你學(xué)了一些理論知識以后,你要進(jìn)行一些實驗,比如說有朋友說我要到真實環(huán)境才可以進(jìn)行實驗,其實不是這樣。在數(shù)據(jù)庫管理中,80%的問題在我們學(xué)習(xí)階段也可以碰到。比如說你不知道數(shù)據(jù)庫down機(jī)以后是怎么回事,很簡單,里把你機(jī)械的電源拔掉,或者你把操作系統(tǒng)直接關(guān)掉,或者你把數(shù)據(jù)庫某些重要文件刪掉??梢阅M一些故障來解決,你會想這些問題是怎么產(chǎn)生的,把以前學(xué)習(xí)的內(nèi)容調(diào)動起來,你會想我要解決這些問題需要用哪些知識,是基礎(chǔ)知識網(wǎng)絡(luò)結(jié)構(gòu)還是一些備份,在解決問題發(fā)覺你學(xué)到知識往往不是數(shù)據(jù)庫,引起數(shù)據(jù)庫故障有很多,有硬件,操作系統(tǒng)本身的原因,當(dāng)你制造一個故障解決了故障以后,你會發(fā)覺你成長非??欤布R、數(shù)據(jù)庫知識補(bǔ)上來了。對于想入行DBA的朋友,平時可以在自己實驗中獲得很多經(jīng)驗,當(dāng)正式工作時,會發(fā)覺很多問題是你遇到過的,這些解決起來會很簡單,不會戰(zhàn)戰(zhàn)兢兢的。
51CTO:有網(wǎng)友問OCP對DBA有用嗎?
趙振平:大家覺得現(xiàn)在OCP大街上滿大街都是,恰恰我不是這樣想的,我們考OCP,并不僅僅為了拿到一個證書,在考試過程中我們完全了解整個Oracle體系結(jié)構(gòu)。有朋友會問,為什么必須了解這個體系結(jié)構(gòu)呢?其實了解Oracle體系結(jié)構(gòu)非常重要,作為一個DBA特別是當(dāng)你用到一些最前沿的技術(shù),當(dāng)數(shù)據(jù)庫發(fā)生問題的時候,我們解決過程是這樣的,先看一下自己能不能解決這個問題,想一下,如果找不到檔案,再去百度搜索一下,如果找不到再去國外網(wǎng)站進(jìn)行搜索,我們用最前沿技術(shù)自己想不出辦法,在百度搜不到,國外網(wǎng)站也找不到,這個時候怎么辦,這個時候Oracle體系結(jié)構(gòu)是非常重要,可能你是第一個碰到這個問題的人,這個時候要完全靠你自己,用你學(xué)到理論知識,結(jié)合發(fā)生故障的一些現(xiàn)象找到一個解決方案,所以你學(xué)習(xí)過程中理論知識很重要。我為什么建議大家要去考,要求考OCP和沒有考的人是不太一樣的。如果你考過OCP人,你有很強(qiáng)的理論知識,你對整個數(shù)據(jù)庫體系結(jié)構(gòu)非常了解,所以O(shè)CP對于DBA意義是很大的。
另外,正如大家說這是獲得一張入場券,一些公司很看中這個證書。但是關(guān)于這個問題我還有一些看法,對于小的公司很重視OCP證書,對于大的公司連你的OCP證書都不看,他不需要這個,因為OCP證書僅僅代表,你對Oracle有很深的了解,不代表你實力很強(qiáng),大的公司不會看重你這個證書,所以這是我對OCP證書的一些看法。
51CTO:您在工作當(dāng)中怎么充實自己,在成為DBA以后,怎么在工作中得到鍛煉提升自己。
趙振平:這幾年我覺得崇尚技術(shù)至上,IT業(yè)就是就是技術(shù)至上的行業(yè),所以這幾年我一直工作在IT技術(shù)的第一線,其實我喜歡工作在DBA技術(shù)第一線,為什么呢?因為只有工作在DBA第一線,才能從題中吸取教訓(xùn)。工作在第一線的時候,當(dāng)我每接觸到一個東西,或者到一個單位的時候,我很喜歡給自己一些挑戰(zhàn)。到一個新的單位,公司業(yè)務(wù)發(fā)生了變化,為了服務(wù)這個業(yè)務(wù),我們硬件發(fā)生了變化,軟件發(fā)生了變化,這個時候我們你要面臨很多挑戰(zhàn)。
DBA這個職位需要有挑戰(zhàn)精神,我們要面對這些挑戰(zhàn),我們通過克服這些挑戰(zhàn),不斷讓自己提高很快,特別是作為一個Oracle DBA來說,當(dāng)你遇到一個問題的時候,這個問題很難,解決整個技術(shù)的過程和矛盾的,在這個各個當(dāng)中壓力非常大,你要讓所有的人滿意,而且DBA的另外一個特性就是反映必須快速,因為一個公司不可能把機(jī)器停24小時,你需要在很短時間內(nèi)把故障排除了,但是當(dāng)你解決這個問題以后,你發(fā)覺你的進(jìn)步非常大,你從一個高點又進(jìn)入了另外一個高點,所以在工作以后,應(yīng)該不斷充實自己。
另外就是給大家一個建議,你到一個新的公司,如果這個公司有新的硬件的時候,在這些硬件沒有成為正式的,運(yùn)作生產(chǎn)中,你可以利用這些硬件設(shè)備或者軟件設(shè)備進(jìn)行一些 實驗,因為對于DBA來說,我們應(yīng)用軟件和硬件,它的成本很昂貴,便宜的十幾萬,小型20、30萬,還有更貴的,對這些硬件對我們個人根本就買不起,當(dāng)你到一個單位,這個單位有這些設(shè)備,但是這些設(shè)備還未投入到生產(chǎn)中,你可以利用這些設(shè)備,這是一個很難得的機(jī)會,沒有比這個更好的學(xué)習(xí)機(jī)會了,這時候我們可以利用這些硬件軟件進(jìn)行學(xué)習(xí)不斷提高,所以我覺得在工作過程就是要不斷挑戰(zhàn)。
51CTO:您覺得在這個過程當(dāng)中遇到的最大困難是什么?
趙振平:我覺得最大的困難就是自己。因為在挑戰(zhàn)過程中,很多時候會非常沮喪,因為當(dāng)我們遇到一個問題的時候,可能我們自己解決不了,我們會想辦法向別人求救, 我們可能用百度,谷歌搜索,當(dāng)你所有的努力沒有得到正確答案的時候最沮喪,也是最困難的時候,你必須強(qiáng)迫自己繼續(xù)努力,當(dāng)你重復(fù)了一次又一次,失敗了以后,最大的敵人就是你自己。繼續(xù)走下去,很多問題可以想出答案,可以想到一種間接的解決方法,我們是自己的最大的敵人,如果我們能夠克服自己我們就能夠往前走。
51CTO:我們知道您之前寫過一本書叫《Oracle數(shù)據(jù)庫精講與疑難解析》,很多網(wǎng)友反映這本書定價比較高,您能談?wù)劄槭裁炊ㄟ@個價格嗎?
趙振平: 很多讀者反映這個問題,覺得這本書定價偏高了,相對國內(nèi)的同行出的書,或者相對一些國外大師出的書高一點點,我也覺得挺高,但是從我個人角度,我覺得高還是正常的。因為這本書和其他書不一樣,它的原創(chuàng)性非常高,盡管一本書有它的優(yōu)點和缺點,很多讀者對我的書有批評,我也接受大家建議,但是這本書也有很多精華。
從我工作起很多案例都在這本書里面,我做DBA這么多年,Oracle 7我用過,Oracle 8,Oracle 10,一直到11g我都用過,在寫書以前這段時間積累的東西,有關(guān)Oracle 8、Oracle 9到Oracle10 g有很多經(jīng)典都放在這本書里面,這本書90%的例子都是我自己遇到的,另外這本書的例子我基本上反復(fù)驗證了,我能找到條件,我在我的PC機(jī)或者服務(wù)器把這故障重新模擬了,所以說大部分例子都是經(jīng)過我自己實驗過?,F(xiàn)在讀者朋友要求很高,首先里這本書必須嚴(yán)謹(jǐn),我把這本書的很多東西全部實驗了。
另外這本書寫的時間非常長,有的朋友說你這本書寫了這么長時間代表你沒有水平,大家可以看一下,這本書很厚,耗時我接近3年的時間,雖然有的讀者覺得這個時間太長了,但是在寫書的過程中,包括策劃,寫,包括試驗,這些都非常耗費(fèi)時間。
像這本書里面例子,有的例子可能我寫的時候,我只需要兩個小時,我就能把這個例子完完全全呈現(xiàn)給大家,但是為了這個例子,我要從不同角度把這個例子呈現(xiàn)給讀者,寫這個例子的時候我要想到方方面面的問題,不能說在這個環(huán)境下這個例子可以,換一個環(huán)境就不行了,所以我做這方面實驗非常多,這就是寫這本書花那么長時間,為什么這本書值那么高的價位。這本書第一版銷售已經(jīng)接近尾聲了,根據(jù)大家反映非常不錯。
另外一點這本書亮點是什么,大家看了,這本書非常厚,非常貴,買一本書相當(dāng)于買其它書兩三本。它其實也適合那些沒有經(jīng)驗,又想成為DBA的讀者,因為作為一個DBA來說,很多問題在入行以前不可能遇到,我這本書里就寫了這些故障如何產(chǎn)生,如何解決這些問題,增加你們的經(jīng)驗。另外一個好處就是說我告訴你的是一種解決問題的方法。并不是解決了這個問題換一種問題你就解決不了。
比如說客戶端連接上數(shù)據(jù)庫這個問題,教給大家的是一種方法,首先一點你要先用Oracle TS,看客戶端是不是能連接數(shù)據(jù)庫,TS可以通數(shù)據(jù)庫,說明客戶端到接聽是通,只是說在連接數(shù)據(jù)庫的時候有問題,屬于TS不通。我們先要看操作系統(tǒng)問題,首先操作系統(tǒng)用命令看能不能通,如果能通我們進(jìn)入Oracle層面,如果不通有兩個問題,一個是操作系統(tǒng)設(shè)置問題,另外可能是我們硬件問題,在這兩塊不通,我們解決操作系統(tǒng)問題和硬件問題;如果能通我們進(jìn)入到Oracle的問題。進(jìn)入到Oracle問題以后,是我們端口不正確,還有我們IP地址有措施,整個過程基本上是遇到任何的Oracle的網(wǎng)絡(luò)問題,基本上大概都是這么走,你只要按照我這個步驟,基本上可以排除,到底客戶端連接不上數(shù)據(jù)庫可以找出原因,這本書告訴大家不僅僅是一些例子,而是告訴你如何解決的方法。另外一點,我想補(bǔ)充是,這本書耗費(fèi)時間特別長,耗費(fèi)大量的時間,精力,我付出了很多心血,雖然也接到了一些網(wǎng)友的批評,我希望大家給我提出更多的建議,我不斷改進(jìn)自己,以后為讀者提供更好的書。
#p#
網(wǎng)友問答
鵬:想從開發(fā)轉(zhuǎn)到DBA應(yīng)該從哪學(xué)起?
趙振平:我覺得如果想做DBA最好從開發(fā)做起。最好開始要做一兩年開發(fā),因為在開發(fā)過程中你能了解,數(shù)據(jù)庫是為前端應(yīng)用程序服務(wù)的。如果一個DBA不了解這個應(yīng)用程序如何運(yùn)行的,如何開發(fā)出來的,如何和數(shù)據(jù)庫進(jìn)行交互,當(dāng)我們數(shù)據(jù)庫出現(xiàn)問題的時候我們可能不知道這個故障怎么產(chǎn)生的,特別是當(dāng)這個數(shù)據(jù)庫出現(xiàn)性能的時候,我們不知道如何解決這個問題,如何和開發(fā)人員協(xié)作解決這個問題,我的建議是最好從開發(fā)做起
另外就是SQL是怎么寫出來,怎么應(yīng)用,在應(yīng)用程序里面怎么運(yùn)行,在數(shù)據(jù)庫服務(wù)端怎么運(yùn)行,你只要了解整個機(jī)制,當(dāng)你以后成為一個DBA的時候,里發(fā)現(xiàn)數(shù)據(jù)庫慢的時候,你能從數(shù)據(jù)庫端跟蹤到服務(wù)器,我的建議要從開發(fā)做起,做一兩年再轉(zhuǎn)到DBA。
當(dāng)你已經(jīng)做了一兩年開發(fā)的時候,想轉(zhuǎn)到DBA,做了一段開發(fā)對數(shù)據(jù)庫有一些了解,這時候里要靜下來看一些理論性的東西,你想讓自己DBA職業(yè)生涯走得很遠(yuǎn)你必須對這些理論知識非常了解,因為雖然技術(shù)不斷更新,但是再怎么更新還是脫離不了數(shù)據(jù)庫,更新以后里也只是需要花小小的時間,讓你的水平站在前沿的水平。要做一個專業(yè)DBA,體系結(jié)構(gòu)這塊必須了解。 學(xué)了很多理論知識以后,需要一個平臺,應(yīng)用這些知識,驗證這些知識,當(dāng)我們看書的時候,當(dāng)我們學(xué)Oracle或者其他數(shù)據(jù)庫理論知識的時候,雖然它自稱是體系結(jié)構(gòu),在我們大腦里面這些知識并不是一個完整的體系結(jié)構(gòu),這時候如果我們有一個平臺,進(jìn)入到一個實驗,我們就能把一些知識聯(lián)結(jié)在一起,所以對它的理論知識必須徹底的了解,不是只知道大概,知道大概作為一個開發(fā)人員沒有問題,但是作為一個DBA要解決問題是很難的,滲透理論知識以后再結(jié)合一些實驗,獲得一些實際工作經(jīng)驗。當(dāng)我們學(xué)理論知識的時候,這些理論知識雖然我們理解,但是這些理論知識在我們大腦里面還是比較模糊,當(dāng)我們實驗以后讓這些理論知識在我們大腦里面更加清晰,所以理論知識必須吃透,進(jìn)行大量的試驗,大膽一點,雖然你解決問題很困難,但是你發(fā)覺你進(jìn)步很大。
DDBBAA:學(xué)哪個數(shù)據(jù)庫有前途?SQL Server還是DB2還是Oracle
趙振平:這個問題挺好回答,但是挺難做。現(xiàn)在DBA不像以前的DBA,前幾年有Oracle,在DB2方面很擅長,就很容易找到工作,可以拿很高薪水,現(xiàn)在其實DBA這個行業(yè)發(fā)展到今天,已經(jīng)有一個質(zhì)的變化了,現(xiàn)在的DBA,特別在大的公司對數(shù)據(jù)庫有一個積累的過程,早先可能用Oracle,發(fā)現(xiàn) SQL Server便宜就用 SQL Server,再用 MY SQL,在一個公司應(yīng)用集成了很多數(shù)據(jù)庫,這時候?qū)BA提出了很多要求,一個DBA不僅要會Oracle,會Oracle只是一個DBA其中一個要求之一,還要會其他的,這些數(shù)據(jù)庫之間要進(jìn)行交互,在數(shù)據(jù)進(jìn)行交互的時候,或者是進(jìn)行數(shù)據(jù)庫訪問的時候,我們要把這些數(shù)據(jù)庫綜合,這時候?qū)τ谝粋€DBA不僅要了解Oracle,要了解 MY SQL,也要了解 SQL Server,你對各種數(shù)據(jù)庫平臺必須了解。
就是對每個數(shù)據(jù)平臺都要有一些了解,另外對操作系統(tǒng)每個平臺你也要了解,你做DBA沒有辦法選擇你的數(shù)據(jù)庫運(yùn)行在哪個平臺,有的數(shù)據(jù)庫運(yùn)行在Windows,有的運(yùn)行在Linux,作為DBA沒有辦法選擇,你只能接受。在操作系統(tǒng)層面不僅要懂Windows,Linux等等都要懂,當(dāng)前對DBA要求更高,對各種數(shù)據(jù)庫都要了解,各個版本操作系統(tǒng)都要了解,這是對當(dāng)前DBA一個很高的要求。
john:dba這個行業(yè)是否和英語能力有很大的關(guān)聯(lián)
趙振平:有關(guān)學(xué)習(xí)數(shù)據(jù)庫的過程,很多朋友遇到就是英語問題,因為我們雖然學(xué)英語學(xué)了很多年,但是我感覺對我來說,我的英文水平也不怎么樣,所以接觸Oracle的時候,各種數(shù)據(jù)庫,都來自于美國或者歐洲國家,他們是用英語表述他們的技術(shù),所以我們在我們想掌握他們技術(shù),領(lǐng)會他們技術(shù)精神,走在技術(shù)最前沿,這時候我們第一手資料都是英文的,所以我們必須學(xué)英文,特別是我考OCP的時候,英語成了我最大的障礙。
開始的時候,三天讀一頁,我記得很清楚當(dāng)時英語實在太差了。開始的時候三天看一頁,對我們來說不僅要了解它的字面意思,這篇文章到底告訴我們什么東西,什么技術(shù),除了字面意思,必須領(lǐng)會技術(shù)精神。但是因為沒有太多參考資料,沒有辦法只有堅持,大概一個月以后就發(fā)生了一些變化。開始的時候,我是三天看一頁,一個月以后我們是一天看三頁,一個月以后我發(fā)覺我的閱讀速度比以前提高了,三個月以后,我一天可以讀7、8頁也沒有問題了。所以我就發(fā)覺在英語和技術(shù)結(jié)合這一塊,主要看你能不能堅持下來,開始的時候非常困難,像我說的三天看一頁,但是你堅持很長時間以后,恰恰反過來,一天看十幾頁都是很正常的,你堅持了三個月,半年或者一年以后,你發(fā)覺可能你的口語水平?jīng)]有什么變化,但是你的閱讀能力已經(jīng)發(fā)生了翻天覆地的變化,所以我覺得無論是DBA還是其他開發(fā)人員都會遇到這個問題,因為你要走在技術(shù)最前沿,你必須很快速瀏覽英文資料,并且知道人家告訴你意思,應(yīng)用人家最新的技術(shù),所以無論是開發(fā)人員還是網(wǎng)絡(luò)工程師,必須能快速閱讀英語,開始很困難,如果大家能堅持下去半年以后,大家閱讀能力一般來說絕對不是問題。
鮮橙加冰:關(guān)心DBA目前的工作壓力問題。請趙老師方便的話說一說。
趙振平: 確實是,DBA壓力是非常大的,這個不同于開發(fā)人員,不同于IT業(yè)其他職位,作為一個DBA你管理數(shù)據(jù)庫是7×24小時運(yùn)轉(zhuǎn)的,大家想一下,一個公司其實最核心的東西是數(shù)據(jù)庫,如果數(shù)據(jù)庫down了我們業(yè)務(wù)人員沒有辦法開展工作,開發(fā)人員也無法工作整個公司所有業(yè)務(wù)基本上全部停頓。
我記得是05年,我給一家公司遇到過一種情況,當(dāng)時我們數(shù)據(jù)庫突然down了,當(dāng)時壓力非常大,因為整個公司業(yè)務(wù)全部停頓了,業(yè)務(wù)、開發(fā)人員停止工作,CTO不斷打電話來,老板不斷打電話來,我當(dāng)時一邊在打電腦,一邊跟我們的CTO打電話,我說快了,就快解決了,我的CTO一會兒一個電話。當(dāng)時壓力非常大,但是壓力大的情況下,你還必須保持冷靜,在你解決問題過程當(dāng)中,如果你不冷靜可能造成新的問題,讓公司造成更巨大的損失,這些年我感覺到做一個DBA,壓力非常大,做一個公司DBA基本上沒有時間限制的,即使就是說大半夜你在睡夢中,一個電話你也得起來,趕到公司去,解決這些問題,以前我工作的時候,我們老板給我們提出了三個A的要求,無論你哪個地方,無論你在什么時候,無論你用任何方式,你必須給我管理我公司數(shù)據(jù)庫,無論你在北京,廣州還是在哪,我公司數(shù)據(jù)庫出了問題你必須解決,無論里在網(wǎng)吧里面還是在家里面,公司,公司數(shù)據(jù)庫出了問題,你也必須能夠連接到公司的數(shù)據(jù)庫,解決問題所以說壓力非常大。當(dāng)我壓力很大的時候,當(dāng)我遇到的問題時候,當(dāng)有很多人催促解決問題的時候,無論壓力多大,我都會告訴自己,不要感他們對你大呼還是小叫,當(dāng)我遇到壓力的時候及我會拋開壓力。