亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數據庫緩存融合分析

發布時間:2021-11-09 15:54:48 來源:億速云 閱讀:114 作者:iii 欄目:關系型數據庫

本篇內容主要講解“數據庫緩存融合分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“數據庫緩存融合分析”吧!

概念

    簡單地說,緩存融合就是把Oracle RAC數據庫中所有數據庫緩存作為一個共享的數據庫緩存,并被RAC中的所有節點共享。它是實現RAC的基本技術。

    緩存融合主要有如下四個功能:

  (1) 提供擴展性的傳輸。

  (2) 在實例間傳輸數據庫的映射。

  (3) 跟蹤資源的當前位置和狀態。

  (4) 在每個實例的SGA的目錄結構中保存資源信息。

    圖中描述了兩節點RAC數據庫的運行情況。每個節點都運行一個數據庫實例,每個實例包含一組Oracle進程和用于緩存的系統全局區(SGA)。除了這些集群中的每個節點都還運行著一組特殊的進程:全局緩存服務進程(Global Cache Service ,GCS)和全局隊列服務進程(Global Enqueue Service,GES),GES主要負責維護字典緩存和庫緩存內的一致性,GCS主要負責協調不同實例間對數據塊的訪問,它們通過Global Resource Directory(GRD)來維護和記錄每個數據塊的狀態,使其在群集中的各個節點之間同步和串行處理對數據的訪問。同時,每個數據區塊又隸屬于某一個節點,對于這個數據區塊來說,這個節點稱為主節點(Master)。為了在服務器之間均衡工作負載,群集中所有服務器都可以成為部分數據塊的主節點,GCS 是oracle 用來實施緩存融合的機制。

緩存融合工作原理

    我們知道,Oracle RAC是采用共享磁盤方式實現數據庫的群集。群集環境中所有節點共享且并發地對磁盤上的數據庫進行更新,另外還要額外地需要同其它節點進行同步和串行機制,以避免兩個或多個節點同時更新同一數據頁上的記錄,那么Oracle RAC是如何利用緩存融合處理數據同步的?下面通過幾種情況模擬分析下緩存的同步原理。

   (1) 節點A讀取一個全新的數據塊,該數據塊沒有被任何節點讀入

     ①節點A的請求發給GCS,GCS把這個請求轉發給這個數據塊的主節點,這里假定是節點B。因為這個數據塊沒有在任何節點的內存中,GCS標記這個數據塊狀態為S(shared,共享狀態),并記錄到GRD中。

     ②接著B告訴節點A狀態修改了,準備工作都完成了。然后節點A記錄共享狀態在自己的實例中,并讀入該數據塊。這時,節點A持有了該數據塊,并在GRD中進行記錄,標記持有該數據塊。此時,整個過程發生了一次IO操作。

  (2) 節點C要修改剛才節點A讀入的數據塊,這里假定節點A剛才讀入的數據塊SCN是100。

    ①節點C找到該數據塊的主節點,也就是節點B,要求能加一個X標記(exclusive,獨占狀態),表明要修改數據。但是這個數據塊可能已經存在于多個節點的實例中,每個實例都有個S標記。

    ②GCS會告訴所有持有該數據塊的實例,把狀態S標記轉換為N標記(null,空狀態)。

    ③最后一個從S標記轉換為N標記的實例把數據塊發送到需要對其進行修改的節點如節點C上。

    ④這時節點C的實例就可以對該數據塊加上X標記,并通知該數據塊的主節點,也就是節點B的GCS,GCS將最新的標記與位置記錄到GRD,并關閉以前節點的資源記錄。這時節點C就可以修改該數據塊了,假定把SCN從100修改成了101,這個時候磁盤上的數據塊SCN還是100,整個過程是通過內部互聯進行數據交換,沒有磁盤IO產生。

   (3) 節點D也要修改該數據塊

    ①與節點C修改該數據塊類似,節點D也會找到該數據塊的主節點,也就是節點B,要求加一個X(exclusive,獨占狀態)的鎖,表示要修改該數據塊。 

    ②這時GCS會告訴上一次修改成功的節點C,放棄它加上的X標記,因為別的節點也要修改這個數據塊。

    ③節點C會確保這個數據塊的改變,已經記入聯機日志中,然后轉換X標記為N標記,并把這個數據塊拷貝到節點D。

    ④節點D加上X標記,并通知該數據塊的主節點,也就是節點B的GCS,GCS將最新的標記與位置揭露到GRD,并關閉以前節點上的資源記錄。這時節點D就可以修改該數據塊了,假定把該數據塊的SCN從101又修改成102,但是磁盤的數據塊上的SCN還是100。可以發現RAC在這個過程中,也沒有任何磁盤操作,同樣是通過內部互聯來完成的。

    (4) 節點A要重新讀取該數據塊

     ①節點A還是一樣,首先找到該數據塊的主節點,也就是節點B,希望能讀取最新的數據塊,也就是SCN為102的內容。

     ②GCS根據GRD得知最新的數據塊在節點D上,于是GCS通知節點D。節點D需要確保剛才修改過的數據塊已經記錄在聯機日志中,如果已經確定記錄過,則把原來的X標記轉換為S標記。

     ③節點D拷貝數據塊到節點A的實例,這時節點A獲得該數據塊,并獲得S標記。

     ④最后再告訴該數據塊的主節點,也就是節點B,GCS記錄最新的標記與位置到GRD,這個時候,節點A與節點D同時持有S標記的相同的數據塊,數據塊的SCN為102,但是磁盤中的數據塊SCN還是100,最后如果發生寫操作,只要最新的一個節點發生寫操作即可,所以該數據塊雖然在不同節點、不同實例中發生了多次改變,最終卻只有一次寫IO操作。

到此,相信大家對“數據庫緩存融合分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广东省| 京山县| 建湖县| 蒲城县| 沐川县| 镇江市| 绥德县| 衡南县| 东丽区| 漯河市| 于田县| 芦溪县| 冷水江市| 嘉荫县| 天水市| 习水县| 满洲里市| 郴州市| 惠东县| 玉溪市| 广河县| 孟连| 西吉县| 女性| 高台县| 昭苏县| 德令哈市| 石家庄市| 海晏县| 汨罗市| 海阳市| 香河县| 洱源县| 济宁市| 盐山县| 景泰县| 上思县| 土默特左旗| 堆龙德庆县| 沙坪坝区| 克山县|