光纖分佈式數據接口:異步傳輸模式的兩種交換技術

  • 在主庫使用LNS進程從sga中的重做緩衝區中獲得相應redo數據,然後通過網絡服務傳送到備庫,備庫通過RFS進程接收redo數據存在standby log file中,然後再應用(sql apply或是redo apply)數據。

何為同步傳輸模式呢?

顧名思義同步含有實時確認的意思。見如下圖:

Oracle DG傳輸方式
  • 用戶在主庫提交數據時,會在sga的redo緩衝區中記錄redo信息,在提交操作時lgwr會將redo數據寫入redo數據文件中,此時lns進程會實時的將redo數據從主庫的redo緩衝區傳送到備庫,在備庫使用rfs接受數據,傳入standby logfile中,進而應用redo數據(sql apply)。在應用完成後rfs將信息返回主庫進程,告知該redo條目已經在備庫應用完畢,lgwr收到lns的確認消息,從而提示提交成功。
  • 在最高可用性中,如主庫收不到備庫應用的確認消息,會通過net_timeout值超時,繼續完成本次操作,那麼lns進程將不會再獲得sga中的重做數據,只有當下次日誌switch的時候才主動去嘗試獲得lns數據,如期間沒有和備庫完成通信,當超過net_timeout參數時會繼續停止,主機事務也繼續完成,但當存在於最大保護模式下,那麼必須等到備庫應用redo的確認消息,那麼就會停止的運行操作。

何為異步傳輸模式呢?

  • 異步傳輸模式是指主庫不必要等待備庫應用redo的確認消息,就會完成提交工作(見下圖),但是增加了數據丟失的風險性。
Oracle DG傳輸方式

如果主庫和備庫因某種原因,導致lns進程無法傳送數據到備庫又會發生什麼呢?

這種情況下叫傳輸滯後。

Oracle DG傳輸方式
  • 當數據庫運行最高可用性下,當主庫無法與備庫進行通信,主庫依然可以完成事務的提交,lgwr依然可以寫入online redo日誌,在沒法通信期間主庫可能會產生很多歸檔日誌,Oracle為了在備庫和主庫能夠再次通信應用redo日誌的情況,會進行自動處理間隔操作。具體就是主庫arch進程會不停ping備庫,當和備庫通信連接後,arch進程通過備庫的rfs進程獲得備庫控制文件中最後應用的歸檔日誌信息,將丟失的歸檔日誌通過arch進程傳送與備庫進行應用。當在主庫進行redo 日誌切換的時候,lns進程會再次和備庫的rfs進程通信繼續完成redo條目的傳送,arch傳送的歸檔日誌在後台進行應用。當備庫和主庫redo條目同步後arch的任務隨即完成。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/213015.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-08 17:48
下一篇 2024-12-08 17:48

相關推薦

發表回復

登錄後才能評論