Oracle RAC培訓(xùn)學(xué)習(xí)心得
我們在一些事情上受到啟發(fā)后,寫一篇心得體會,記錄下來,這樣能夠培養(yǎng)人思考的習(xí)慣。一起來學(xué)習(xí)心得體會是如何寫的吧,以下是小編精心整理的Oracle RAC培訓(xùn)學(xué)習(xí)心得,歡迎大家分享。
上周參加了OracleRAC培訓(xùn)課程,課程介紹了RAC在數(shù)據(jù)庫中的概念,以及如何在LINUX系統(tǒng)下配置和管理使用RAC的數(shù)據(jù)庫,同時還介紹了如何在RAC環(huán)境中配置和使用自動存儲管理(ASM),節(jié)點的添加和刪除,RAC數(shù)據(jù)庫的備份和恢復(fù)。
OracleRAC是Oracle數(shù)據(jù)庫實現(xiàn)高可用的一項重要技術(shù),OracleRAC的實施配置并不困難,只要按照文檔一步步操作下去就可以了。然而,我認為Oracle培訓(xùn)更大的意義在于對RAC技術(shù)原理、實現(xiàn)方式在理論上的講解。對于一項技術(shù)的深入掌握,理論和實踐缺一不可。理論指導(dǎo)實踐,尤其在進行故障診斷的時候,理論知識的掌握就會起到巨大的作用,另一方面,實踐能更好地幫助理論的理解,進而完全的掌握這項技術(shù)。Oracle和其他技術(shù)的學(xué)習(xí)都應(yīng)該是一個由實踐到理論,再由理論回到實踐的不斷交替的過程。
OracleRAC的優(yōu)勢在于利用多個節(jié)點(實例)組成一個數(shù)據(jù)庫,這樣在保證了數(shù)據(jù)庫高可用性的情況下更充分的利用了多個主機的性能,而且可以通過增加節(jié)點進行性能的擴展。實現(xiàn)OracleRAC需要解決的關(guān)鍵問題就是多節(jié)點進行數(shù)據(jù)訪問時如何保證數(shù)據(jù)的一致性,Oracle是通過各節(jié)點間的私有連接進行內(nèi)存融合(cachefusion)來保證各節(jié)點數(shù)據(jù)訪問的一致性。用一個例子來解釋一下內(nèi)存融合的過程,在存在A、B兩個節(jié)點的RAC環(huán)境中,當(dāng)A節(jié)點使用DML語句(如Update)對一個數(shù)據(jù)塊中的數(shù)據(jù)進行修改時,A節(jié)點實例會到GRD(GlobalResourceDirectory)中查找該數(shù)據(jù)塊的信息,這些信息包括該數(shù)據(jù)塊的Master(第一次讀這個數(shù)據(jù)塊的節(jié)點),Owner(當(dāng)前擁有這個數(shù)據(jù)塊的節(jié)點),以及數(shù)據(jù)塊在各個節(jié)點間的傳遞記錄。A節(jié)點如果發(fā)現(xiàn)GRD中沒有需要讀取的數(shù)據(jù)塊的信息,說明該數(shù)據(jù)塊是一個干凈的數(shù)據(jù)塊,A節(jié)點從磁盤或BufferCache中獲得該數(shù)據(jù)塊,然后對需要修改的行加鎖,進行相應(yīng)的修改,當(dāng)然SCN會隨之增加。在A完成修改而沒有提交或回滾的情況下,如果B節(jié)點也需要訪問這個數(shù)據(jù)塊修改某些行(假設(shè)不同于A修改的行),B同樣去到GRD中查找該數(shù)據(jù)塊的信息,當(dāng)然B發(fā)現(xiàn)該數(shù)據(jù)塊的Master為A,Owner也為A,為了保證A的修改不丟失,B需要發(fā)信息給A,讓A將需要修改的數(shù)據(jù)塊通過私有連接直接從內(nèi)存中傳給B,當(dāng)然該數(shù)據(jù)塊中包含A的鎖信息,這樣A節(jié)點與B節(jié)點間的一次內(nèi)存的數(shù)據(jù)傳遞就是內(nèi)存融合。OracleRAC的內(nèi)存融合也面臨一些問題,繼續(xù)剛剛的例子,如果A又再次請求對該數(shù)據(jù)塊修改或者結(jié)束事務(wù)(提交或回滾)的時候,又需要從B節(jié)點內(nèi)存中取得數(shù)據(jù)塊,又要發(fā)生內(nèi)存融合,這樣在兩個節(jié)點業(yè)務(wù)沒有合理分割的情況下,數(shù)據(jù)庫繁忙時,大量的內(nèi)存融合會對數(shù)據(jù)庫性能造成嚴重的影響。通過對OracleRAC技術(shù)的理解,在實現(xiàn)OracleRAC架構(gòu)時的業(yè)務(wù)分割就成為了保證系統(tǒng)性能的重要手段,業(yè)務(wù)分割的根本在于使不同的實例不能訪問相同的數(shù)據(jù)塊,這樣業(yè)務(wù)分割規(guī)則可以小到表的'級別(通常不同的表共享一個數(shù)據(jù)塊的幾率不大),大到表空間、Schema的級別。這些理論知識的理解對于OracleRAC架構(gòu)的實施有著巨大的指導(dǎo)意義。另外,我對在OracleRAC培訓(xùn)中講到的一個擴展的RAC磁盤鏡像架構(gòu)印象很深,傳統(tǒng)的OracleRAC架構(gòu)中,存儲仍然是一個單點故障,在這個擴展的RAC磁盤鏡像架構(gòu)中,解決了傳統(tǒng)架構(gòu)中的存儲單點故障風(fēng)險,該架構(gòu)如下圖:
該架構(gòu)中分為A、B兩個Site,兩個Site可以存在數(shù)公里的距離,整體上兩個Site的4個節(jié)點共同構(gòu)成一個RAC集群,兩個Site間通過DarkFiber(暗光纖)作為私有連接鏈路,保證各個節(jié)點間的內(nèi)存融合的進行,每個節(jié)點的寫操作都能同時無延遲的寫到2個存儲上,兩個存儲的同步寫可以通過第三方軟件或ASM實現(xiàn)。不過其中很大的成本在于兩個Site間的DarkFiber(暗光纖)架設(shè)成本。
在講解這部分內(nèi)容時,關(guān)于這個架構(gòu)是一個RAC還是兩個RAC實現(xiàn)的,我們有過一些爭論,我認為是一個RAC實現(xiàn)的,而另外一名學(xué)員和講師說是兩個RAC實現(xiàn),最后針對這個問題,請教了一位更資深的Oracle講師,這位Oracle講師通過對RAC原理的分析,如果認為是兩個RAC實現(xiàn)的話,兩個Site無法進行內(nèi)存融合,就沒有辦法保證Oracle數(shù)據(jù)庫的數(shù)據(jù)一致性,因此采用兩個RAC是無法實現(xiàn)這個架構(gòu)的。這樣大家都認同了這個架構(gòu)是一個RAC實現(xiàn)的,可見理論知識的理解對解決問題的幫助還是很大的。
【Oracle RAC培訓(xùn)學(xué)習(xí)心得】相關(guān)文章:
培訓(xùn)學(xué)習(xí)心得05-26
培訓(xùn)學(xué)習(xí)心得06-27