中文字幕无码日韩视频无码三区

一種數據庫數據同步裝置、系統及方法

文檔序號:10687220閱讀:274來源:國知局(ju)
一種數據庫數據同步裝置、系統及方法
【專利摘要】本發明提供了一種數據庫數據同步裝置、系統及方法,該裝置包括:觸發器、第一消息隊列、第一同步單元,傳輸單元以及第二同步單元;觸發器,用于實時捕獲源數據庫的數據變化信息,并實時發送數據變化信息至第一消息隊列;第一消息隊列,用于存儲觸發器發送的數據變化信息;第一同步單元,用于實時從第一消息隊列中獲取數據變化信息,以及利用數據變化信息獲取源數據庫中對應的完整信息內容,并實時發送完整信息內容至傳輸單元;傳輸單元,用于實時接收第一同步單元發送的完整信息內容,并實時發送完整信息內容至第二同步單元;第二同步單元,用于實時接收傳輸單元發送的完整信息內容,實時同步更新完整信息內容至目標數據庫,具有更高的實時性。
【專利說明】
一種數據庫數據同步裝置、系統及方法
技術領域
[0001]本發明涉及計算機技術領域,特別涉及一種數據庫數據同步裝置、系統及方法。
【背景技術】
[0002]目前,隨著信息技術的飛速發展,企業信息化建設的不斷深入,企業業務系統的數量也在不斷增加。隨之產生,各業務系統之間數據同步,各子業務系統與核心業務系統之間數據同步。因此,諸如上述場景中各數據庫之間的數據同步需求不斷出現。Oracle數據庫系統作為目前世界上流行的關系數據庫管理系統,使用方便、功能強,適用于各類大、中、小、微機環境。
[0003]Oracle數據庫數據同步現有方式是利用Oracle數據庫的聯機重做日志,這個日志記錄著數據庫所做的修改。在歸檔模式下,當發生日志切換的時候,被切換的日志會進行歸檔,此時這個日志將數據同步到目標數據庫中,該方式要求源數據庫必須在歸檔模式下運行,并且數據同步實時性不高。

【發明內容】

