Oracle數(shù)據(jù)庫的RAC組件之緩存融合技術(shù)
在RAC環(huán)境中,Oracle數(shù)據(jù)庫提供了一種叫做緩存融合的技術(shù),通過這種技術(shù)多個節(jié)點保留了同一份的DB CACHE。
在一個應(yīng)用環(huán)境當(dāng)中,所有的服務(wù)器使用和管理同一個Oracle數(shù)據(jù)庫,目的是為了分散每一臺服務(wù)器的工作量,硬件上至少需要兩臺以上的服務(wù)器,而且還需要一個共享存儲設(shè)備。同時還需要兩類軟件,一個是集群軟件,另外一個就是Oracle數(shù)據(jù)庫中的RAC組件。同時所有服務(wù)器上的OS都應(yīng)該是同一類OS,根據(jù)負(fù)載均衡的配置策略,當(dāng)一個客戶端發(fā)送請求到某一臺服務(wù)的listener后,這臺服務(wù)器根據(jù)我們的負(fù)載均衡策略,會把請求發(fā)送給本機的RAC組件處理也可能會發(fā)送給另外一臺服務(wù)器的RAC組件處理,處理完請求后,RAC會通過集群軟件來訪問我們的共享存儲設(shè)備。
邏輯結(jié)構(gòu)上看,每一個參加集群的節(jié)點有一個獨立的instance,這些instance訪問同一個數(shù)據(jù)庫。節(jié)點之間通過集群軟件的通訊層(communication layer)來進行通訊。同時為了減少IO的消耗,存在了一個全局緩存服務(wù),因此每一個數(shù)據(jù)庫的instance,都保留了一份相同的數(shù)據(jù)庫cache。
RAC中的特點是:
每一個節(jié)點的instance都有自己的SGA。
每一個節(jié)點的instance都有自己的background process。
每一個節(jié)點的instance都有自己的redo logs。
每一個節(jié)點的instance都有自己的undo表空間。
所有節(jié)點都共享一份datafiles和controlfiles。
Oracle還提出了一個緩存融合的技術(shù)(Cache fusion),目的有兩個:
1.保證緩存的一致性。
2.減少共享磁盤IO的消耗。
緩存融合(Cache fusion)工作原理:
1.其中一個節(jié)點會從共享數(shù)據(jù)庫中讀取一個block到db cache中。
2.這個節(jié)點會在所有的節(jié)點進行交叉db block copy。
3.當(dāng)任何一個節(jié)點緩存被修改的時候,就會在節(jié)點之間進行緩存修改。
4.為了達到存儲的一致最終修改的結(jié)果也會寫到磁盤上。
#p#
ClusterWare組件
有四種Service:
Crsd - 集群資源服務(wù)。
Cssd - 集群同步服務(wù)。
Evmd - 事件管理服務(wù)。
oprocd - 節(jié)點檢測監(jiān)控。
有三類Resource:
VIP - 虛擬IP地址(Virtual IP)。
OCR - Oracle Cluster Registry(集群注冊文件),記錄每個節(jié)點的相關(guān)信息。
Voting Disk - Establishes quorum (表決磁盤),仲裁機制用于仲裁多個節(jié)點向共享節(jié)點同時寫的行為,這樣做是為了避免發(fā)生沖突。
RAC的組件
提供過了額外的進程,用來維護數(shù)據(jù)庫:
LMS - Gobal Cache Service Process 全局緩存服務(wù)進程。
LMD - Global Enqueue Service Daemon 全局查詢服務(wù)守護進程。
以上就是RAC組件緩存數(shù)據(jù)融合技術(shù)的工作原理,更多的了解請到這里:http://database.51cto.com/oracle/。
【編輯推薦】