[發明專利]數據庫系統的數據同步方法、裝置及服務器在審
| 申請號: | 201410129731.6 | 申請日: | 2014-04-01 |
| 公開(公告)號: | CN104978313A | 公開(公告)日: | 2015-10-14 |
| 發明(設計)人: | 喬立秋 | 申請(專利權)人: | 中興通訊股份有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京康信知識產權代理有限責任公司 11240 | 代理人: | 余剛;梁麗超 |
| 地址: | 518057 廣*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據庫 系統 數據 同步 方法 裝置 服務器 | ||
技術領域
本發明涉及通信領域,具體而言,涉及一種數據庫系統的數據同步方法、裝置及服務器。
背景技術
自從1970年E.F.Codd博士提出最初的理論模型以來,關系型數據庫已經成為所有信息系統中必不可少的基礎設施之一,其重要性僅次于操作系統,如今已經沒有哪個大型的系統能夠脫離數據庫而存在。
在實際應用中,由于業務邏輯的復雜性和功能的模塊化設計,往往一個信息系統中會部署有多套數據庫,而且這多套庫之間需要協同合作共享數據,這就要求各數據庫之間能夠實現數據同步。
為了實現這個目標,各主流數據庫廠商都推出了自己的數據同步技術,如Oracle的Streams,Sybase的Replication?Server等。其實現數據同步的基本原理都是抓取源數據庫的redolog中的LCR,然后到目的數據庫上按照邏輯變化記錄(Logical?Change?Record,簡稱為LCR)發生的順序逐條進行應用,從而實現目的數據庫庫的數據與源數據庫的數據一致。
LCR數據庫界對數據庫變動記錄的通稱。一條LCR體現了源數據庫中一條特定記錄上的一次特定數操縱語言命令(Data?Manipulation?Language,簡稱為DML)操作,其中內容可以包含:操作類型,變動字段列表,字段變化前值,字段變化后值,主鍵字段名,主鍵字段值以及事務相關信息等。依據DML操作的上述信息,就可以將這個DML操作復現。
在進行數據同步時,必須按LCR發生的順序在目的庫上進行應用,因為若順序不一致則會導致源數據庫和目的數據庫的數據不一致。假設存在兩條LCR:LCR1為向數據表t插入一條a,LCR2為更新表t記錄a為記錄b,若在目的數據庫上先執行LCR2則會失敗導致數據不一致。
鑒于以上原因,當前的處理模式一般是對LCR進行串行化處理,如圖1所示,采用一個線程讀取LCR,一個線程執行LCR的模式。由于是串行處理,其必然導致數據同步的效率很低。
針對相關技術中數據庫系統的數據同步效率低的問題,目前尚未提出有效的解決方案。
發明內容
針對相關技術中數據庫系統的數據同步效率低的問題,本發明提供了一種數據庫系統的數據同步方法、裝置及服務器,以至少解決上述問題。
根據本發明的一個方面,提供了一種數據庫系統的數據同步方法,包括:讀取源數據庫的LCR組成的事務段;將所述事務段中同一數據表對應的LCR分發到多個線程中的同一線程,其中所述多個線程用于執行所述LCR。
優選地,所述數據表包括有關鍵約束關系的相關數據表;所述方法還包括:將所述相關數據表對應的LCR分發至同一線程。
優選地,將所述事務段中同一數據表對應的LCR分發到多個線程中的同一線程,包括:按照數據表與線程的對應關系從所述多個線程中選擇接收LCR的線程;將數據表對應的LCR分發至選擇得到的線程。
優選地,按照以下方式確定所述對應關系:對于無外鍵約束關系的不同數據表,根據數據表的表名通過預定算法得到對應的不同線程,使一個數據表只對應一個線程,一個線程處理一個或多個數據表;和/或,對于有外鍵約束關系的不同數據表,通過配置對應到同一個線程。
優選地,上述方法還包括:根據所述事務段中LCR中修改前的數據記錄當前事務的undo日志。
優選地,上述方法還包括:在所述事務中任一LCR同步失敗時,根據所述undo日志進行回退事務。
根據本發明的另一個方面,提供了一種數據庫系統的數據同步裝置,包括:讀取模塊,用于讀取源數據庫的邏輯變化記錄LCR組成的事務段;分發模塊,用于將所述事務段中同一數據表對應的LCR分發到多個線程中的同一線程,其中所述多個線程用于執行所述LCR。
優選地,所述分發模塊包括:選擇單元,用于按照數據表與線程的對應關系從所述多個線程中選擇接收LCR的線程;分發單元,將數據表對應的LCR分發至選擇得到的線程。
優選地,上述裝置還包括:記錄模塊,用于根據所述LCR中修改前的數據記錄當前事務的undo日志。
優選地,上述裝置還包括:回退模塊,用于在任一所述LCR同步失敗時,根據所述undo日志進行回退事務。
根據本發明的再一個方面,還提供了一種服務器,包括:處理器;讀取模塊,用于讀取源數據庫的邏輯變化記錄LCR組成的事務段;分發模塊,用于將所述事務段中同一數據表對應的LCR分發到多個線程中的同一線程,其中所述多個線程用于執行所述LCR。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中興通訊股份有限公司,未經中興通訊股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410129731.6/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