[0004]本發明實施例提供了一種數據庫數據同步裝置、系統及方法,具有更高的數據同步實時性。
[0005]第一方面,本發明一個實施例提供了一種數據庫數據同步裝置,該裝置包括:觸發器、第一消息隊列、第一同步單元,傳輸單元以及第二同步單元,其中,
[0006]所述觸發器、所述第一消息隊列以及所述第一同步單元位于源數據庫側;
[0007]所述第二同步單元位于目標數據庫側;
[0008]所述觸發器,用于實時捕獲所述源數據庫的數據變化信息,并實時發送所述數據變化信息至所述第一消息隊列;
[0009]所述第一消息隊列,用于存儲所述觸發器發送的所述數據變化信息;
[0010]所述第一同步單元,用于實時從所述第一消息隊列中獲取所述數據變化信息,以及利用所述數據變化信息獲取所述源數據庫中對應的完整信息內容,并實時發送所述完整信息內容至傳輸單元;
[0011 ]所述傳輸單元,用于實時接收所述第一同步單元發送的所述完整信息內容,并實時發送所述完整信息內容至所述第二同步單元;
[0012]所述第二同步單元,用于實時接收所述傳輸單元發送的所述完整信息內容,并實時同步更新所述完整信息內容至目標數據庫。
[0013]優選地,所述傳輸單元包括:第二消息隊列、第三消息隊列、消息發送服務單元、消息接收服務單元,其中,
[0014]所述第二消息隊列和所述消息發送服務單元位于源數據庫側;
[0015]所述第三消息隊列和所述消息接收服務單元位于目標數據庫側;
[0016]所述第一同步單元,用于實時將所述完整信息內容發送至所述第二消息隊列中;
[0017]所述第二消息隊列,用于存儲所述第一同步單元發送的所述完整信息內容;
[0018]所述消息發送服務單元,用于實時從所述第二消息隊列中獲取所述完整信息內容,并實時發送給所述消息接收服務單元;
[0019]所述消息接收服務單元,用于接收所述消息發送服務單元發送的所述完整信息內容,并實時發送所述完整信息內容至所述第三消息隊列;
[0020]所述第三消息隊列,用于存儲所述消息接收服務單元發送的所述完整信息內容。
[0021]優選地,所述觸發器,根據實時捕獲的所述源數據庫的所述數據變化信息的先后順序,按照先捕獲先發送的順序發送所述數據變化信息至所述第一消息隊列;
[0022]所述第一消息隊列,根據所述觸發器發送的所述數據變化信息的先后順序,按照先發送先儲存的順序儲存所述觸發器發送的所述數據變化信息;
[0023]所述第一同步單元,根據所述第一消息列隊的所述數據變化信息儲存的先后順序,按照先儲存先獲取的順序從所述第一消息列隊獲取所述數據變化信息,并利用所述數據變化信息獲取所述源數據庫中對應的完整信息內容,并實時發送所述完整信息至傳輸單
J L ο
[0024]優選地,所述第一同步單元,獲取所述第一消息列隊的所述數據變化信息,利用所述數據變化信息以ROWID為查詢條件獲取所述數據變化信息對應的完整信息內容,并以數據格式發送給所述第二消息隊列。
[0025]第二方面,本發明另一個實施例還提供了一種數據庫數據同步系統,該系統包括:上述任一所述的數據庫數據同步裝置、源數據庫和目標數據庫。
[0026]第三方面,本發明又一個實施例還提供了一種利用上述任一所述的數據庫數據同步裝置進行數據庫數據同步的方法,在源數據庫中建立觸發器,包括:
[0027]所述觸發器實時捕獲所述源數據庫中的數據變化信息,并實時發送所述數據變化信息至第一消息隊列;
[0028]所述第一消息隊列實時存儲所述觸發器發送的所述數據變化信息;
[0029]所述第一同步單元實時從所述第一消息列隊獲取所述數據變化信息,利用所述數據變化信息獲取所述源數據庫中對應的完整信息內容,并實時發送所述完整信息內容至傳輸單元;
[0030]所述傳輸單元實時接收所述第一同步單元發送的所述完整信息內容,并實時發送所述完整信息內容至第二同步單元;
[0031]所述第二同步單元實時接收所述傳輸單元發送的所述完整信息內容,并實時同步更新所述完整信息內容至目標數據庫。
[0032]優選地,所述并實時發送所述完整信息內容至傳輸單元,及所述的所述傳輸單元實時接收所述第一同步單元發送的所述完整信息內容,并實時發送所述完整信息內容至第二同步單元,包括:
[0033]實時發送所述完整信息內容至第二消息隊列;
[0034]所述第二消息隊列存儲所述第一同步單元發送的所述完整信息內容;
[0035]消息發送服務單元,實時從所述第二消息隊列中獲取所述完整信息內容,并實時發送給消息接收服務單元;
[0036]所述消息接收服務單元接收所述消息發送服務單元發送的所述完整信息內容,并實時發送所述完整信息內容至第三消息隊列;
[0037]所述第三消息隊列存儲所述消息接收服務單元發送的所述完整信息內容。
[0038]優選地,所述觸發器實時捕獲所述源數據庫中的數據變化信息,并實時發送所述數據變化信息至第一消息隊列,包括:
[0039]所述觸發器實時捕獲所述源數據庫中的數據變化信息,并按照先捕獲先發送的順序發送所述數據變化信息至所述第一消息隊列。
[0040]優選地,所述的所述第一同步單元實時獲取所述第一消息列隊的所述數據變化信息,利用所述數據變化信息獲取所述源數據庫中對應的完整信息內容,并實時發送所述完整信息內容至傳輸單元,包括;
[0041]所述第一同步單元,根據獲取所述第一消息列隊的所述數據變化信息的先后順序,按照獲取所述數據變化信息的先后順序利用所述數據變化信息獲取所述源數據庫中對應的完整信息內容,并通過數據格式以先獲取先發送的順序發送至傳輸單元。
[0042]優選地,所述的所述第一同步單元實時獲取所述第一消息列隊的所述數據變化信息,利用所述數據變化信息獲取所述源數據庫中對應的完整信息內容,并實時發送所述完整信息內容至傳輸單元,包括:
[0043]所述第一同步單元實時獲取所述第一消息列隊的所述數據變化信息,利用所述數據變化信息以ROWID為查詢條件獲取所述數據變化信息對應的完整信息內容,并實時以數據格式發送給傳輸單元。
[0044]本發明實施例提供了一種數據庫數據同步裝置、系統及方法,通過在源數據庫中建立觸發器捕獲數據變化信息,并實時發送數據變化信息至第一消息隊列,第一消息列隊實時存儲送數據變化信息,第一同步單元實時獲取第一消息列隊實時存儲的送數據變化信息,并通過數據變化信息獲取與數據變化信息對應的完整信息內容,然后將完整信息內容發送給傳輸單元,通過傳輸單元將完整信息內容發送至目標數據庫的第二同步單元,目標數據庫的第二同步單元接收傳輸單元發送的完整信息內容并實時同步更新完整信息內容至目標數據庫。本方案實現了源數據庫數據發送變化就會實時同步至目標數據庫,相對于現有技術中要求源數據庫必須在歸檔模式下運行,大大提高了數據同步的實時性。
【附圖說明】
[0045]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0046]圖1是本發明一個實施例提供的一種數據庫數據同步裝置的結構示意圖;
[0047]圖2是本發明一個實施例提供的另一種數據庫數據同步裝置的結構示意圖;
[0048]圖3是本發明一個實施例提供的一個表中數據發生變化的過程;
[0049]圖4是本發明一個實施例提供的另一個表中數據發生變化的過程;
[0050]圖5是本發明一個實施例提供的一種數據庫數據同步系統的結構示意圖;
[0051 ]圖6是本發明一個實施例提供的一種數據庫數據同步方法的流程圖;
[0052]圖7是本發明一個實施例提供的另一種數據庫數據同步方法的流程圖。
【具體實施方式】
[0053]為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例,基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動的前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0054]如圖1所示,本發明實施例提供了一種數據庫數據同步裝置,該裝置可以包括:
[0055]觸發器101、第一消息隊列102、第一同步單元103,傳輸單元104以及第二同步單元105,其中,
[0056]所述觸發器101、所述第一消息隊列102以及所述第一同步單元103位于源數據庫側;
[0057]所述第二同步單元105位于目標數據庫側;
[0058]所述觸發器101,用于實時捕獲所述源數據庫的數據變化信息,并實時發送所述數據變化信息至所述第一消息隊列102;
[0059]所述第一消息隊列102,用于存儲所述觸發器101發送的所述數據變化信息;
[0060]所述第一同步單元103,用于實時從所述第一消息隊列102中獲取所述數據變化信息,以及利用所述數據變化信息獲取所述源數據庫中對應的完整信息內容,并實時發送所述完整信息內容至傳輸單元104;
[0061]所述傳輸單元104,用于實時接收所述第一同步單元103發送的所述完整信息內容,并實時發送所述完整信息內容至所述第二同步單元105;
[0062]所述第二同步單元105,用于實時接收所述傳輸單元104發送的所述完整信息內容,并實時同步更新所述完整信息內容至目標數據庫。
[0063]在圖1所示的實施例中,通過在源數據庫中建立觸發器捕獲數據變化信息,并實時發送數據變化信息至第一消息隊列,第一消息列隊實時存儲送數據變化信息,第一同步單元實時獲取第一消息列隊實時存儲的送數據變化信息,并通過數據變化信息獲取與數據變化信息對應的完整信息內容,然后將完整信息內容發送給傳輸單元,通過傳輸單元將完整信息內容發送至目標數據庫的第二同步單元,目標數據庫的第二同步單元接收傳輸單元發送的完整信息內容并實時同步更新完整信息內容至目標數據庫。本方案實現了源數據庫數據發送變化就會實時同步至目標數據庫,相對于現有技術中要求源數據庫必須在歸檔模式下運行,大大提高了數據同步的實時性。
[0064]如圖2所示,本發明一個實施例中,傳輸單元104包括:第二消息隊列201、第三消息隊列202、消息發送服務單元203、消息接收服務單元204,其中,
[0065]所述第二消息隊列201和所述消息發送服務單元203位于源數據庫側;
[0066]所述第三消息隊列202和所述消息接收服務單元204位于目標數據庫側;
[0067]所述第一同步單元103,用于實時將所述完整信息內容發送至所述第二消息隊列201 中;
[0068]所述第二消息隊列201,用于存儲所述第一同步單元103發送的所述完整信息內容;
[0069]所述消息發送服務單元203,用于實時從所述第二消息隊列201中獲取所述完整信息內容,并實時發送給所述消息接收服務204單元;
[0070]所述消息接收服務單元204,用于接收所述消息發送服務單元203發送的所述完整信息內容,并實時發送所述完整信息內容至所述第三消息隊列202;
[0071]所述第三消息隊列202,用于存儲所述消息接收服務單元發送的所述完整信息內容。
[0072]在該實施例中,為了能夠實現大量數據的實時同步,傳輸單元必須要滿足可以攜帶大量數據并且滿足實時快速同步。于是可以使用信息隊列,為了能夠最好的實現傳輸效果,可以使用浪潮高性能消息隊列IMQ,也可以使用其它高性能消息隊列。于是,本實施例以浪潮高性能消息隊列MQ為例進行說明。因此,本實施例中,第二消息隊列201、第三消息隊列202均為浪潮高性能消息隊列MQ。不僅實現了大量數據的實時同步,并且還避免了數據在傳輸時丟失,造成的完整性缺失。
[0073]在本發明一個實施例中,為了保證目標數據庫更新的內容與源數據庫的改變的內容一致,于是目標數據庫更新數據的先后順序應該和源數據庫數據改變的先后順序保持一致。于是,在本實施例中,觸發器根據實時捕獲的源數據庫的數據變化信息的先后順序,按照先捕獲先發送的順序發送所述數據變化信息至第一消息隊列;所述第一消息隊列,根據所述觸發器發送的所述數據變化信息的先后順序,按照先發送先儲存的順序儲存所述觸發器發送的所述數據變化信息;第一同步單元,根據所述第一消息列隊的所述數據變化信息儲存的先后順序,按照先儲存先獲取的順序從所述第一消息列隊獲取所述數據變化信息,并利用所述數據變化信息獲取所述源數據庫中對應的完整信息內容,并實時發送所述完整信息至傳輸單元。
[0074]例如,在源數據庫的成績表中,先將當前第一列的數據都加I,再將當前第一列和當前第二列交換位置,變化過程參考圖3。而對目標數據庫更新時,按照先將第一列和第二列交換位置,在此基礎上將當前第一列的數據都加1,變化過程參考圖4。從圖3和圖4的顯示的結果可以明顯發現目標數據庫更新的是錯誤的數據。因此必須按照源數據庫數據發生變化的順序對目標數據庫的數據進行更新。
[0075]在本發明一個實施例中,為了保證數據同步實時性,通過源數據庫數據變化信息必須要快速獲得源數據庫產生變化的內容。因此,第一同步單元獲取第一消息列隊的數據變化信息,利用所述數據變化信息以ROWID為查詢條件獲取所述數據變化信息對應的完整信息內容,并以數據格式發送給所述第二消息隊列。
[0076]值得說明的是,ROWID是數據庫中唯一標志記錄物理位置的一個地址。通常來說,一個ROWID值唯一標識數據中的一行。因此在第一同步單元獲取數據變化信息后,可以利用所述數據變化信息以ROWID為查詢條件以數據庫所能提供的最快方式獲取所述數據變化信息對應的完整信息內容。
[0077]上述裝置內的各單元之間的信息交互、執行過程等內容,由于與本發明方法實施例基于同一構思,具體內容可參見本發明方法實施例中的敘述,此處不再贅述。
[0078]如圖5所示,本發明實施例提供了一種數據庫數據同步系統,該系統可以包括:上述實施例任一所述數據庫數據同步裝置500、源數據庫501和目標數據庫502。
[0079]如圖6所示,本發明實施例提供了一種數據庫數據同步方法,該方法利用了上述任一所述的數據庫數據同步裝置,可以包括以下步驟:
[0080]步驟601:源數據庫中建立觸發器。
[0081]步驟602:所述觸發器實時捕獲所述源數據庫中的數據變化信息,并實時發送所述數據變化信息至第一消息隊列。
[0082]步驟603:所述第一消息隊列實時存儲所述觸發器發送的所述數據變化信息。
[0083]步驟604:所述第一同步單元實時從所述第一消息列隊獲取所述數據變化信息,利用所述數據變化信息獲取所述源數據庫中對應的完整信息內容,并實時發送所述完整信息內容至傳輸單元。
[0084]步驟605:所述傳輸單元實時接收所述第一同步單元發送的所述完整信息內容,并實時發送所述完整信息內容至第二同步單元。
[0085]步驟606:所述第二同步單元實時接收所述傳輸單元發送的所述完整信息內容,并實時同步更新所述完整信息內容至目標數據庫。
[0086]在本發明一個實施例中,為了能夠實現大量數據的實時同步,步驟604包括:
[0087]所述第二同步單元實時接收所述傳輸單元發送的所述完整信息內容,并實時發送所述完整信息內容至第二消息隊列;
[0088]所述第二消息隊列存儲所述第一同步單元發送的所述完整信息內容;
[0089]消息發送服務單元,實時從所述第二消息隊列中獲取所述完整信息內容,并實時發送給消息接收服務單元;
[0090]步驟605包括:
[0091]所述消息接收服務單元接收所述消息發送服務單元發送的所述完整信息內容,并實時發送所述完整信息內容至第三消息隊列;
[0092]所述第三消息隊列存儲所述消息接收服務單元發送的所述完整信息內容。
[0093]下面以Oracle數據庫數據同步為例,對本發明實施例的數據庫數據同步方法進行詳細說明。
[0094]如圖7所示,本發明一個實施例提供了一種Oracle數據庫數據同步方法,該方法可以包括以下步驟:
[0095]步驟701:源Oracle數據庫中建立觸發器,并捕獲數據變化信息。
[0096]在本實施例中,針對不同的表,有的表需要進行同步而有的表則不需要進行同步,因此,在源Oracle數據庫需要同步的表中建立增刪改觸發器,增刪改觸發器實時捕獲源中變化記錄的表名、ROWID、變化類型等數據變化信息。
[0097]步驟702:所述觸發器實時按照先捕獲先發送的順序將所述數據變化信息發送至源Oracle數據庫第一消息列隊。
[0098]在本實施例中,事物的改變順序對事物產生的結果具有很大的影響。對于產生影響的過程上述實施例中已經舉例說明,在此本實施例不作贅述。
[0099]步驟703:所述第一消息隊列實時存儲所述觸發器發送的所述數據變化信息。
[0100]在本實施中,第一消息隊列的儲存順序由觸發器的的發送順序決定,按照觸發器先發送第一消息列隊先儲存的順序進行儲存。
[0101]步驟704:源Oracle數據庫第一同步單元實時從所述第一消息列隊獲取所述數據變化信息,利用所述數據變化信息獲取所述源數據庫中對應的完整信息內容。
[0102]在本實施例中,第一同步單元從第一消息列隊獲取數據變化的信息順序,按照在第一消息列隊先儲存第一同步單元先獲取的順序進行獲取數據變化的信息。由于觸發器捕獲的只是源Oracle數據庫需要同步的表中表名、ROWID、變化類型等數據變化信息,并非是源Oracle數據庫中變化信息內容。因此,需要利用該信息以ROWID為查詢條件以Oracle所能提供的最快方式獲取到變化記錄的完整內容。
[0103]步驟705:所述第一同步單元實時發送所述完整信息內容至源Oracle數據庫第二消息隊列。
[0104]在本實施例中,完整信息內容可以以各種格式進行傳輸。為了方便快捷,采用JSON或XML進行數據傳輸。
[0105]步驟706:所述第二消息隊列存儲所述第一同步單元發送的所述完整信息內容。
[0106]在本實施例中,完整信息內容以JSON或XML存入第二消息列隊。
[0107]步驟707:源Oracle數據庫消息發送服務單元實時從所述第二消息隊列中獲取所述完整信息內容,并實時發送給目標數據庫消息接收服務單元。
[0108]步驟708:所述消息接收服務單元接收所述消息發送服務單元發送的所述完整信息內容,并實時發送所述完整信息內容至目標Oracle數據庫第三消息隊列。
[0109]步驟709:所述第三消息隊列存儲所述消息接收服務單元發送的所述完整信息內容。
[0110]本實施例中,為了滿足大數據的傳輸,以及數據傳輸過程中的安全性,于是傳輸單元采用高性能信息隊列,并在高性能信息隊列之間通過消息發送服務單和消息接收服務單元的連接,實現數據在信息列隊之間的快速傳輸。并且同時解決了源Oracle數據庫和目標Orac I e數據庫分處異地的問題。
[0111]步驟710:所述第二同步單元實時獲取所述第三消息隊列存儲的所述完整信息內容,并實時同步更新所述完整信息內容至目標Oracle數據庫。
[0112]在本實施例中,不要求源Oracle數據庫必須在歸檔模式運行,不會對源數據庫產生新的插入、更新、刪除操作,對源數據庫的影響很小,適用范圍廣,同步快速,實時性強。
[0113]根據上述方案,本發明的各實施例,至少具有如下有益效果:
[0114]1、在本發明實施例中,通過在源數據庫中建立觸發器捕獲數據變化信息,并實時發送數據變化信息至第一消息隊列,第一消息列隊實時存儲送數據變化信息,第一同步單元實時獲取第一消息列隊實時存儲的送數據變化信息,并通過數據變化信息獲取與數據變化信息對應的完整信息內容,然后將完整信息內容發送給傳輸單元,通過傳輸單元將完整信息內容發送至目標數據庫的第二同步單元,目標數據庫的第二同步單元接收傳輸單元發送的完整信息內容并實時同步更新完整信息內容至目標數據庫。本方案實現了源數據庫數據發送變化就會實時同步至目標數據庫,相對于現有技術中要求源數據庫必須在歸檔模式下運行,大大提高了數據同步的實時性。
[0115]2、本本發明實施例中,通過按照源數據庫發生變化的順序,觸發器對變化信息進行捕獲,并按照變化的順序存儲到第一消息隊列中。然后第一同步單元按照第一消息列隊存儲變化信息的順序進行獲取,并利用獲取的變化信息從源數據庫中獲取完整的信息內容。這樣保證了第一同步模塊獲取的完整信息內容就是所發生變化的內容,而不會獲取錯誤的信息內容。
[0116]3、在本發明實施例中,該方法不要求源數據庫必須在歸檔模式運行,不會對源數據庫產生新的插入、更新、刪除操作,對源數據庫的影響很小,適用范圍廣,同步快速,實時性強。
[0117]4、在本發明實施例中,利用傳輸單元將源數據庫需要更新的數據傳輸至目標數據庫。該方法有效解決了源數據庫和目標數據庫分處異地的問題,且可以實時更新分處異地的數據庫。
[0118]5、目前數據庫數據同步利用Oracle觸發器將數據變化的所有內容插入到另外的表中,數據同步完成后還要將另外表中的記錄刪除,該方式對源數據影響較大,并且數據同步效率低,適用范圍受限。而本發明則不需要就將數據變化的內容進行任何處理,直接傳輸到第二同步單元對目標數據庫進行同步更新,有效解決了上述問題。
[0119]6、通過使用浪潮高性能消息隊列IMQ或者其它高性能消息隊列,既能滿足更新數據量大的要求,又能保證數據內容在傳輸工程中的安全性和穩定性。
[0120]需要說明的是,在本文中,諸如第一和第二之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個......”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同因素。
[0121]本領域普通技術人員可以理解:實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲在計算機可讀取的存儲介質中,該程序在執行時,執行包括上述方法實施例的步驟;而前述的存儲介質包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質中。
[0122]最后需要說明的是:以上所述僅為本發明的較佳實施例,僅用于說明本發明的技術方案,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內所做的任何修改、等同替換、改進等,均包含在本發明的保護范圍內。
【主權項】
1.一種數據庫數據同步裝置,其特征在于,包括:觸發器、第一消息隊列、第一同步單元,傳輸單元以及第二同步單元,其中, 所述觸發器、所述第一消息隊列以及所述第一同步單元位于源數據庫側; 所述第二同步單元位于目標數據庫側; 所述觸發器,用于實時捕獲所述源數據庫的數據變化信息,并實時發送所述數據變化信息至所述第一消息隊列; 所述第一消息隊列,用于存儲所述觸發器發送的所述數據變化信息; 所述第一同步單元,用于實時從所述第一消息隊列中獲取所述數據變化信息,以及利用所述數據變化信息獲取所述源數據庫中對應的完整信息內容,并實時發送所述完整信息內容至傳輸單元; 所述傳輸單元,用于實時接收所述第一同步單元發送的所述完整信息內容,并實時發送所述完整信息內容至所述第二同步單元; 所述第二同步單元,用于實時接收所述傳輸單元發送的所述完整信息內容,并實時同步更新所述完整信息內容至目標數據庫。2.根據權利要求1所述的裝置,其特征在于,所述傳輸單元包括:第二消息隊列、第三消息隊列、消息發送服務單元、消息接收服務單元,其中, 所述第二消息隊列和所述消息發送服務單元位于源數據庫側; 所述第三消息隊列和所述消息接收服務單元位于目標數據庫側; 所述第一同步單元,用于實時將所述完整信息內容發送至所述第二消息隊列中; 所述第二消息隊列,用于存儲所述第一同步單元發送的所述完整信息內容; 所述消息發送服務單元,用于實時從所述第二消息隊列中獲取所述完整信息內容,并實時發送給所述消息接收服務單元; 所述消息接收服務單元,用于接收所述消息發送服務單元發送的所述完整信息內容,并實時發送所述完整信息內容至所述第三消息隊列; 所述第三消息隊列,用于存儲所述消息接收服務單元發送的所述完整信息內容。3.根據權利要求1所述的裝置,其特征在于, 所述觸發器,根據實時捕獲的所述源數據庫的所述數據變化信息的先后順序,按照先捕獲先發送的順序發送所述數據變化信息至所述第一消息隊列; 所述第一消息隊列,根據所述觸發器發送的所述數據變化信息的先后順序,按照先發送先儲存的順序儲存所述觸發器發送的所述數據變化信息; 所述第一同步單元,根據所述第一消息列隊的所述數據變化信息儲存的先后順序,按照先儲存先獲取的順序從所述第一消息列隊獲取所述數據變化信息,并利用所述數據變化信息獲取所述源數據庫中對應的完整信息內容,并實時發送所述完整信息至傳輸單元。4.根據權利要求1或3任一所述的裝置,其特征在于, 所述第一同步單元,獲取所述第一消息列隊的所述數據變化信息,利用所述數據變化信息以ROWID為查詢條件獲取所述數據變化信息對應的完整信息內容,并以數據格式發送給所述第二消息隊列。5.—種數據庫數據同步系統,其特征在于,包括:權利要求1至4任一所述的數據庫數據同步裝置、源數據庫和目標數據庫。6.—種利用權利要求1至4任一所述的數據庫數據同步裝置進行數據庫數據同步的方法,其特征在于,在源數據庫中建立觸發器,包括: 所述觸發器實時捕獲所述源數據庫中的數據變化信息,并實時發送所述數據變化信息至第一消息隊列; 所述第一消息隊列實時存儲所述觸發器發送的所述數據變化信息; 第一同步單元實時從所述第一消息列隊獲取所述數據變化信息,利用所述數據變化信息獲取所述源數據庫中對應的完整信息內容,并實時發送所述完整信息內容至傳輸單元;所述傳輸單元實時接收所述第一同步單元發送的所述完整信息內容,并實時發送所述完整信息內容至第二同步單元; 所述第二同步單元實時接收所述傳輸單元發送的所述完整信息內容,并實時同步更新所述完整信息內容至目標數據庫。7.根據權利要求6所述的方法,其特征在于,所述并實時發送所述完整信息內容至傳輸單元,及所述的所述傳輸單元實時接收所述第一同步單元發送的所述完整信息內容,并實時發送所述完整信息內容至第二同步單元,包括: 實時發送所述完整信息內容至第二消息隊列; 所述第二消息隊列存儲所述第一同步單元發送的所述完整信息內容; 消息發送服務單元,實時從所述第二消息隊列中獲取所述完整信息內容,并實時發送給消息接收服務單元; 所述消息接收服務單元接收所述消息發送服務單元發送的所述完整信息內容,并實時發送所述完整信息內容至第三消息隊列; 所述第三消息隊列存儲所述消息接收服務單元發送的所述完整信息內容。8.根據權利要求6所述的方法,其特征在于,所述觸發器實時捕獲所述源數據庫中的數據變化信息,并實時發送所述數據變化信息至第一消息隊列,包括: 所述觸發器實時捕獲所述源數據庫中的數據變化信息,并按照先捕獲先發送的順序發送所述數據變化信息至所述第一消息隊列。9.根據權利要求8所述的方法,其特征在于, 所述的所述第一同步單元實時獲取所述第一消息列隊的所述數據變化信息,利用所述數據變化信息獲取所述源數據庫中對應的完整信息內容,并實時發送所述完整信息內容至傳輸單元,包括; 所述第一同步單元,根據獲取所述第一消息列隊的所述數據變化信息的先后順序,按照獲取所述數據變化信息的先后順序利用所述數據變化信息獲取所述源數據庫中對應的完整信息內容,并通過數據格式以先獲取先發送的順序發送至傳輸單元。10.根據權利要求6-9任一所述的方法,其特征在于,所述的所述第一同步單元實時獲取所述第一消息列隊的所述數據變化信息,利用所述數據變化信息獲取所述源數據庫中對應的完整信息內容,并實時發送所述完整信息內容至傳輸單元,包括: 所述第一同步單元實時獲取所述第一消息列隊的所述數據變化信息,利用所述數據變化信息以ROWID為查詢條件獲取所述數據變化信息對應的完整信息內容,并實時以數據格式發送給傳輸單元。
【文檔編號】G06F17/30GK106055723SQ201610682614
【公開日】2016年10月26日
【申請日】2016年8月17日
【發明人】李朝銘, 龐棟
【申請人】浪潮軟件股份有限公司
網友詢問留(liu)言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1