国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于隔離網(wǎng)閘的異構(gòu)數(shù)據(jù)庫(kù)同步技術(shù)研究與實(shí)現(xiàn)

2016-04-29 00:44崔恒香馮徑馬瑋駿張慶龐琨余堃
軟件工程 2016年2期
關(guān)鍵詞:網(wǎng)閘觸發(fā)器

崔恒香 馮徑 馬瑋駿 張慶 龐琨 余堃

摘 要:數(shù)據(jù)同步是分布式環(huán)境中維護(hù)各節(jié)點(diǎn)數(shù)據(jù)庫(kù)數(shù)據(jù)一致性的一項(xiàng)關(guān)鍵技術(shù)。本文針對(duì)存在物理隔離網(wǎng)閘的應(yīng)用環(huán)境,提出一種基于觸發(fā)器的SQL文件級(jí)異構(gòu)數(shù)據(jù)庫(kù)同步方法,該方法適用于企業(yè)異構(gòu)數(shù)據(jù)庫(kù)同步。文中將闡述隔離網(wǎng)閘環(huán)境下異構(gòu)數(shù)據(jù)庫(kù)同步的工作原理,提出同步系統(tǒng)的總體框架,給出變化捕獲、SQL文件生成、文件傳輸、數(shù)據(jù)更新和故障處理這五個(gè)環(huán)節(jié)的實(shí)現(xiàn)細(xì)節(jié)。最后通過在洪水預(yù)報(bào)系統(tǒng)中的實(shí)際應(yīng)用,驗(yàn)證本文方法的高效性及可靠性。

關(guān)鍵詞:數(shù)據(jù)同步;網(wǎng)閘;異構(gòu)數(shù)據(jù)庫(kù);觸發(fā)器;SQL

中圖分類號(hào):TP302.7 文獻(xiàn)標(biāo)識(shí)碼:A

1 引言(Introduction)

網(wǎng)絡(luò)技術(shù)的飛速發(fā)展和分布式計(jì)算的廣泛應(yīng)用,大大方便了企業(yè)的跨地域發(fā)展,許多企業(yè)通過不斷重組和分散經(jīng)營(yíng)來提高效率,形成了分散、異構(gòu)的環(huán)境特點(diǎn)。這些機(jī)構(gòu)在地域上雖然分散,但在管理上相對(duì)集中,往往既要有各機(jī)構(gòu)的局部控制和分散管理,又要求各機(jī)構(gòu)之間的信息能靈活交流和共享,能統(tǒng)一管理和使用[1]。所以對(duì)于異構(gòu)數(shù)據(jù)庫(kù)同步技術(shù)的研究是十分有必要的。

絕大多數(shù)企業(yè)并不是把這些地域上分散的應(yīng)用數(shù)據(jù)庫(kù)通過直接的傳輸通道進(jìn)行連接,考慮到網(wǎng)絡(luò)傳輸?shù)陌踩?,往往在傳輸通道上添加物理隔離網(wǎng)閘,將兩者隔離,建立單向連接,來保證信息傳遞的安全。網(wǎng)閘對(duì)應(yīng)用的支持主要是通過對(duì)應(yīng)用協(xié)議的剝離和重建來完成的,能夠在保證安全的情況下盡可能支持?jǐn)?shù)據(jù)交換,如果不安全則斷開,可以解決數(shù)據(jù)庫(kù)保護(hù)所需要的完整性,可用性,保密性,可鑒別和防抵賴等特性,因此被廣泛應(yīng)用在數(shù)據(jù)庫(kù)保護(hù)上[2]。目前,在物理隔離網(wǎng)閘的特定網(wǎng)絡(luò)環(huán)境下,如何有效地解決異構(gòu)數(shù)據(jù)庫(kù)間的數(shù)據(jù)同步問題已成為企業(yè)數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用的重要環(huán)節(jié)。

本文在物理隔離網(wǎng)閘的環(huán)境下,設(shè)計(jì)出一種效率高、可靠性強(qiáng)的異構(gòu)數(shù)據(jù)庫(kù)同步方法,實(shí)現(xiàn)企業(yè)內(nèi)外網(wǎng)間的數(shù)據(jù)同步。

