Oracle RAC SCN傳播方式(Broadcast-On-Commit)

BOC的SCN傳播方式的前提是,只有當某個節點的SCN發生改變時才進行傳播,LGWR進程會與LMS進程協同工作來同步節點間的SCN,LGWR負責將redo信息寫入重做日誌文件併發送最新的SCN,LMS進程負責節點間SCN信息的傳播。


BOC的SCN傳播方式分爲兩種:間接方式和直接方式


間接方式需要經歷8個步驟:

步驟1:用戶進程提交事務,並通知LGWR進程,之後進入等待狀態,對應的等待事件是log file sync。

步驟2:LGWR進程將事務的提交SCN發送給本地的一個LMS進程。

步驟3:LGWR進程將事務對應的重新信息寫入重做日誌文件。

步驟4:本地節點的LMS進程將包含了SCN的信息發送給所有遠程節點的LMS進程。

步驟5:所有遠程節點的LMS進程接收到了SCN信息並反饋給本地節點的LMS進程。

步驟6:重新信息的I/O請求完成,並反饋給LGWR進程。

步驟7:本地節點的LMS進程通知LGWR,所有遠程節點都已經收到了事務的SCN。

步驟8:本地節點的LGWR進程通知用戶進程事務提交結束。


步驟2和步驟3是同時發生的,目的是爲了提高SCN的傳播效率

步驟5和步驟6的發生順序可能是相反的,取決於集羣私網和重做日誌文件所在磁盤的I/O性能


直接方式需要經歷7個步驟

步驟1:用戶進程提交事務,並通知LGWR進程,之後進入等待狀態,對應的等待事件是log file sync。

步驟2:LGWR進程直接將包含了事務提交SCN的信息發送給所有遠程節點的LMS進程

步驟3:LGWR進程將事務對應的重新信息寫入重做日誌文件。

步驟4:所有遠程節點的LMS進程接收到了SCN信息並反饋給本地節點的LMS進程

步驟5:重新信息的I/O請求完成,並反饋給LGWR進程。

步驟6:本地節點的LMS進程通知LGWR,所有遠程節點都已經收到了事務的SCN。

步驟7:本地節點的LGWR進程通知用戶進程事務提交結束。


直接方式比間接方式少了一個步驟,由LGWR根據系統負載自行決定使用哪種SCN的傳播方式。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章