張記強(qiáng) 王仁 蔣欣欣 李明磊
摘? 要:隨著信息化應(yīng)用的不斷深入,企業(yè)內(nèi)部不同應(yīng)用系統(tǒng)、企業(yè)與外部信息系統(tǒng)數(shù)據(jù)同步的需求日益強(qiáng)烈。由于各信息系統(tǒng)使用的數(shù)據(jù)庫管理軟件各不相同,導(dǎo)致數(shù)據(jù)之間無法實(shí)現(xiàn)同步與共享,因此,需要設(shè)計(jì)一種異構(gòu)數(shù)據(jù)庫之間同步的方法,解決不同信息系統(tǒng)數(shù)據(jù)間的同步問題。本論文在現(xiàn)有成熟數(shù)據(jù)庫產(chǎn)品的基礎(chǔ)上,分析了數(shù)據(jù)同步過程中的關(guān)鍵問題,如數(shù)據(jù)類型差異、數(shù)據(jù)捕獲策略、同步振蕩等。針對這些問題,設(shè)計(jì)采用建立映射模式的方法、觸發(fā)器與控制表相結(jié)合的方法以及在同步任務(wù)中對控制表進(jìn)行干預(yù)的方法予以解決。最后,在QT(跨平臺(tái)軟件開發(fā)框架)下,設(shè)計(jì)實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫同步系統(tǒng),實(shí)驗(yàn)驗(yàn)證表明,本系統(tǒng)達(dá)到了較好的數(shù)據(jù)同步效果。
關(guān)鍵詞:異構(gòu)數(shù)據(jù)庫;數(shù)據(jù)同步;數(shù)據(jù)捕獲;觸發(fā)器;QT
中圖分類號:TP311.13? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
文章編號:2096-1472(2021)-01-06-04
Abstract: With the development of information applications, there is a growing demand for data synchronization between different application systems within enterprises, between enterprises, and amongst external information systems. However, due to different database management software used by different information systems, data synchronization and sharing cannot be achieved. Therefore, it is necessary to design a method of synchronization between heterogeneous databases to realize data synchronization of different information systems. Based on existing mature database products, this paper analyzes key issues in the process of data synchronization, such as data type difference, data capture strategy, synchronous oscillation and so on. In order to solve these problems, methods of establishing mapping pattern, combining trigger with control table, and intervening control table in synchronization task are designed. At last, under the framework of QT (the cross-platform software development framework), a heterogeneous database synchronization system is designed and implemented. Experimental results show that the system achieves better data synchronization effect.
Keywords: heterogeneous database; data synchronization; data capture; trigger; QT
1? ?引言(Introduction)
在數(shù)據(jù)庫管理系統(tǒng)領(lǐng)域,已經(jīng)存在多個(gè)成熟的數(shù)據(jù)庫產(chǎn)品,而在企業(yè)搭建的眾多應(yīng)用系統(tǒng)中,由于應(yīng)用開發(fā)部門不同或者應(yīng)用系統(tǒng)本身特點(diǎn)等因素,使得不同的系統(tǒng)使用的數(shù)據(jù)庫系統(tǒng)也不同。隨著業(yè)務(wù)與用戶規(guī)模的不斷增加,傳統(tǒng)的單一數(shù)據(jù)中心已經(jīng)不能滿足企業(yè)的發(fā)展需求,跨地域的互聯(lián)數(shù)據(jù)中心建設(shè)方案由此產(chǎn)生,例如兩地三中心、異地多活數(shù)據(jù)庫等方案[1],這種場景就涉及異構(gòu)數(shù)據(jù)庫之間數(shù)據(jù)同步的問題。同時(shí)以神通、武漢達(dá)夢、人大金倉為代表的一大批優(yōu)秀的國產(chǎn)數(shù)據(jù)庫軟件逐漸被市場認(rèn)可,并被企業(yè)應(yīng)用到內(nèi)部系統(tǒng)中,用于替換國外數(shù)據(jù)庫產(chǎn)品。
現(xiàn)有技術(shù)中,異構(gòu)數(shù)據(jù)庫數(shù)據(jù)同步方式大多是基于自身的同步復(fù)制技術(shù)實(shí)現(xiàn)的,各數(shù)據(jù)庫廠商在各自數(shù)據(jù)庫復(fù)制的基礎(chǔ)上提出了數(shù)據(jù)庫的同步方案。例如SQL Server提出的出版者及訂閱者同步方案,用于多臺(tái)數(shù)據(jù)庫服務(wù)器之間的數(shù)據(jù)同步[2,3];Oracle采用多主復(fù)制和物化視圖的方案實(shí)現(xiàn)數(shù)據(jù)同步功能。
本文通過對異構(gòu)數(shù)據(jù)庫數(shù)據(jù)同步問題進(jìn)行分析與研究,提出了解決異構(gòu)數(shù)據(jù)庫數(shù)據(jù)同步關(guān)鍵問題的方法。在該方法的基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)了基于QT框架的異構(gòu)數(shù)據(jù)庫同步系統(tǒng),實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫間數(shù)據(jù)的同步與共享。
2? ?相關(guān)工作(Related work)
2.1? ?天熠嵌入式數(shù)據(jù)庫簡介
天熠嵌入式數(shù)據(jù)庫(TYCHE)是中國航天科工集團(tuán)第二研究院706所面向綜合化、網(wǎng)絡(luò)化、信息化應(yīng)用需求自主研發(fā)的一款嵌入式實(shí)時(shí)數(shù)據(jù)庫產(chǎn)品,具備強(qiáng)實(shí)時(shí)、高可靠的產(chǎn)品特性,目前在項(xiàng)目中應(yīng)用廣泛。其特點(diǎn)是占用資源少,并支持主流的操作系統(tǒng),尤其是它的處理速度非???,單條數(shù)據(jù)讀取速率能達(dá)到40微秒。本項(xiàng)目使用天熠數(shù)據(jù)庫作為數(shù)據(jù)存儲(chǔ)的軟件。
2.2? ?QT開發(fā)工具
QT是由Qt Company開發(fā)的跨平臺(tái)C++圖形用戶界面應(yīng)用程序開發(fā)框架。本文選擇QT作為開發(fā)工具主要是由于在其上開發(fā)的軟件具有很好的跨平臺(tái)性,即一次開發(fā)可以在微小改動(dòng)的情況下,實(shí)現(xiàn)在Windows和中標(biāo)麒麟下的編譯運(yùn)行[4]。
2.3? ?相關(guān)研究
目前已經(jīng)出現(xiàn)了一些異構(gòu)數(shù)據(jù)庫數(shù)據(jù)同步技術(shù),但總的來說,這些技術(shù)與各數(shù)據(jù)庫廠商產(chǎn)品緊密綁定,擴(kuò)展性較差。
文獻(xiàn)[3]研究的是分布式異構(gòu)數(shù)據(jù)庫環(huán)境下數(shù)據(jù)同步技術(shù),由系統(tǒng)管理員啟動(dòng)同步程序,從而將Linux服務(wù)器下的Oracle數(shù)據(jù)庫中的數(shù)據(jù)單向同步到Windows服務(wù)器下的Oracle數(shù)據(jù)庫中。該技術(shù)實(shí)現(xiàn)了Oracle到Oracle之間的數(shù)據(jù)同步,并且只能單向同步,底層借助的是Oracle的SQL Plus工具。該文獻(xiàn)涉及的方法與Oracle數(shù)據(jù)庫緊密綁定,不能解決其他異構(gòu)數(shù)據(jù)庫之間數(shù)據(jù)同步的問題。
3? ?數(shù)據(jù)同步常見問題(Data synchronization FAQ)
3.1? ?數(shù)據(jù)類型差異
對于異構(gòu)數(shù)據(jù)庫的數(shù)據(jù)同步,必須解決異構(gòu)數(shù)據(jù)庫數(shù)據(jù)類型差異的問題[5]。數(shù)據(jù)類型差異表現(xiàn)在以下四個(gè)方面。
(1)異構(gòu)數(shù)據(jù)庫支持的數(shù)據(jù)類型種類不完全相同。例如A數(shù)據(jù)庫有時(shí)間類型,B數(shù)據(jù)庫不一定有時(shí)間類型。
(2)異構(gòu)數(shù)據(jù)庫相同數(shù)據(jù)類型的名稱可能不同。例如存儲(chǔ)整型數(shù)據(jù),A數(shù)據(jù)庫類型名稱為integer,B數(shù)據(jù)庫類型名稱為int。
(3)在不同場景下,一個(gè)數(shù)據(jù)庫的同一數(shù)據(jù)類型對應(yīng)其他數(shù)據(jù)庫的數(shù)據(jù)類型不同。例如A數(shù)據(jù)庫的varchar類型根據(jù)實(shí)際數(shù)據(jù)長度,可能對應(yīng)B數(shù)據(jù)庫的varchar或blob數(shù)據(jù)類型。
(4)類型映射往往為單向映射。例如A數(shù)據(jù)庫支持money類型,B數(shù)據(jù)庫不支持money類型但是支持double類型。此時(shí)A數(shù)據(jù)庫的money類型對應(yīng)B數(shù)據(jù)庫的double類型,但是B數(shù)據(jù)庫的double類型一般不能直接轉(zhuǎn)換為A數(shù)據(jù)庫的money類型。
本系統(tǒng)解決異構(gòu)數(shù)據(jù)庫數(shù)據(jù)類型差異的方案是通過建立數(shù)據(jù)類型映射,用戶可根據(jù)需要自定義或者修改數(shù)據(jù)類型映射規(guī)則。
3.2? ?數(shù)據(jù)捕獲策略
不同數(shù)據(jù)庫產(chǎn)品支持不同的數(shù)據(jù)捕獲策略,常見的有快照法、觸發(fā)器法、日志法、API法、影子表法、控制表法[6]。這些方法各有優(yōu)缺點(diǎn),若本系統(tǒng)針對每個(gè)數(shù)據(jù)庫采用其獨(dú)特的數(shù)據(jù)捕獲方式,會(huì)對系統(tǒng)的通用性產(chǎn)生一定的影響。
考慮到當(dāng)今主流數(shù)據(jù)庫都已經(jīng)實(shí)現(xiàn)觸發(fā)器機(jī)制,并且用戶對觸發(fā)器的接受程度較高,本系統(tǒng)提出一種基于觸發(fā)器的數(shù)據(jù)捕獲方法,并在觸發(fā)器機(jī)制上進(jìn)行了改進(jìn),增加了控制表機(jī)制。
3.3? ?同步振蕩問題
同步振蕩是由于在異構(gòu)數(shù)據(jù)庫兩端同時(shí)建立觸發(fā)器導(dǎo)致的一種循環(huán)更新的問題。比較典型的場景是用戶操作A數(shù)據(jù)庫,在A數(shù)據(jù)庫端通過觸發(fā)器產(chǎn)生一條數(shù)據(jù)變更記錄寫入控制表,系統(tǒng)將數(shù)據(jù)同步到B數(shù)據(jù)庫,B數(shù)據(jù)庫也會(huì)通過觸發(fā)器產(chǎn)生一條數(shù)據(jù)變更寫入控制表。若系統(tǒng)將B數(shù)據(jù)庫變化回寫到A數(shù)據(jù)庫,此時(shí)就會(huì)形成一種循環(huán)更新的現(xiàn)象。
本系統(tǒng)解決同步振蕩問題的方案是在同步過程對控制表進(jìn)行干預(yù)。
4? ?異構(gòu)數(shù)據(jù)庫同步系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(The design and implementation of Heterogeneous database synchronization system)
4.1? ?系統(tǒng)總體架構(gòu)
圖1為異構(gòu)數(shù)據(jù)庫同步系統(tǒng)架構(gòu)圖。異構(gòu)數(shù)據(jù)庫數(shù)據(jù)同步過程由建立觸發(fā)器、創(chuàng)建控制表、數(shù)據(jù)源注冊、建立模式映射、建立同步任務(wù)五部分功能組成。其中建立觸發(fā)器與創(chuàng)建控制表功能位于異構(gòu)數(shù)據(jù)庫管理系統(tǒng)端;數(shù)據(jù)源注冊、建立模式映射、建立同步任務(wù)功能位于數(shù)據(jù)同步服務(wù)器端。
異構(gòu)數(shù)據(jù)庫端完成以下工作:
(1)創(chuàng)建控制表。為完整記錄數(shù)據(jù)變化過程,為每一個(gè)數(shù)據(jù)庫中的數(shù)據(jù)基表創(chuàng)建一個(gè)對應(yīng)的控制表[7](CTRLTABLE)。控制表包含數(shù)據(jù)基表的主鍵,同時(shí)還包括其他字段記錄數(shù)據(jù)源的變化過程。控制表必須在同步的兩端均存在??刂票戆侄稳绫?所示。
(2)建立觸發(fā)器。觸發(fā)器的作用是在數(shù)據(jù)基表發(fā)生變化時(shí),捕獲變化的數(shù)據(jù)。在本系統(tǒng)中建立的觸發(fā)事件包括INSERT、UPDATE與DELETE[8,9]。
如圖2所示為數(shù)據(jù)基表的一個(gè)示例,該表名稱為testTable。結(jié)合表1中控制表結(jié)構(gòu),本文設(shè)計(jì)INSERT觸發(fā)器結(jié)構(gòu)如圖3所示,UPDATE觸發(fā)器結(jié)構(gòu)如圖4所示,DELETE觸發(fā)器結(jié)構(gòu)如圖5所示。
數(shù)據(jù)同步服務(wù)器端完成以下工作:
(1)數(shù)據(jù)源注冊。將異構(gòu)數(shù)據(jù)庫作為數(shù)據(jù)源接入系統(tǒng)中,其他功能模塊均依賴本功能,未注冊到系統(tǒng)的數(shù)據(jù)源不會(huì)作為數(shù)據(jù)同步的源數(shù)據(jù)庫或者目標(biāo)數(shù)據(jù)庫。
(2)建立模式映射。為屏蔽各數(shù)據(jù)源的差異,為異構(gòu)數(shù)據(jù)源建立模式映射。如圖6所示,系統(tǒng)提前將Oracle與達(dá)夢的元數(shù)據(jù)進(jìn)行獲取并保存在本地TYCHE中,在數(shù)據(jù)同步時(shí)使用建立的模式映射關(guān)系屏蔽異構(gòu)數(shù)據(jù)庫的差異。
(3)創(chuàng)建同步任務(wù)。用于管理整個(gè)數(shù)據(jù)同步的過程,并且解決同步振蕩問題。
4.2? ?關(guān)鍵模塊的實(shí)現(xiàn)
4.2.1? ?數(shù)據(jù)源注冊
注冊數(shù)據(jù)源分為兩步,第一步通過加載數(shù)據(jù)庫提供的ODBC驅(qū)動(dòng)連接數(shù)據(jù)庫;第二步將注冊信息寫入TYCHE中。數(shù)據(jù)源注冊需要的信息包括數(shù)據(jù)源類型、注冊名稱、IP地址、端口號、DNS信息、默認(rèn)連接數(shù)據(jù)庫名稱、用戶名與密碼。圖7為保存數(shù)據(jù)源注冊信息的表結(jié)構(gòu)圖,表名稱為“數(shù)據(jù)源表”。
通過以上兩步,即可將數(shù)據(jù)庫接入系統(tǒng)中,并且與數(shù)據(jù)源建立連接。
4.2.2? ?建立模式映射
建立模式映射由兩部分組成:建立數(shù)據(jù)字典信息和建立數(shù)據(jù)類型映射關(guān)系。
(1)建立數(shù)據(jù)字典信息。建立數(shù)據(jù)庫信息、數(shù)據(jù)庫內(nèi)表信息、表內(nèi)字段信息三類數(shù)據(jù)字典信息,并保存到本地TYCHE中,數(shù)據(jù)字典存儲(chǔ)結(jié)構(gòu)如圖8所示。
①獲取數(shù)據(jù)源數(shù)據(jù)庫信息,并且寫入TYCHE的“數(shù)據(jù)庫表”(T_DATABASEINFO)。
在數(shù)據(jù)源注冊后,執(zhí)行SQL語句獲取數(shù)據(jù)源數(shù)據(jù)庫信息。以O(shè)racle數(shù)據(jù)庫為例,在QT下獲取數(shù)據(jù)源數(shù)據(jù)庫信息的方式為:QsqlQuery::exec(“SELECT * FROM USER_USERS”)。
通過執(zhí)行SQL語句INSERT INTO T_DATABASEINFO VALUES,將獲取到的數(shù)據(jù)庫信息寫入T_DATABASEINFO表。
②獲取表的信息,并且寫入TYCHE的“數(shù)據(jù)表表”(T_TABLEINFO)。
通過執(zhí)行獲取表信息的SQL語句,獲取數(shù)據(jù)源內(nèi)表的信息。以O(shè)racle數(shù)據(jù)庫為例,在QT下獲取數(shù)據(jù)源內(nèi)表的信息的方式為:QsqlQuery::exec(“SELECT * FROM USER_TABLES”)。
通過執(zhí)行SQL語句INSERT INTO T_TABLEINFO VALUES,將獲取到的表信息寫入T_TABLEINFO表。
③獲取字段信息,并且寫入TYCHE的“數(shù)據(jù)字段表”(T_FIELDINFO)。
通過執(zhí)行獲取字段信息的SQL語句,獲取數(shù)據(jù)源內(nèi)字段信息。以O(shè)racle數(shù)據(jù)庫為例,在QT下獲取數(shù)據(jù)源內(nèi)字段信息的方式為:QsqlQuery::exec(“SELECT COLUMN_NAME,DATA_TYPE,DATA_LENGTH FROM USER_TAB_COLUMNS WHERE TABLE_NAME = '%1'").arg(strtable) ”),其中strtable為表的名稱。
通過執(zhí)行SQL語句INSERT INTO T_FIELDINFO VALUES,將獲取到的字段信息寫入T_FIELDINFO表。
(2)建立數(shù)據(jù)類型映射關(guān)系。針對接入系統(tǒng)中的各異構(gòu)數(shù)據(jù)庫數(shù)據(jù)源,提取支持的所有數(shù)據(jù)類型,保存到本地TYCHE數(shù)據(jù)庫進(jìn)行統(tǒng)一管理,數(shù)據(jù)庫中對數(shù)據(jù)類型管理的存儲(chǔ)結(jié)構(gòu)如圖9所示。
本系統(tǒng)為各數(shù)據(jù)源的各類數(shù)據(jù)類型設(shè)置一個(gè)默認(rèn)數(shù)據(jù)類型,以降低用戶配置的難度,同時(shí)在數(shù)據(jù)遷移時(shí)運(yùn)行用戶手動(dòng)配置實(shí)際的數(shù)據(jù)類型??紤]到數(shù)據(jù)類型映射往往為單向映射,本系統(tǒng)中在存儲(chǔ)數(shù)據(jù)類型映射關(guān)系時(shí)添加映射源字段,以指明當(dāng)前映射關(guān)系中可以作為源的數(shù)據(jù)源類型。
4.2.3? ?創(chuàng)建同步任務(wù)
同步任務(wù)控制整個(gè)數(shù)據(jù)同步的流程。如圖10所示為同步任務(wù)進(jìn)行一次同步的流程圖。
用戶修改A數(shù)據(jù)源的數(shù)據(jù)基表內(nèi)一條數(shù)據(jù),在同步任務(wù)內(nèi)就會(huì)開始一次數(shù)據(jù)同步的過程,最終完成將該條數(shù)據(jù)變更到B數(shù)據(jù)源內(nèi)。
下面以用戶在A數(shù)據(jù)源內(nèi)寫入一條主鍵值為X的數(shù)據(jù)為例,說明同步任務(wù)的整個(gè)流程。其中A數(shù)據(jù)源與B數(shù)據(jù)源內(nèi)數(shù)據(jù)基表名稱為testTable,控制表為CTRLTABLE。
(1)A數(shù)據(jù)源:在A數(shù)據(jù)源上主要完成數(shù)據(jù)基表的更新與形成操作SQL語句,由以下四步完成。
①寫入數(shù)據(jù)基表。將本次要寫入的數(shù)據(jù)首先寫入數(shù)據(jù)基表,只有寫入成功才能觸發(fā)INSERT事件觸發(fā)器,觸發(fā)器觸發(fā)后,將在控制表CTRLTABLE寫入一條數(shù)據(jù),TableName為“testTable”,F(xiàn)iledKey為X,OperateType為“INSERT”。
②讀取控制表內(nèi)數(shù)據(jù)。使用select語句在控制表CTRLTABLE內(nèi)讀取數(shù)據(jù),條件為IsSync=0,IsSync為0表示本條數(shù)據(jù)未被同步。
③讀取數(shù)據(jù)基表內(nèi)數(shù)據(jù)。使用select語句在數(shù)據(jù)基表testTable內(nèi)讀取一條數(shù)據(jù),條件是關(guān)鍵字為X。
④組成一條SQL語句。根據(jù)控制表內(nèi)數(shù)據(jù)與數(shù)據(jù)基表內(nèi)數(shù)據(jù)形成一條操作語句,由于控制表的OperateType為“INSERT”,因此本條SQL語句為一條insert語句。
(2)B數(shù)據(jù)源:在B數(shù)據(jù)源上主要完成基礎(chǔ)表的更新與處理數(shù)據(jù)振蕩問題。
①執(zhí)行該SQL語句。在B數(shù)據(jù)源上執(zhí)行一條SQL語句。
②修改控制表內(nèi)數(shù)據(jù)。本步解決數(shù)據(jù)振蕩問題,在B數(shù)據(jù)源的控制表CTRLTABLE中使用select語句查找關(guān)鍵字為X的一條數(shù)據(jù),并且將該數(shù)據(jù)的IsSync設(shè)置為1,即該條數(shù)據(jù)變更不需要進(jìn)行同步。
經(jīng)過以上過程即完成一次數(shù)據(jù)同步,由于A數(shù)據(jù)源與B數(shù)據(jù)源上均配置觸發(fā)器與控制表,因此數(shù)據(jù)從B數(shù)據(jù)源到A數(shù)據(jù)源是完全相同的過程。
4.3? ?應(yīng)用與驗(yàn)證
該系統(tǒng)已經(jīng)成功應(yīng)用在某艦船系統(tǒng)中,該艦船系統(tǒng)的軟件環(huán)境如表6所示。
系統(tǒng)驗(yàn)證分為兩個(gè)階段。第一個(gè)階段是船體離岸各設(shè)備加電運(yùn)行階段,此時(shí)數(shù)據(jù)故障信息首先保存在達(dá)夢數(shù)據(jù)庫中,通過本文所設(shè)計(jì)的系統(tǒng)同步到Oracle數(shù)據(jù)庫中。第二個(gè)階段是船體靠岸后,用戶分別從Oracle與達(dá)夢數(shù)據(jù)庫中查找數(shù)據(jù),經(jīng)過對比發(fā)現(xiàn)兩個(gè)數(shù)據(jù)庫的數(shù)據(jù)完全一致。
實(shí)際應(yīng)用結(jié)果表明,采用本文所設(shè)計(jì)的系統(tǒng),對Oracle、達(dá)夢數(shù)據(jù)同步效果較好,達(dá)到預(yù)期效果。
5? ?結(jié)論(Conclusion)
當(dāng)前異構(gòu)數(shù)據(jù)庫之間的數(shù)據(jù)同步已經(jīng)成為數(shù)據(jù)庫領(lǐng)域研究的重要方向。本文在現(xiàn)有成熟數(shù)據(jù)庫產(chǎn)品的基礎(chǔ)上,分析解決了數(shù)據(jù)類型差異、數(shù)據(jù)捕獲策略、同步振蕩等數(shù)據(jù)同步中的關(guān)鍵問題,設(shè)計(jì)實(shí)現(xiàn)了一種基于QT框架的異構(gòu)數(shù)據(jù)庫同步系統(tǒng)。通過將該系統(tǒng)在某艦船系統(tǒng)進(jìn)行應(yīng)用與驗(yàn)證,結(jié)果表明本文所設(shè)計(jì)的異構(gòu)數(shù)據(jù)庫同步系統(tǒng)可以很好地解決異構(gòu)數(shù)據(jù)庫數(shù)據(jù)同步問題,具有較好的適用性。
參考文獻(xiàn)(References)
[1] 陸葉杉.系統(tǒng)數(shù)據(jù)遷移常見問題及案例分析[J].計(jì)算機(jī)科學(xué),2019,46(6A):412-416.
[2] 王亞蘭.分布式異構(gòu)數(shù)據(jù)庫集成與透明訪問的研究與實(shí)現(xiàn)[D].四川:西南交通大學(xué),2013.
[3] 劉娟娟,劉帥.數(shù)據(jù)庫同步技術(shù)的研究與實(shí)現(xiàn)[J].軟件工程,2017,20(01):1-4.
[4] 楊剛,陳健美,宋余慶,等.嵌入式設(shè)備與網(wǎng)絡(luò)數(shù)據(jù)庫交互的中間件設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(11):3878-3882.
[5] 田淼.分布式異構(gòu)數(shù)據(jù)庫同步中間件的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2012:15-16.
[6] 曹群英.分布式空間數(shù)據(jù)庫同步更新技術(shù)的研究與應(yīng)用[J].科技創(chuàng)新與生產(chǎn)力,2017(04):66-69.
[7] 張振友,孫燕.分布式異構(gòu)數(shù)據(jù)庫同步技術(shù)研究與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù):學(xué)術(shù)交流,2015,11(28):16-19.
[8] 楊維,朱克,韓維,等.基于95598異地雙活架構(gòu)的數(shù)據(jù)庫同步系統(tǒng)設(shè)計(jì)[J].電子技術(shù)與軟件工程,2019,000(23):161-162.
[9] Wang Y B, Rao X R, Pan H E. Incremental database synchronization update mechanism under heterogeneous environment[J]. Computer Engineering & Design, 2011, 32(3):948-951.
作者簡介:
張記強(qiáng)(1988-),男,碩士,工程師.研究領(lǐng)域:數(shù)據(jù)庫,軟件工程.
王? ?仁(1984-),男,碩士,高級工程師.研究領(lǐng)域:數(shù)據(jù)庫存儲(chǔ),圖形圖像處理.
蔣欣欣(1989-),女,碩士,工程師.研究領(lǐng)域:嵌入式軟件.
李明磊(1991-),男,碩士,工程師.研究領(lǐng)域:圖形圖像處理,信息檢索.