日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle lms进程 内存,Oracle RAC 内存融合(Cache Fusion)

發布時間:2023/12/2 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle lms进程 内存,Oracle RAC 内存融合(Cache Fusion) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原標題:Oracle RAC 內存融合(Cache Fusion)

內存融合核心進程

LMS(Global Cache Service Process):這個進程負責完成GCS的大部分工作,它會維護GRD中數據塊資源的信息,完成數據塊在實例之間的傳遞工作,相關消息的發送和接收工作。每個數據庫實例中會存在多個LMS進程,名稱為LMS,默認的LMS進程數量是根據節點的CPU數量計算出來的。

LMD(Global Enqueue Service Daemon):這個進程主要負責GES相關資源的管理工作,GES資源主要指Oracle中的排隊(Enqueue)資源,由于RAC數據庫包含很多實例,每個實例都能夠對相同的數據進行操作,所有需要LMD進程對這些隊列資源進行管理和協調,每個數據庫實例只包含一個LMD進程。

LCK(Instance Enqueue Process):這個進程主要負責實例鎖(實例鎖的含義并不是實例級別的鎖,而是指這種鎖管理的資源僅限于本地實例)管理,實例級別的鎖包括:library cache lock,row cachelock等,實例級別的鎖是由LCK進程通過廣播的方式進行管理的,當一個進程需要持有一個實例鎖時,LCK進程會以廣播方式向所有遠程實例的LCK進程發送這個請求,而遠程實例收到這個請求之后,更新自己的信息并反饋信息(如果遠程實例的某個進程以不兼容的方式持有了這個鎖,對應實例的LCK進程會通知持有者進程釋放對應的鎖,然后再返回),每個實例默認情況下只包含一個LCK進程。

全局資源目錄(Golabl Resource Directory)

GRD:在shared pool與buffer cache中保存和組織內存融合相關的所有資源的一種方式,每個數據庫實例中都包含GRD的信息,所有實例的內存融合信息構成了整個GRD。LMS和LMD進程實現了對GRD的訪問與管理,LMS進程負責GCS資源和鎖,LMD進程負責GES資源和鎖,服務器進程作為訪問GRD的客戶端,需要同LMS和LMD進程進行協作,完成客戶端發送的請求,可以認為服務器進程是GRD的客戶端,LMS和LMD進程是GRD的服務器進程。

PCM資源與PCM鎖

對于RAC數據庫,PCM資源指數據庫的塊(buffer),當客戶端訪問一個數據塊時,LMS進程會創建一個PCM資源對應這個塊,并創建保護這個資源的鎖結構。PCM資源保存在buffer cache中,而PCM資源對應的鎖保存在shared pool中。

PCM鎖的屬性

模式:PCM鎖有3種模式,N(空),S(共享),X(獨占)。

角色:PCM鎖的角色對應數據塊被修改的范圍,本地(L)表示對應的塊只在本地實例被修改過,全局(G)表示對應的塊在多個遠程實例中被修改過

PI:當一個數據塊在多個實例被修改的時候,除了最新修改該塊的實例(數據塊最新版本),其他實例對應的塊都被標識成PI(數據塊次新版本),并且將PI對應的修改寫入重做日志文件中。

任何持有最新版本數據塊或PI數據塊的實例都可以發起寫請求。

發起寫請求的實例并不一定是將buffer寫入到數據文件的實例,將buffer寫入數據文件的實例是持有最新版本數據塊的實例。

最新版本的數據塊被寫入數據文件后,持有PI數據塊的實例會清除PI數據塊。

GES資源與非PCM鎖

鎖:由于數據庫資源會被多個客戶端同時訪問(查詢或修改),因此需要一些串行化的機制來保護資源的一致性,鎖就是保護資源串行化的數據結構,由于鎖管理是通過隊列實現的,因此鎖又稱為排隊資源。

鎖模式

共享鎖(S):這個模式允許相關的資源被共享,例如允許多個事務同時訪問相同的表記錄。

排他鎖(X):這個模式防止相關的資源被共享,例如禁止多個事務同時修改相同的表記錄。

直到事務結束,鎖才會被釋放。

鎖的兼容性:當一個進程嘗試以某個模式持有一個鎖時,會查看這個鎖的持有者隊列中的進程都是以什么模式持有的這個鎖,如果持有者隊列中所有進程持有該鎖的模式和申請者申請的模式是兼容的,那么申請者可以被賦予這個鎖,申請被滿足;反正,如果持有者隊列中的某一個進程持有的該鎖模式和申請者需要的模式不兼容,那么申請者就需要進入等待者隊列,直到持有者隊列中不兼容模式的鎖被釋放。

