[發明專利]內存數據備份方法及內存數據備份系統有效
| 申請號: | 201210340231.8 | 申請日: | 2012-09-13 |
| 公開(公告)號: | CN102880529A | 公開(公告)日: | 2013-01-16 |
| 發明(設計)人: | 湯曉剛 | 申請(專利權)人: | 新浪網技術(中國)有限公司 |
| 主分類號: | G06F11/14 | 分類號: | G06F11/14;G06F17/30 |
| 代理公司: | 北京市京大律師事務所 11321 | 代理人: | 黃啟行;方曉明 |
| 地址: | 100080 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 內存 數據 備份 方法 系統 | ||
技術領域
本發明涉及數據存儲技術,尤其涉及一種內存數據備份方法及內存數據備份系統。
背景技術
目前,內存數據持久化存儲及備份主要采用純內存存儲引擎,主要通過遠程字典服務器(Redis,Remote?Dictionary?Server)以及關系型數據庫管理系統(Mysql)等構建主從結構的內存數據庫系統,采用主從復制方式實現多機冗余的高可靠性(HA,High?Availability),其中,Mysql的主從復制是通過增量備份(binlog)方式實現,binlog通過以二進制文件方式記錄結構化查詢語言(SQL,Structured?Query?Language)語句來進行數據備份,所有數據更新在主服務器上執行,在經過預先設置的時間周期后,即定期轉儲(dump)模式,定期將更新的內存數據批量寫入,主服務器將數據更新的binlog發送到從服務器,以使從服務器進行相同的數據更新,從而達到主從一致的目的,實現主服務器與從服務器的同步。Redis也采用主從方式進行內存數據備份,通過類似Mysql的binlog方式進行主從同步,主從同步實現機制與Mysql的binlog同步機制類似,不同的是,Redis通過構建不斷添加模式(AOF,Append?Only?Mode)文件進行主從服務器同步。
在進行內存數據備份時,現有技術通常采用讀寫分離的數據備份方式,在內存數據備份系統中,可以設置一臺主服務器,并配置有多臺從服務器,所有的數據更新業務邏輯訪問主服務器,查詢業務邏輯僅訪問從服務器,也稱為讀寫分離機制。
圖1為現有內存數據備份系統結構示意圖。參見圖1,該內存數據備份系統包括主服務器以及從服務器,較佳地,主服務器的數量為一臺,從服務器的數量為一臺或多臺。數據更新業務邏輯將更新的數據寫入主服務器,主服務器通過binlog方式存儲更新的數據,經過預先設置的時間周期,將更新的數據通過binlog方式寫入從服務器,實現內存數據備份,以使從服務器與主服務器保持數據同步,查詢業務邏輯通過訪問從服務器,獲取查詢所需的數據。
現有的內存數據備份系統,采用當前主流的Mysql的讀寫分離機制方案,當主服務器宕機或故障發生異常時,根據預先設置的切換策略,觸發從多個從服務器中,選擇一個從服務器,并將其升級為主服務器,從而接替主服務器的業務功能,在發生異常的主服務器恢復正常后,再次觸發升級為主服務器的從服務器,使其注銷主服務器的業務功能,恢復為數據備份服務器。
由上述可見,現有的內存數據備份系統,當主服務器宕機時,由于主服務器與從服務器之間存在的binlog同步延遲,即在兩次時間周期期間發生的數據更新,由于主服務器還未能及時寫入從服務器,將會全部丟失,從而無法保證主服務器中所有更新數據的binlog都能夠同步到從服務器上,導致被升級為主服務器的從服務器中,其備份的數據不是最新的,與主服務器中的數據不同步,造成了部分更新數據的丟失,主從服務器同步性較差;對于Redis的主從同步方案,通過同步AOF文件實現主從服務器的數據同步,一方面,當主服務器與從服務器之間的連接暫時中斷時,需要從服務器將主服務器的所有AOF文件從頭再重新同步一遍,這對于日更新上億次的重負荷內存數據備份系統,完全同步AOF文件成為很重的負擔,包括網絡流量上的和數據恢復時間上的負擔;另一方面,同步AOF文件的數據同步機制,也存在與Mysql主從同步類似的問題,當主服務器宕機后,從服務器如果直接升級為主服務器,存在部分數據丟失的問題,使得主從服務器同步性較差。
發明內容
本發明的實施例提供一種內存數據備份方法,避免數據丟失、提升數據的同步性能。
本發明的實施例還提供一種內存數據備份系統,避免數據丟失、提升數據的同步性能。
為達到上述目的,本發明實施例提供的一種內存數據備份方法,包括:
接收數據更新命令,為數據更新命令分配游標;
構建數據更新命令與分配的游標的映射關系,生成序列文件;
將生成的序列文件輸出,以使數據服務器根據接收的序列文件中的數據更新命令,更新數據;
接收數據更新成功信息,存儲數據更新成功的數據更新命令與游標的映射關系。
其中,所述為數據更新命令分配游標包括:
判斷當前接收的數據更新命令是否為接收的第一條數據更新命令,如果是,為接收的數據更新命令分配游標序列號,并記錄分配的游標序列號信息;如果不是,將記錄的游標序列號進行累加,為接收數據更新命令設置累加的游標序列號,記錄累加的游標序列號信息。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于新浪網技術(中國)有限公司,未經新浪網技術(中國)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210340231.8/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