2 相關(guān)工作(Related work)

2.1 異構(gòu)數(shù)據(jù)庫(kù)同步的基本方法

數(shù)據(jù)同步大致可分為存儲(chǔ)系統(tǒng)層同步、操作系統(tǒng)層同步和數(shù)據(jù)庫(kù)系統(tǒng)層同步[3],本文所涉及的是數(shù)據(jù)庫(kù)系統(tǒng)層同步技術(shù)的研究。變化捕獲作為數(shù)據(jù)庫(kù)系統(tǒng)層面數(shù)據(jù)同步的基礎(chǔ),直接決定了數(shù)據(jù)庫(kù)的更新方式,其方法包括以下幾種:基于觸發(fā)器法、基于快照法、基于日志法、基于API法等。

基于觸發(fā)器法是在源數(shù)據(jù)庫(kù)為同步對(duì)象創(chuàng)建觸發(fā)器,當(dāng)對(duì)同步對(duì)象進(jìn)行增刪改等DML命令時(shí),觸發(fā)器被喚醒將變化傳播到目標(biāo)數(shù)據(jù)庫(kù);基于日志法是通過分析數(shù)據(jù)庫(kù)日志信息來捕獲同步對(duì)象的變化序列;基于快照是指數(shù)據(jù)庫(kù)中存儲(chǔ)對(duì)象在某一時(shí)刻的即時(shí)映像,通過為同步對(duì)象定義一個(gè)快照或采用類似方法將它的當(dāng)前映像作為更新副本;基于API法是指在應(yīng)用程序和數(shù)據(jù)庫(kù)之間引入中間件,由它提供一系列API(例如JDBC驅(qū)動(dòng)程序)這些中間件,在完成應(yīng)用程序?qū)?shù)據(jù)庫(kù)修改的同時(shí),也把同步對(duì)象的變化序列記錄下來從而達(dá)到捕獲的目的[4]。

對(duì)于不同數(shù)據(jù)庫(kù)而言,數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)、數(shù)據(jù)類型、所支持的標(biāo)準(zhǔn)都不盡相同,所以上述幾種方法在實(shí)際應(yīng)用中都有或多或少的缺陷。

2.2 數(shù)據(jù)庫(kù)廠商解決異構(gòu)數(shù)據(jù)庫(kù)同步的方法

目前學(xué)術(shù)界對(duì)于異構(gòu)數(shù)據(jù)庫(kù)同步的研究并不夠多。相比之下,產(chǎn)業(yè)界對(duì)異構(gòu)數(shù)據(jù)庫(kù)同步研究取得了不少技術(shù)成果,其中一些已經(jīng)得到了廣泛應(yīng)用,詳見表1。

四大數(shù)據(jù)庫(kù)廠商提出的方案均重點(diǎn)關(guān)注異構(gòu)數(shù)據(jù)源向自身的數(shù)據(jù)同步,在實(shí)現(xiàn)上也采用與DBMS(DataBase Management System)密切結(jié)合的技術(shù),并且具有成本高、實(shí)現(xiàn)復(fù)雜、缺少靈活性等缺點(diǎn)。設(shè)計(jì)并實(shí)現(xiàn)一種新型的靈活性強(qiáng)、成本小且復(fù)雜性較低的異構(gòu)數(shù)據(jù)庫(kù)同步方法十分有必要。

3 基于觸發(fā)器的SQL文件級(jí)異構(gòu)數(shù)據(jù)庫(kù)同步方法

(SQL file level heterogeneous database

synchronization method based on trigger)

