日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Oracle感慨(转)

發(fā)布時(shí)間:2025/7/14 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle感慨(转) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?  一轉(zhuǎn)眼接觸ORACLE已經(jīng)一年了,在這一年中收獲多多,感慨多多,我記得是2004年11月底開始學(xué)習(xí)ORACLE的,當(dāng)時(shí)選擇方向也是幾經(jīng)波折,還好現(xiàn)在的處境不是非常的艱難,前途似乎還有想象中的光明。


???? 畢業(yè)已經(jīng)兩年半,開始半年主要是接觸Sybase,當(dāng)時(shí)公司后臺(tái)使用的Sybase SQL 11,由于人手比較少,管理也不很嚴(yán)格,所以我經(jīng)常有機(jī)會(huì)光顧他,在那里我學(xué)會(huì)了怎樣備份,恢復(fù)數(shù)據(jù)庫,怎樣寫SQL代碼處理公司的業(yè)務(wù)邏輯,那個(gè)時(shí)候想的也很簡(jiǎn)單,理解也非常膚淺,覺得數(shù)據(jù)庫的作用就是存數(shù)據(jù),取數(shù)據(jù),封裝業(yè)務(wù)邏輯,當(dāng)然現(xiàn)在很多時(shí)候我也這么認(rèn)為。


?????? 很快到了2004年,公司開始使用SQL SERVER 2000,我有機(jī)會(huì)接觸這個(gè)Sybase的孿生兄弟了,我的工作除了用PB編寫前臺(tái)那些笨拙的界面,還負(fù)責(zé)整個(gè)數(shù)據(jù)庫的維護(hù)與管理,這時(shí)我已經(jīng)不滿足建個(gè)數(shù)據(jù)庫就可以使用,寫個(gè)SQL腳本就可以運(yùn)行,我將更多的精力投放在很多內(nèi)部的運(yùn)做機(jī)制上,比如索引的結(jié)構(gòu)是怎樣的,利用索引定位數(shù)據(jù),他是怎么從根頁到中間層到葉接點(diǎn)在到數(shù)據(jù)頁的,DML對(duì)索引有什么影響,什么情況下會(huì)造成頁分割,填充因子又有什么作用。DML和COMMIT有什么關(guān)系,數(shù)據(jù)庫提出先寫日志是怎樣一種情況,結(jié)合CHECKPOINT考慮各種斷電情況對(duì)數(shù)據(jù)一致性的影響,使用日志備份恢復(fù)時(shí)為什么總是出現(xiàn)LSN太早的問題,日志傳輸?shù)脑硎鞘裁?#xff0c;數(shù)據(jù)文件是否可以分散到多個(gè)磁盤來均衡IO,RAID0的使用是否使得文件組顯得多余。各種LOCKS的概念,對(duì)數(shù)據(jù)庫的影響,鎖升級(jí),事務(wù)隔離級(jí)別,等等等等,通過對(duì)這些概念的理解與實(shí)踐,我慢慢感覺到數(shù)據(jù)庫的博大精深,這個(gè)時(shí)候數(shù)據(jù)庫的每個(gè)操作不在是個(gè)簡(jiǎn)單的動(dòng)作,引用李小龍的話:在我剛開始學(xué)武時(shí),我覺得一拳就是一拳,一腳就是一腳,而經(jīng)過一段時(shí)間的提升,我覺得一拳不在是普通的一拳,一腳也不在是普通的一腳,但最后,我覺得一拳還是那么一拳,一腳還是那么一腳。可惜筆者現(xiàn)在還是停留在第二個(gè)層次,向第三個(gè)無招勝有招,草木為劍的境界的過度,還需要時(shí)間。同時(shí)在這段時(shí)間,我還學(xué)習(xí)java,寫些簡(jiǎn)單的聊天程序,打好了一個(gè)大致的框架,但最后還是以一個(gè)蹩腳的掃雷游戲而告終。