對于RAC數據庫,GES資源指數據庫中的各種排隊資源(非PCM資源),GES資源也會被多個實例同時訪問,因此也需要一些串行化機制來保護GES資源的一致性(非PMC鎖)。GES資源與對應的鎖都保存在shared pool中。

主節點

對于RAC數據庫,由于數據庫同時存在多個實例,而且每個實例都會對資源(無論是PCM資源還是非PCM資源)進行訪問,GRD中的資源需要能夠被多個實例同時訪問,因此需要存在一個協調記錄對應資源上的鎖信息,并協調來自于多個實例的資源申請,主節點就是指用于保存資源的定義信息以及上面的所有鎖信息,并負責協調資源申請的節點。當一個資源第一次被訪問的時候,Oracle根據哈希算法計算出該資源所對應的節點,并將這個資源的定義信息以及資源上所有的鎖信息保存在主節點上。

PCM資源申請過程

階段1:資源申請節點發送申請到主節點。

階段2:資源主節點將對應的請求發送給資源持有節點。

階段3:資源持有節點將本地持有的資源鎖進行相應的改變,之后將資源發送給資源申請節點。

階段4:資源申請節點獲得了需要的資源,并通知資源主節點更新資源的相關鎖信息。

在實際應用中,一個資源的申請過程只會涉及兩個實例(例如:資源的申請節點和主節點是同一個節點或資源的主節點和持有者節點是同一個節點),或者一個實例(3個節點都是一個節點),因此在RAC數據庫中的3路申請或2路申請指一個資源申請的過程需要涉及3個節點或2個節點。

總結:LMS負責協調實例間數據塊的傳遞,LMD負責協調全局鎖,LCK負責協調實例鎖。

消息(Message)

消息是RAC實例之間通信的實現方式,RAC中與內存融合相關的信息都是通過消息的方式進行傳輸的,消息可以分成兩類:一類是需要立即進行傳遞而且要被及時反饋的消息(申請消息),另一類是可以異步發送的消息(當申請者獲得了資源之后,向主節點發送的資源更新消息)。

流量控制(Flow Control)

請求端在發送消息時,就必須持有一個ticket,響應端在發送響應消息的同時也會把響應端的有效ticket數據一起發送,請求端在接收到這個ticket數據之后會進行判斷,如果響應端的ticket數量小于請求端的有效ticket數量,那么請求端會暫停一段時間再發送消息,反之,請求端繼續發送消息。

DRM(Dynamic Remastering)

一個四節點的RAC數據庫,會有1/4的數據塊的主節點信息被保存到每一個實例,同時也意味著一個節點訪問數據塊時有3/4的概率需要從遠程節點獲得該數據塊的鎖信息,這意味著會出現更多的2路或3路通信,從而造成更多的消息通信。在實際的應用中,一些數據塊可能在非主節點上被訪問很多次,而在主節點上卻很少被訪問,這種情況意味著會有大量的資源訪問節點和資源主節點的消息產生,從而增加了私網的工作負載,影響數據庫的性能。而DRM允許資源的主節點根據資源在各個節點的訪問狀態動態地調整。

通俗地說,如果聯系一個節點就可以獲取數據塊,為嘛要聯系多個節點呢。

DRM參數

_gc_policy_time:這個參數指定了Oracle統計每個節點對某個數據庫對象訪問次數的時間間隔,默認值為10分鐘。

_gc_policy_minimum:這個參數指定了每分鐘數據庫對象至少要被訪問多少次,才考慮修改它的主節點信息,默認值1500。

_gc_affinity_ratio:這個參數指定了當一個節點訪問某一個數據庫對象的次數超過了所有其他節點訪問相同數據庫對象的多少倍時,才考慮修改它的主節點信息,默認值50。

因此DRM發生的條件是:當在一段時間內(_gc_policy_time),如果一個數據庫對象每分鐘被訪問的次數超過了一個閾值(_gc_policy_minimum),并且某一個節點訪問該對象的次數超過了所有其他節點的訪問次數的50倍(_gc_affinity_ratio),那么Oracle會陸續地(以windows為單位)將這個數據庫對象對應的數據塊的主節點信息遷移到訪問次數最多的節點。

DRM遷移的是數據塊的主節點信息,而不是將數據塊的最新版本copy到訪問次數最多的節點。

DRM由LMON,LMS,LMD,LCK進程協同工作,將數據塊資源的主節點信息從一個節點遷移到另一個節點。返回搜狐,查看更多

責任編輯:

總結

以上是生活随笔為你收集整理的oracle lms进程 内存,Oracle RAC 内存融合(Cache Fusion)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。