基于觸發(fā)器的SQL文件級(jí)異構(gòu)數(shù)據(jù)庫(kù)同步方法的基本思想就是為源數(shù)據(jù)庫(kù)創(chuàng)建觸發(fā)器,當(dāng)源庫(kù)數(shù)據(jù)發(fā)生變化時(shí),觸發(fā)器在變更表中通過SQL語(yǔ)句的重組記錄目標(biāo)庫(kù)能夠直接執(zhí)行的SQL語(yǔ)句,然后將SQL語(yǔ)句定時(shí)導(dǎo)出到文件,并通過網(wǎng)閘將文件傳輸?shù)侥繕?biāo)端,目標(biāo)庫(kù)定時(shí)執(zhí)行SQL文件將源庫(kù)中的變更數(shù)據(jù)更新到目標(biāo)庫(kù),同時(shí)在生成SQL文件、文件傳輸以及數(shù)據(jù)更新等步驟執(zhí)行完后將結(jié)果狀態(tài)向源數(shù)據(jù)庫(kù)端反饋,針對(duì)同步過程中出現(xiàn)的不同失敗狀態(tài)采取不同措施,以實(shí)現(xiàn)整個(gè)數(shù)據(jù)同步過程的故障定位與恢復(fù)。

3.1 異構(gòu)數(shù)據(jù)庫(kù)同步設(shè)計(jì)方案

整個(gè)系統(tǒng)由變化捕獲、SQL文件生成、文件傳輸、數(shù)據(jù)更新和故障處理五個(gè)功能模塊組成。變化捕獲模塊負(fù)責(zé)以SQL語(yǔ)句記錄變化,SQL文件生成模塊把SQL語(yǔ)句定時(shí)導(dǎo)出到數(shù)據(jù)文件,文件傳輸模塊負(fù)責(zé)將SQL文件傳輸?shù)侥繕?biāo)端,數(shù)據(jù)更新模塊負(fù)責(zé)把傳送過來的數(shù)據(jù)更新到目標(biāo)數(shù)據(jù)庫(kù),故障處理模塊將根據(jù)各個(gè)模塊的狀態(tài)反饋,對(duì)同步流程中出現(xiàn)的故障點(diǎn)實(shí)施針對(duì)性的補(bǔ)救措施。下面將對(duì)系統(tǒng)主要模塊的實(shí)現(xiàn)方法進(jìn)行詳細(xì)闡述,同步系統(tǒng)流程設(shè)計(jì)如圖1所示。

3.2 各模塊具體設(shè)計(jì)

3.2.1 基于觸發(fā)器的變化捕獲

變化捕獲是捕獲源表的變化序列的過程。觸發(fā)器法和日志法是最基本的變化捕獲的方法,目前流行的商用數(shù)據(jù)庫(kù)都提供觸發(fā)器機(jī)制或日志分析工具。而本文需要在捕獲變化的同時(shí)重寫目標(biāo)庫(kù)能執(zhí)行的SQL語(yǔ)句并記錄下來,因此本方法將采用觸發(fā)器法,能夠在觸發(fā)器程序塊中編寫重組SQL語(yǔ)句的程序。

基于Oracle觸發(fā)器重組SQL語(yǔ)句的基本原理:

Oracle觸發(fā)器機(jī)制中使用了兩個(gè)特殊的臨時(shí)駐留內(nèi)存的關(guān)鍵字:New和Old。New用于存儲(chǔ)INSERT和UPDATE操作所影響的行的副本;Old用于存儲(chǔ)DELETE和UPDATE操作所影響的行的副本。當(dāng)執(zhí)行INSERT操作時(shí),新建記錄被同時(shí)添加到觸發(fā)器表和New中;當(dāng)執(zhí)行DELETE操作時(shí),記錄從觸發(fā)器所在表中刪除,并傳輸?shù)絆ld中;當(dāng)執(zhí)行UPDATE操作時(shí),舊記錄被移到Old中,新紀(jì)錄被添加到New和觸發(fā)器表中。因此通過獲得Old和New中行的副本再進(jìn)行重組便能夠得到目標(biāo)庫(kù)可直接執(zhí)行的SQL語(yǔ)句。

3.2.2 SQL文件生成的方法

上文通過觸發(fā)器捕獲變化并將重組后的SQL語(yǔ)句記錄在變更表中,那么只要通過建立操作系統(tǒng)層的定時(shí)任務(wù)程序?qū)?shù)據(jù)庫(kù)建立連接按規(guī)則獲得變更表中的SQL語(yǔ)句輸出到數(shù)據(jù)文件,即完成了SQL文件的生成。