???? 到了11月底,考慮換工作,本來想做Java的,但網(wǎng)上招聘的要求太高,或以沒有實(shí)際的項(xiàng)目經(jīng)驗(yàn)為由將我拘之門外,有些公司給人的感覺是比爾蓋茨進(jìn)來了也只有刷馬桶的份。也搜索了下DBA之類的職位,很少有專門做SQL SERVER和Sybase的,但做Oracle的還是蠻多的,既然Java找不到,SQL也不招,自己又不想干回以前的PB,索性來個(gè)猛料,學(xué)Oracle,在數(shù)據(jù)庫這條路上已經(jīng)投入這么多了,為什么不能將他當(dāng)成自己的主業(yè)呢?就這樣我開始接觸Oracle了,比我想象中的要順利的多,因?yàn)槲以赟QL SERVER中已經(jīng)做的很多了,我知道數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu),內(nèi)存體系,鎖存資源,熟悉數(shù)據(jù)庫的各個(gè)動(dòng)作以及與他們打交道的方式,這些在SQL SERVER中已經(jīng)理解的非常透徹了,現(xiàn)在換到ORACLE,同是RDBMS,兩者竟然有些地方如此的相似(當(dāng)然差別也是巨大的),比如事務(wù)的提交,都是先寫日志,刷新日志緩存的內(nèi)容到日志文件,數(shù)據(jù)不立刻反映到數(shù)據(jù)文件,隨著事務(wù)的堆積,到一定限度時(shí),由checkpoint進(jìn)行同步,啟動(dòng)時(shí)照樣是根據(jù)日志最末尾的檢查點(diǎn)標(biāo)記為起點(diǎn)進(jìn)行實(shí)例恢復(fù),他們都要保證連續(xù)的事務(wù)日志來進(jìn)行日志恢復(fù)。不同的是Oracle維護(hù)自己的SCN號(hào)碼,對(duì)數(shù)據(jù)的前映象以回滾段的方式來記錄,在數(shù)據(jù)塊上存在事務(wù)鏈表來關(guān)聯(lián)事務(wù)與回滾段塊之間的聯(lián)系,而SQL SERVER中是以LSN來代替SCN,當(dāng)然他的數(shù)據(jù)前映象是記錄在日志文件中,沒有回滾段的概念。在比如存儲(chǔ)結(jié)構(gòu)上,兩者都是以文件的形式,將數(shù)據(jù)分布到不同磁盤,以均衡磁盤IO,一個(gè)體現(xiàn)在表空間,一個(gè)體現(xiàn)在文件組,這兩個(gè)都可以作為備份的單元來使用.

?

???? ORACLE中對(duì)象以數(shù)據(jù)塊的方式存儲(chǔ),以盤區(qū)為單位進(jìn)行擴(kuò)展,本地管理表空間中以數(shù)據(jù)文件頭幾個(gè)數(shù)據(jù)塊的位圖映象來表示空間的使用情況,SQL SERVER是以頁來存儲(chǔ)對(duì)象(1頁8K,相當(dāng)于塊),以盤區(qū)來擴(kuò)展,以全局分配映射頁來維護(hù)盤區(qū)的使用情況,這不是異曲同工嗎?在內(nèi)存的使用上兩者都維護(hù)自己的緩沖鏈表,根據(jù)緩存頁的TCH計(jì)數(shù)器來判斷熱塊冷塊,以決定內(nèi)存不足時(shí)將哪些數(shù)據(jù)塊flush,但ORACLE將更多的管理權(quán)限開放給了DBA,可以劃分不同塊大小的緩沖區(qū),以滿足不同的查詢需求,我們公司現(xiàn)在的OLTP系統(tǒng)有些表多半是單行的索引讀取事務(wù),我將他們劃在2K的BLOCK區(qū)域,而有些表是晚上跑報(bào)表的,我將他們劃在32K的BLOCK區(qū),他們之間互不干擾,有著自己獨(dú)立的LRU鏈表,運(yùn)行的非常好。在學(xué)習(xí)中通過這些相同與不同,體驗(yàn)兩個(gè)DBMS之間的優(yōu)劣,進(jìn)步是非常快的,當(dāng)然剛開始也有一種眼高手低的狀態(tài),很長(zhǎng)一段時(shí)間我不知道坐在ORACLE面前要干什么,概念理論想通了卻不會(huì)查詢基本的視圖,敲不出基礎(chǔ)的命令,甚至還在CSDN上發(fā)貼問表空間的建立語句怎么寫。這一切已經(jīng)過去,我現(xiàn)在已經(jīng)熟悉很多命令了,并被公司的人稱為命令狂人,可以說SQL SERVER是我數(shù)據(jù)庫的基礎(chǔ),雖然現(xiàn)在不使用他,但ORACLE的學(xué)習(xí)也使我對(duì)SQL的理解更加深刻,個(gè)人感覺SQL SERVER封裝了太多的東西,易用,便于管理,這樣留給DBA的空間就比較少了,大家都知道在ORACLE中你可以dump出數(shù)據(jù)塊,內(nèi)存區(qū),控制文件來進(jìn)行內(nèi)部結(jié)構(gòu)的研究,這些在SQL SERVER中是沒有的,我就見過有人通過對(duì)數(shù)據(jù)塊的深入研究,發(fā)現(xiàn)了ORACLE數(shù)據(jù)文件的內(nèi)部存儲(chǔ)格式,從而他寫出工具,可以物理的硬解析數(shù)據(jù)文件,獲取里面的數(shù)據(jù)。


