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