基于Oracle的sql*plus工具生成SQL文件的基本原理:

sql*plus是與Oracle進(jìn)行交互的客戶端工具,通過Spool命令將數(shù)據(jù)導(dǎo)出到SQL文件是它的主要功能之一,可以通過編寫批處理程序(Windows平臺(tái))登錄sql*plus并執(zhí)行帶有輸出控制設(shè)置的Spool命令的ctl文件,再通過操作系統(tǒng)自帶的定時(shí)任務(wù)功能定時(shí)執(zhí)行bat文件就可以實(shí)現(xiàn)SQL文件的定時(shí)導(dǎo)出。

3.2.3 文件傳輸及數(shù)據(jù)更新

文件傳輸模塊主要包括源庫(kù)端、網(wǎng)閘和目標(biāo)庫(kù)端,源庫(kù)端定時(shí)將生成的SQL數(shù)據(jù)文件從導(dǎo)出文件目錄移動(dòng)到網(wǎng)閘的內(nèi)網(wǎng)存儲(chǔ)單元,同時(shí)復(fù)制一份存放到數(shù)據(jù)備份單元,并且在任務(wù)執(zhí)行失敗的情況下向故障處理模塊發(fā)送類型為failure的消息文件(用于故障處理模塊進(jìn)行故障分析);網(wǎng)閘定時(shí)將內(nèi)網(wǎng)存儲(chǔ)單元的SQL文件轉(zhuǎn)移到外網(wǎng)存儲(chǔ)單元;目標(biāo)庫(kù)端定時(shí)將外網(wǎng)存儲(chǔ)單元的SQL文件移到目標(biāo)庫(kù)文件系統(tǒng),并且在任務(wù)執(zhí)行失敗的情況下向故障處理單元發(fā)送類型為failure的消息文件,文件傳輸模塊如圖2所示。

圖2 文件傳輸模塊構(gòu)成圖

Fig.2 File transfer module

目標(biāo)庫(kù)端同樣創(chuàng)建定時(shí)任務(wù),由于目標(biāo)庫(kù)文件系統(tǒng)所存放的就是目標(biāo)庫(kù)可直接執(zhí)行的SQL文件,通過定時(shí)執(zhí)行SQL文件即能完成數(shù)據(jù)的同步更新。并且在任務(wù)執(zhí)行失敗時(shí)向故障處理單元發(fā)送類型為failure的消息文件;同步成功則發(fā)送類型為success的消息文件。

3.2.4 基于預(yù)先配置策略的故障處理

源庫(kù)端根據(jù)總結(jié)的歷史經(jīng)驗(yàn)配置不同failure狀態(tài)故障類型的應(yīng)對(duì)措施,故障處理模塊通過讀取同步系統(tǒng)各模塊實(shí)時(shí)反饋的同步狀態(tài)消息文件,根據(jù)不同的failure狀態(tài)故障類型實(shí)施相應(yīng)的應(yīng)對(duì)的措施,使得故障點(diǎn)恢復(fù)運(yùn)行保證同步系統(tǒng)的正常運(yùn)行,從而提高數(shù)據(jù)同步系統(tǒng)的穩(wěn)定性和可靠性。

4 實(shí)際實(shí)現(xiàn)與應(yīng)用(Practical implementation and

application)

實(shí)際應(yīng)用中考慮到現(xiàn)有的軟硬件環(huán)境,實(shí)現(xiàn)工作主要放在從源端Oracle到目標(biāo)端Sql Server數(shù)據(jù)庫(kù)業(yè)務(wù)數(shù)據(jù)表的數(shù)據(jù)同步。并根據(jù)同步系統(tǒng)各模塊以及主要工作創(chuàng)新點(diǎn)闡述實(shí)現(xiàn)與應(yīng)用。

4.1 變化捕獲的實(shí)現(xiàn)

一般的觸發(fā)器內(nèi)部不能夠?qū)NSERT、DELETE、UPDATE分別觸發(fā)。由于使用觸發(fā)器是為了變化捕獲的高效和靈活,如果為每張表分別建立INSERT、DELETE、UPDATE三個(gè)觸發(fā)器,這無疑會(huì)對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的查詢速度、性能帶來影響。因此必須減少觸發(fā)器的數(shù)量。

