[發明專利]一種數據同步方法、設備和系統有效
| 申請號: | 201210566583.5 | 申請日: | 2012-12-24 |
| 公開(公告)號: | CN103064761A | 公開(公告)日: | 2013-04-24 |
| 發明(設計)人: | 謝銳;何雄輝 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F11/14 | 分類號: | G06F11/14 |
| 代理公司: | 北京三高永信知識產權代理有限責任公司 11138 | 代理人: | 黃厚剛 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據 同步 方法 設備 系統 | ||
技術領域
本發明涉及網絡通信領域,特別涉及一種數據同步方法、設備和系統。
背景技術
在高可用性的通信系統如電子銀行、電子通信中,通常使用數據庫雙機,以便通信系統中一個節點出現故障時可以切換到另外一個節點繼續提供服務。在數據庫雙機中,對外提供服務的節點為主機,另外一個節點為備機。主機和備機都在運行,主機需要將數據同步到備機,這樣才可以保證主機發生故障時備機能夠正常提供服務,所以主備機的數據同步也就尤為重要。
目前,主備機的數據同步方式有同步、半同步、異步;在同步方式下,主機將一個事務的重做Redo日志發給備機,備機將Redo日志存到磁盤且Replay(執行某一操作產生的Redo日志來重復這個操作)完Redo日志后,發送應答消息給主機,主機收到消息后執行下一次操作;在半同步模式下,主機將一個事務的重做Redo日志發給備機,備機在接收到主機發送的Redo日志后,立即給主機發送應答消息,而不用等待Redo日志存到磁盤,主機收到應答消息后執行下一次操作操作和備機replay可以并發;在異步方式下,主機將一批事務的重做Redo日志發給備機,主機繼續執行事務和向備機發送Redo日志完全是異步的,主機不用等待備機。
在實現本發明的過程中,發明人發現現有技術至少存在以下問題:
同步方式雖然可靠性好,但性能很低;異步方式性能好,但是備機和主機的數據差異性可能很大,可靠性差,如果主機出現故障,備機接管業務會存在大量數據丟失;半同步方式可靠性較好,但是主機仍需要在每個事務上等待備機,處理速度和性能較低。
發明內容
為了解決現有技術的問題,本發明實施例提供了一種數據同步方法、設備和系統。所述技術方案如下:
第一方面,提供了一種數據同步方法,所述方法包括:
通過寫日志線程將當前執行的一批事務產生的重做Redo日志從重做緩存保存到主機磁盤中,并阻止所述寫日志線程;
通過發送線程將保存在所述主機磁盤的Redo日志發送給備機;
當接收到所述備機在將所述Redo日志保存到備機磁盤后發送的應答消息時,解除阻止所述寫日志線程。
在第一方面的第一種可能的實現方式中,所述通過寫日志線程將當前執行的一批事務產生的Redo日志從重做緩存保存到主機磁盤中之后,還包括:
繼續執行下一批事務,并將執行的所述下一批事務產生的Redo日志保存到所述重做緩存中,如果所述重做緩存達到預設的閾值,則停止執行事務。
結合第一方面的第一種可能的實現方式,在第一方面的第二種可能的實現方式中,所述停止執行事務之后,還包括:
如果接收到所述備機在將所述Redo日志保存到所述備機磁盤后發送的應答消息,且解除阻止所述寫日志線程之后,通過所述寫日志線程將執行的下一批事務產生的Redo日志從所述重做緩存保存到所述主機磁盤中,并阻止所述寫日志線程;
通過發送線程將保存在所述主機磁盤的執行下一批事務產生的Redo日志發送給備機;
當接收到所述備機在將所述執行下一批事務產生的Redo日志保存到備機磁盤后發送的應答消息時,解除阻止所述寫日志線程。
結合第一方面的第一種、第二種可能的實現方式,在第一方面的第三種可能的實現方式中,所述一批事務為預設內存大小的一批事務,或,預設時間間隔內處理的一批事務。
第二方面,提供了一種數據同步設備,所述設備包括:
處理模塊,用于通過寫日志線程將當前執行的一批事務產生的重做Redo日志從重做緩存保存到主機磁盤中;
阻止模塊,用于阻止所述寫日志線程;
發送模塊,用于通過發送線程將所述保存模塊保存在所述主機磁盤的Redo日志發送給備機;
解除模塊,用于當接收到所述備機在將所述Redo日志保存到備機磁盤后發送的應答消息時,解除阻止所述寫日志線程。
在第二方面的第一種可能的實現方式中,所述處理模塊,還用于繼續執行下一批事務,并將執行所述下一批事務產生的Redo日志保存到所述重做緩存中;
所述阻止模塊,還用于如果所述重做緩存達到所述預設的閾值,則停止執行事務。
結合第二方面的第一種可能的實現方式,在第二方面的第二種可能的實現方式中,所述處理模塊,還用于如果接收到所述備機在將所述Redo日志保存到所述備機磁盤后發送的應答消息,且解除阻止所述寫日志線程之后,通過所述寫日志線程將執行的下一批事務產生的Redo日志從所述重做緩存保存到所述主機磁盤中;
所述阻止模塊,還用于阻止所述寫日志線程;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210566583.5/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