??? 對(duì)于這兩個(gè)DBMS誰好誰壞,我不想說,感覺沒有什么意義,網(wǎng)上有很多精彩的討論,你如果有興趣,可以看看這位猛將兄的發(fā)貼


??? http://blog.dev-club.com/bscy/archive/2005/10/17/2840.html
???

???? 很快我憑借自己的這么點(diǎn)資本找到了工作,在一家負(fù)責(zé)移動(dòng)業(yè)務(wù)的通信技術(shù)公司擔(dān)任DBA,這個(gè)時(shí)候有了實(shí)際的工作環(huán)境,學(xué)習(xí)起來更加得心應(yīng)手了,知識(shí)的鞏固來源于實(shí)踐,這個(gè)真的沒錯(cuò),以前的那些概念,以點(diǎn)成線,以線成面,清晰的展現(xiàn)在腦海中,抹之不去,這就是實(shí)際工作的感覺。在公司負(fù)責(zé)編寫了核心的存儲(chǔ)過程包,為研發(fā)的代碼員們做SQL TUNING,維護(hù)在線的RAC體系數(shù)據(jù)庫,幫助測(cè)試部門搭建數(shù)據(jù)庫環(huán)境,為工程部處理業(yè)務(wù)數(shù)據(jù),還幫助SQA部門調(diào)整SQL SERVER,有次他們的一個(gè)哥們問:你也會(huì)SQL SERVER啊,不是做ORACLE的嗎?偶告訴他我通曉各個(gè)RDBMS(有點(diǎn)不要臉),逗的他哈哈大笑。
???

??? 對(duì)于ORACLE的學(xué)習(xí),我分為3個(gè)部分,1是PL/SQL編程,2是數(shù)據(jù)庫的性能調(diào)整,3是備份與恢復(fù)體系,其他的高級(jí)特性根據(jù)自己的業(yè)務(wù)需求去啃。

?

??? 對(duì)于1,上手比較快,但寫出高質(zhì)量的語句不是很容易的事,還有一些比較高級(jí)的PL/SQL編程也是很有學(xué)頭的。

???

??? 對(duì)于2,我覺得是最難的一塊,我在這部分做了那些可以參考下面鏈接?
???? ?http://blog.dev-club.com/bscy/archive/2005/09/05/2463.html


???? 對(duì)于3,如果你只是想做個(gè)稱職的DBA,保證數(shù)據(jù)庫的正常運(yùn)行,你不必專研太多,了解備份恢復(fù)的方法,考慮好備份方案,及時(shí)的實(shí)施就可以了,如果你喜歡扮演力挽狂瀾的英雄,喜歡為別人提供技術(shù)支持處理各種災(zāi)難現(xiàn)場(chǎng),那就準(zhǔn)備熬夜,仔細(xì)的梳理SCN,CHECKPOINT,控制文件,數(shù)據(jù)文件頭,日志文件,事務(wù)的COMMIT,ROLLBACK,UNDO之間的關(guān)系,不能有絲毫的模糊與不明確,針對(duì)各種災(zāi)難現(xiàn)場(chǎng)進(jìn)行模擬實(shí)驗(yàn),我的BLOG上有很多這方面的模擬實(shí)驗(yàn)和概念的理解,有興趣可以交流下。


????作為一名DB工作者,嚴(yán)謹(jǐn)是必須的,程序?qū)懖怀鰜?#xff0c;自己慢慢調(diào)整,數(shù)據(jù)庫起不來,數(shù)據(jù)邏輯錯(cuò)誤,這個(gè)損失可是巨大的,很多企業(yè)多DB的重視程度不夠,對(duì)DBA的輕視也讓我感到心寒,多上下國(guó)外的網(wǎng)站,就能感受到明顯的差別,下面這個(gè)鏈接是著名的Thomas Kyte, Jonathan Lewis針對(duì)Donald K.Burleson, Mike Ault這幫蠢材提出的一些誤導(dǎo)觀念的激烈反擊,從這可以看出世界狂人們的嚴(yán)謹(jǐn)態(tài)度


??? http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:35336203098853


????現(xiàn)在2005年就快結(jié)束,偶的本命年,呵呵,寫下這篇流水帳,感慨一下,上海的冬天真冷,風(fēng)大,祝各位工作愉快,新年快樂(不算早吧,呵呵)。

轉(zhuǎn)載于:https://www.cnblogs.com/zping/archive/2008/08/12/1265914.html

總結(jié)

以上是生活随笔為你收集整理的Oracle感慨(转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。