4.1.1 優(yōu)化后的觸發(fā)器編寫

解決方法是在源表上只創(chuàng)建一個(gè)包含INSERT、DELETE、UPDATE操作的觸發(fā)器,本文將觸發(fā)器開頭設(shè)計(jì)為:

觸發(fā)器程序內(nèi)部通過獲取關(guān)鍵字Old和New中的行數(shù)據(jù)副本來判斷具體是INSERT、DELETE還是UPDATE操作。

4.1.2 基于觸發(fā)器重組SQL語(yǔ)句解決數(shù)據(jù)庫(kù)異構(gòu)的問題

因?yàn)閁PDATE操作原理上就等于一個(gè)DELETE操作加上INSERT操作順序執(zhí)行的,因此通過UPDATE操作來說明會(huì)更全面,本文SQL語(yǔ)句重組流程如下:

Step1:Old.colname字符獲取觸發(fā)器表UPDATE之前(將被update影響)行的列值;New.colname字符獲取觸發(fā)器表UPDATE之后行的列值。

Step2:通過CONCAT函數(shù)拼接Delete語(yǔ)句。

Step3:接Insert語(yǔ)句,由于Insert操作涉及表每列值的插入,因此我們必須考慮源庫(kù)表中每列與目標(biāo)異構(gòu)庫(kù)表的數(shù)據(jù)類型差異以及存在的表結(jié)構(gòu)差異(表結(jié)構(gòu)差異與具體企業(yè)業(yè)務(wù)相關(guān)聯(lián))。

本文列舉了數(shù)字、字符串、時(shí)間等常用數(shù)據(jù)類型,在Oracle中存儲(chǔ)類型分別為number、varchar2、date;對(duì)應(yīng)SQL Server中為int、varchar、datetime;并且兩表的表結(jié)構(gòu)存在差異:目標(biāo)端用單個(gè)id列存儲(chǔ)源端id、num兩列的連接值。詳見表2和表3。

Part1:解決數(shù)據(jù)類型的差異,Oracle到SQL Server需把date類型時(shí)間轉(zhuǎn)換成datetime類型:通過將date類型數(shù)據(jù)轉(zhuǎn)換為字符串,再將字符串拼接到Cast函數(shù)中,其中Cast函數(shù)是SQL Server的類型轉(zhuǎn)換函數(shù)。

Part2:解決數(shù)據(jù)庫(kù)表結(jié)構(gòu)的差異,本文主要解決表字段合并操作,因此需要將源端的id和num字段按照順序拼接在一起進(jìn)行存儲(chǔ)來完成字段值的連接。

Step4:將拼接好的Delete、Insert語(yǔ)句記錄到變更表中,詳見表4。

變更表temptable中sql字段存儲(chǔ)的便是重組后的SQL語(yǔ)句,并且記錄了操作類型和變更時(shí)間便于根據(jù)不同的策略取得相應(yīng)的數(shù)據(jù)。

4.2 SQL文件生成的實(shí)現(xiàn)

SQL文件生成主要步驟:配置操作系統(tǒng)定時(shí)任務(wù),任務(wù)執(zhí)行對(duì)象為bat文件;編寫包含登錄sql*plus且執(zhí)行Spool命令的bat文件:Path1\sqlplus username/password Path2\filename.ctl,其中,Path1為sql*plus的路徑;Path2為ctl文件的路徑;ctl文件分為輸出控制設(shè)置和Spool導(dǎo)出語(yǔ)句兩部分:

Part1:輸出控制設(shè)置部分:例如設(shè)置每行的長(zhǎng)度、腳本中命令執(zhí)行結(jié)果是否顯示、標(biāo)準(zhǔn)輸出每行的拖尾空格是否去除等等設(shè)置。

Part2:Spool導(dǎo)出語(yǔ)句部分如下

Spool filepath/filename.sql

//導(dǎo)出SQL文件名稱及位置

Select colname From tablename Where_statement

//導(dǎo)出的內(nèi)容為查詢結(jié)果

根據(jù)條件查詢結(jié)果按設(shè)置導(dǎo)出到文件。4.1中將重組后的SQL語(yǔ)句記錄在表temptable的sql字段,因此此處直接對(duì)sql字段內(nèi)容查詢便實(shí)現(xiàn)了源表數(shù)據(jù)變更對(duì)應(yīng)SQL的導(dǎo)出。

Spool命令的優(yōu)化:一方面,在導(dǎo)出SQL語(yǔ)句的同時(shí)添加刪除已導(dǎo)出數(shù)據(jù)的delete語(yǔ)句,實(shí)時(shí)刪除臨時(shí)變更表冗余的數(shù)據(jù),減少對(duì)系統(tǒng)資源的過多占用,達(dá)到優(yōu)化性能的效果;另一方面,Spool導(dǎo)出命令中通過獲取臨時(shí)變更表最新記錄時(shí)間MaxInsertTime,在取數(shù)據(jù)的select語(yǔ)句和刪除數(shù)據(jù)的delete語(yǔ)句where條件中均添加變更時(shí)間小于等于MaxInsertTime的條件,在導(dǎo)出MaxInsertTime時(shí)間點(diǎn)之前的數(shù)據(jù)同時(shí)刪除的也保持一致,這樣做的好處相比直接select、delete表的所有數(shù)據(jù),避免了在取完數(shù)據(jù)后刪除數(shù)據(jù)之前剛好有數(shù)據(jù)插入表中所帶來的數(shù)據(jù)誤刪。

4.3 SQL文件的傳輸與執(zhí)行以及相關(guān)的故障處理

SQL文件的傳輸模塊主要靠物理隔離網(wǎng)閘進(jìn)行源端到目標(biāo)端的搬運(yùn),以及移動(dòng)文件和生成反饋狀態(tài)文件的程序。目標(biāo)端SQL文件執(zhí)行模塊同樣是配置定時(shí)任務(wù)來完成,本文目標(biāo)端為SQL Server庫(kù),那么通過定時(shí)任務(wù)打開cmd.exe執(zhí)行語(yǔ)句:osql-S127.0.0.1-Usa-Psa-ipath\filename.sql便可完成數(shù)據(jù)的更新,其中osql為SQL Server的命令行工具,-i表示要執(zhí)行SQL文件路徑。

當(dāng)同步過程中某模塊出現(xiàn)故障時(shí)會(huì)向故障處理模塊發(fā)送消息文件,故障處理模塊通過讀取文件中故障類型,根據(jù)故障類型從策略表獲取應(yīng)對(duì)策略,并向發(fā)生故障的模塊發(fā)送應(yīng)對(duì)策略指令使其實(shí)施相應(yīng)的措施恢復(fù)運(yùn)行,從而提高數(shù)據(jù)同步系統(tǒng)的穩(wěn)定性和可靠性。策略表預(yù)先配置,詳見表5。

4.4 實(shí)際應(yīng)用

本文的“基于觸發(fā)器的SQL文件級(jí)同步法”已經(jīng)成功地應(yīng)用于某地區(qū)洪水預(yù)報(bào)系統(tǒng)中。該系統(tǒng)包括內(nèi)、外兩個(gè)網(wǎng)絡(luò),內(nèi)網(wǎng)是一個(gè)水流量信息采集系統(tǒng);外網(wǎng)是一個(gè)B/S架構(gòu)洪水預(yù)報(bào)信息系統(tǒng),提供洪水預(yù)報(bào)的計(jì)算處理與查詢。由于內(nèi)、外網(wǎng)兩個(gè)應(yīng)用系統(tǒng)的數(shù)據(jù)分別放置于不同的數(shù)據(jù)庫(kù)上,因此為了保持內(nèi)、外網(wǎng)兩個(gè)數(shù)據(jù)庫(kù)的一致性,須將內(nèi)網(wǎng)的數(shù)據(jù)及時(shí)地同步到外網(wǎng),并且需要考慮數(shù)據(jù)傳輸?shù)陌踩?,這就是一個(gè)典型的基于網(wǎng)閘的異構(gòu)數(shù)據(jù)庫(kù)間數(shù)據(jù)同步的問題。

運(yùn)行結(jié)果表明,隨著記錄數(shù)的增長(zhǎng),“基于觸發(fā)器的SQL文件級(jí)同步法”的時(shí)間復(fù)雜度呈線性增長(zhǎng),空間復(fù)雜度主要為內(nèi)存消耗,基本上保持常量,因而總體性能比較理想,并且相對(duì)于原先系統(tǒng)采用的“基于API的傳統(tǒng)輪詢同步法”,效率提高明顯,可靠性、穩(wěn)定性都得到了保障。

5 結(jié)論(Conclusion)

本文針對(duì)物理網(wǎng)絡(luò)隔離的應(yīng)用環(huán)境,提出了一種“基于觸發(fā)器的SQL文件級(jí)同步法”適合于企業(yè)數(shù)據(jù)同步。該方法運(yùn)用觸發(fā)器對(duì)源數(shù)據(jù)庫(kù)變化進(jìn)行捕獲,并轉(zhuǎn)換成目標(biāo)庫(kù)可直接執(zhí)行的SQL語(yǔ)句記錄下來且定時(shí)導(dǎo)出到數(shù)據(jù)文件,通過執(zhí)行數(shù)據(jù)文件更新目標(biāo)數(shù)據(jù)庫(kù),從而達(dá)到數(shù)據(jù)同步。該方法具有適應(yīng)異構(gòu)系統(tǒng)、效率高、可靠性強(qiáng)、穩(wěn)定性佳的特點(diǎn)。

參考文獻(xiàn)(References)

[1] 鄭海明.基于SQL還原法的異構(gòu)數(shù)據(jù)庫(kù)同步技術(shù)的研究與實(shí)

現(xiàn)[J].計(jì)算機(jī)時(shí)代,2008(10):15-18.

[2] 張暉,歐陽(yáng)慎.基于oracle的跨網(wǎng)閘數(shù)據(jù)同步方案研究[R].鄭州

鐵路局“十百千”人才培育助推工程論文集,會(huì)議時(shí)間:2011.

[3] 王新偉.基于Oracle數(shù)據(jù)庫(kù)的邏輯數(shù)據(jù)同步技術(shù)在實(shí)踐中的

應(yīng)用研究[J].電子技術(shù)與軟件工程,2015(08):195-198.

[4] 張大朋,陳馳,徐震.異構(gòu)數(shù)據(jù)庫(kù)復(fù)制技術(shù)的研究與實(shí)現(xiàn)[J].中

國(guó)科學(xué)院研究生院學(xué)報(bào),2012(01):101-108.

作者簡(jiǎn)介:

崔恒香(1987-),男,碩士,學(xué)生.研究領(lǐng)域:信息與系統(tǒng)

集成.

馮 徑(1962-),女,博士,教授.研究領(lǐng)域:系統(tǒng)集成與

應(yīng)用.

馬瑋駿(1980-),男,博士,講師.研究領(lǐng)域:系統(tǒng)集成與

應(yīng)用.

張 慶(1978-),男,本科,工程師.研究領(lǐng)域:信息工程.

龐 琨(1980-),男,碩士,工程師.研究領(lǐng)域:信息與系統(tǒng)

集成.

余 堃(1983-),男,碩士,工程師.研究領(lǐng)域:信息與系統(tǒng)

集成.

猜你喜歡
網(wǎng)閘觸發(fā)器
淺談網(wǎng)閘在內(nèi)外網(wǎng)隔離中的應(yīng)用
主從JK觸發(fā)器邏輯功能分析
使用觸發(fā)器,強(qiáng)化安全性
基于網(wǎng)閘的高速公路收費(fèi)監(jiān)控多網(wǎng)絡(luò)互通解決方案
打破信息孤島 構(gòu)建信息共享橋梁
對(duì)觸發(fā)器邏輯功能轉(zhuǎn)換的分析
觸發(fā)器邏輯功能轉(zhuǎn)換的兩種方法