欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于fpga的實時數(shù)據(jù)庫備份系統(tǒng)及備份方法

文檔序號:6375740閱讀:240來源:國知局
專利名稱:基于fpga的實時數(shù)據(jù)庫備份系統(tǒng)及備份方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種FPGA和數(shù)據(jù)庫備份容災(zāi)技術(shù),尤其涉及一種基于FPGA的實時數(shù)據(jù)庫備份系統(tǒng)及備份方法。
背景技術(shù)
數(shù)據(jù)庫備份技術(shù)主要有離線備份和在線備份。離線數(shù)據(jù)備份又稱為冷備份,是在關(guān)閉數(shù)據(jù)庫的運行狀態(tài)下進行的文件備份操作。離線數(shù)據(jù)庫通常是基于文件拷貝的備份,實現(xiàn)時要關(guān)閉數(shù)據(jù)庫等待備份完成,備份時對數(shù)據(jù)庫具有獨占性,從而影響應(yīng)用服務(wù)的連續(xù)運行,導(dǎo)致數(shù)據(jù)在備份期間不能進行數(shù)據(jù)更新。離線備份通常是全量數(shù)據(jù)備份或者增量備份。在線數(shù)據(jù)庫備份亦稱熱備份,是數(shù)據(jù)庫在不停止數(shù)據(jù)訪問情況下的數(shù)據(jù)備份。支持邏輯在線備份的數(shù)據(jù)庫管理系統(tǒng)有通過日志文件進行備份,邏輯上用軟件讀取數(shù)據(jù)庫內(nèi)容備份,快照技術(shù)等。例如被包含在Oracle數(shù)據(jù)庫的RMAN工具和Sybase數(shù)據(jù)庫的“dump database”命令。邏輯在線備份拷貝數(shù)據(jù)庫的邏輯單元,而不是存儲設(shè)備列表或是存儲邏輯單元的文件。邏輯數(shù)據(jù)庫備份的主要缺點就是他無法利用存儲設(shè)備的快照技術(shù)來減少對應(yīng)用的影響。因為在一個邏輯數(shù)據(jù)庫備份的過程中,系統(tǒng)性能會大大的降低,因此對總處在活躍狀態(tài)的數(shù)據(jù)庫并不合適。一些文件系統(tǒng)和卷管理器支持?jǐn)?shù)據(jù)快照,這是一種在線備份的方法??煺帐顷P(guān)于制定數(shù)據(jù)集合的一個完全可用的拷貝,包括相應(yīng)數(shù)據(jù)在某個時間點的映像??煺帐菍?shù)據(jù)塊進行的操作,不能保證備份數(shù)據(jù)應(yīng)用級的一致性,對應(yīng)用級數(shù)據(jù)庫備份不適合。數(shù)據(jù)庫系統(tǒng)容災(zāi)是指減少自然、人為等對數(shù)據(jù)庫系統(tǒng)造成的沖擊帶來的數(shù)據(jù)庫系統(tǒng)無法工作。容災(zāi)數(shù)據(jù)庫系統(tǒng)一般由兩部分構(gòu)成,一是數(shù)據(jù)復(fù)制,二是數(shù)據(jù)庫系統(tǒng)切換。數(shù)據(jù)復(fù)制多使用磁盤陣列等,分為軟硬件實現(xiàn)方式。數(shù)據(jù)庫系統(tǒng)切換是多臺數(shù)據(jù)庫是一致的,在主數(shù)據(jù)庫出現(xiàn)故障后轉(zhuǎn)到備份數(shù)據(jù)庫,從而避免應(yīng)用程序不能運行。數(shù)據(jù)災(zāi)備方案也很多,如 AIX 平臺的 High Avaiability Geographical Cluster 方案或 Veritas 系統(tǒng)的切換策略?,F(xiàn)在的容備方案主要針對數(shù)據(jù)級,通過同步鏡像到遠端實現(xiàn),很少有應(yīng)用級的容備。對于中國專利200610161789. 4提出了一種數(shù)據(jù)庫系統(tǒng)的容災(zāi)方法,數(shù)據(jù)庫局域網(wǎng)絡(luò)中各數(shù)據(jù)庫通過偵聽網(wǎng)絡(luò)中的數(shù)據(jù)包對各自實例進行相同數(shù)據(jù)庫操作,同時能夠通過數(shù)據(jù)庫服務(wù)器上的代理進程實現(xiàn)數(shù)據(jù)庫主備之間的切換,但是這種總線方式要求各數(shù)據(jù)庫必須是同構(gòu)的,不能實現(xiàn)異構(gòu)的數(shù)據(jù)庫備份,各數(shù)據(jù)庫服務(wù)器還需要通過建立消息網(wǎng)絡(luò)進行消息傳遞實現(xiàn)主備切換,方式處理復(fù)雜。

發(fā)明內(nèi)容
本發(fā)明的目的就是為了解決上述問題,提供一種基于FPGA的實時數(shù)據(jù)庫備份方法,它改變了網(wǎng)絡(luò)的廣播機制,通過FPGA的多網(wǎng)絡(luò)接口并且有獨立控制處理能力的特點,可以對數(shù)據(jù)流做高速拷貝并按要求做轉(zhuǎn)換,能實現(xiàn)異構(gòu)方式的數(shù)據(jù)庫實例的操作,提升數(shù)據(jù)庫備份的靈活能力,另外,F(xiàn)PGA對各接口做獨立處理,可以處理各數(shù)據(jù)庫服務(wù)器返回的消息,并能根據(jù)各數(shù)據(jù)庫返回消息做出響應(yīng)。為了實現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案一種基于FPGA的實時數(shù)據(jù)庫備份系統(tǒng),包括應(yīng)用服務(wù)器,應(yīng)用服務(wù)器與FPGA連接,F(xiàn)PGA上有SRAM (靜態(tài)隨機存取存儲器)組、數(shù)據(jù)流復(fù)制模塊、數(shù)據(jù)流轉(zhuǎn)換模塊、返回結(jié)果一致性檢查模塊和錯誤包反饋模塊以及若干相互獨立的RJ45接口,各RJ45接口則分別與主數(shù)據(jù)庫服務(wù)器、從數(shù)據(jù)庫和外部網(wǎng)絡(luò)連接;其中,應(yīng)用服務(wù)器起到外界服務(wù)對主、從數(shù)據(jù)庫發(fā)起請求的中間連接作用,一方面與外界的應(yīng)用服務(wù)連接,接受外界的服務(wù)請求,一方面通過FPGA與主、從數(shù)據(jù)庫連接,對主、從數(shù)據(jù)庫數(shù)據(jù)做讀寫操作并對發(fā)起的所有請求做好日志;同時,應(yīng)用服務(wù)器還起到對返回錯誤數(shù)據(jù)包、數(shù)據(jù)庫無響應(yīng)數(shù)據(jù)包的處理,對主、從數(shù)據(jù)不一致做出判斷,做出提示并進 行處理。SRAM組即靜態(tài)隨機存取存儲器,提供對數(shù)據(jù)的高速存取。SRAM對流出和流入的數(shù)據(jù)包、復(fù)制獲得的數(shù)據(jù)包、格式化轉(zhuǎn)換后重組數(shù)據(jù)包做存取。數(shù)據(jù)流復(fù)制模塊是對流出數(shù)據(jù)包進行復(fù)制,即應(yīng)用服務(wù)器對主數(shù)據(jù)庫發(fā)起請求而并不對從數(shù)據(jù)庫做出請求,對從數(shù)據(jù)庫的請求則是通過數(shù)據(jù)流復(fù)制模塊對主數(shù)據(jù)庫請求數(shù)據(jù)包做復(fù)制和轉(zhuǎn)換后發(fā)起的,因此,數(shù)據(jù)流復(fù)制模塊相當(dāng)于起到數(shù)據(jù)鏡像功能,為下一步數(shù)據(jù)流轉(zhuǎn)換做好準(zhǔn)備,以便生成對從數(shù)據(jù)庫發(fā)起請求數(shù)據(jù)流。數(shù)據(jù)流轉(zhuǎn)換模塊是對復(fù)制獲得的數(shù)據(jù)包進行修改,主要有兩方面的修改。一方面是對數(shù)據(jù)包頭部做出修改,主要是源地址和目的地址的修改,此種修改只需要通過FPGA變成對數(shù)據(jù)包頭部進行替換即可;一方面是數(shù)據(jù)包數(shù)據(jù)內(nèi)容的修改,根據(jù)已獲得的從數(shù)據(jù)庫的信息,應(yīng)用服務(wù)器對從數(shù)據(jù)庫的數(shù)據(jù)操作語言轉(zhuǎn)化模式做好編制,按照從數(shù)據(jù)庫的命令格式規(guī)則,通過FPGA可現(xiàn)場編程數(shù)據(jù)流轉(zhuǎn)換模塊利用規(guī)則匹配和深度包檢測技術(shù)提取數(shù)據(jù)內(nèi)容中包含SQL語句,數(shù)據(jù)流轉(zhuǎn)換模塊將提取SQL語句傳遞到上層應(yīng)用服務(wù)器,上層應(yīng)用服務(wù)器按照對從數(shù)據(jù)庫編制好的數(shù)據(jù)語言轉(zhuǎn)化模式對SQL語句格式進行轉(zhuǎn)換后返回到數(shù)據(jù)流轉(zhuǎn)換模塊;最后將修改后的數(shù)據(jù)包頭和數(shù)據(jù)包數(shù)據(jù)內(nèi)容兩部分修改內(nèi)容重組成新的數(shù)據(jù)包轉(zhuǎn)發(fā)到對應(yīng)連接的RJ45接口,以此與從數(shù)據(jù)庫的操作規(guī)則相對應(yīng)。返回結(jié)果一致性檢查模塊是判斷主、從數(shù)據(jù)庫數(shù)據(jù)是否一致的主要模塊。本模塊通過對獲得主、從數(shù)據(jù)庫返回的結(jié)果做出檢查比對,判斷返回結(jié)果是否成功,主、從數(shù)據(jù)庫返回結(jié)果是否一致。此模塊的比對不是完全的規(guī)則匹配,而是邏輯上的返回結(jié)果一致,即不同數(shù)據(jù)庫進行相同操作的返回結(jié)果有差異,此模塊便通過FPGA編程對不同數(shù)據(jù)庫返回的邏輯相同的結(jié)果進行比對,從而實現(xiàn)一致性檢查。錯誤包反饋模塊發(fā)現(xiàn)的主、從數(shù)據(jù)庫返回結(jié)果的不一致情況進行描述反饋到上層應(yīng)用服務(wù)器。出現(xiàn)不一致現(xiàn)象時,可能反饋的錯誤包有主、從數(shù)據(jù)庫都返回結(jié)果,但是相互之間結(jié)果不一致,對存在的不同做描述;主、從數(shù)據(jù)庫存在其一無返回結(jié)果的情況,對無響應(yīng)現(xiàn)象做描述;主、從數(shù)據(jù)庫都未做出響應(yīng),對無響應(yīng)現(xiàn)象做描述。RJ45接口分別與主數(shù)據(jù)庫、從數(shù)據(jù)庫、外部網(wǎng)絡(luò)連接。一種采用基于FPGA的實時數(shù)據(jù)庫備份系統(tǒng)的備份方法,具體工作步驟如下
步驟一事務(wù)發(fā)起;FPGA中數(shù)據(jù)流復(fù)制模塊獲取與之相連的數(shù)據(jù)庫的信息,將信息反饋到上層應(yīng)用服務(wù)器;步驟二 FPGA中數(shù)據(jù)流復(fù)制模塊截取流出數(shù)據(jù)流,利用深度包檢測技術(shù)提取數(shù)據(jù)部內(nèi)容,判斷對數(shù)據(jù)是否為添加、修改或刪除寫操作或讀操作執(zhí)行流程,如果是讀操作執(zhí)行流程,就進入步驟三;如果是添加、修改或刪除寫操作,就進入步驟四;步驟三FPGA中數(shù)據(jù)流復(fù)制模塊對數(shù)據(jù)流進行復(fù)制;FPGA中數(shù)據(jù)流轉(zhuǎn)換模塊根據(jù)應(yīng)用服務(wù)器已獲取從數(shù)據(jù)庫信息,同應(yīng)用服務(wù)器一同對SQL格式進行轉(zhuǎn)換;通過不同RJ45接口連到主、從數(shù)據(jù)庫;主、從數(shù)據(jù)庫進行操作,返回操作結(jié)果;FPGA中返回結(jié)果一致性檢查模塊監(jiān)聽接收主、從數(shù)據(jù)庫返回的結(jié)果;判斷是否監(jiān)聽到主數(shù)據(jù)庫響應(yīng);如果是就將返回數(shù)據(jù)發(fā)送到上層應(yīng)用服務(wù)器;如果否,錯誤包反饋模塊就生成主數(shù)據(jù)庫無響應(yīng)數(shù)據(jù)包,并將其與從數(shù)據(jù)庫返回結(jié)果發(fā)送到上層應(yīng)用服務(wù)器;本次事務(wù)結(jié)束;步驟四FPGA中數(shù)據(jù)流復(fù)制模塊對數(shù)據(jù)流進行復(fù)制;FPGA中數(shù)據(jù)流轉(zhuǎn)換模塊根據(jù)應(yīng)用服務(wù)器已獲取從數(shù)據(jù)庫信息,同上層應(yīng)用服務(wù)器一同對SQL格式進行轉(zhuǎn)換;通過不同 RJ45接口連到主、從數(shù)據(jù)庫;主、從數(shù)據(jù)庫分別進行操作,返回操作結(jié)果;FPGA中返回結(jié)果一致性檢查模塊監(jiān)聽接收主、從數(shù)據(jù)返回的結(jié)果;判斷是否監(jiān)聽到主數(shù)據(jù)庫響應(yīng),如果監(jiān)聽至IJ,轉(zhuǎn)入步驟四a ;如果否,轉(zhuǎn)入步驟四b ;步驟四a:如果監(jiān)聽到主數(shù)據(jù)庫響應(yīng),就對主、從數(shù)據(jù)庫進行結(jié)果一致性檢查,并判斷結(jié)果是否一致,如果一致就將成功數(shù)據(jù)包發(fā)送到上層應(yīng)用服務(wù)器,本次事務(wù)結(jié)束;如果判斷結(jié)果不一致就進入步驟四b ;步驟四b:FPGA中錯誤包反饋模塊生成錯誤數(shù)據(jù)包,將錯誤數(shù)據(jù)包返回到上層應(yīng)用服務(wù)器,上層應(yīng)用服務(wù)器做出容錯響應(yīng),上層應(yīng)用服務(wù)器與FPGA各模塊協(xié)同完成回滾等容錯處理;容錯處理成功,本次事務(wù)結(jié)束。在本發(fā)明中,采用FPGA器件設(shè)計數(shù)字系統(tǒng)電路。(I)設(shè)計靈活使用FPGA器件,可以不被標(biāo)準(zhǔn)系列器件在邏輯功能上所限制,而且修改邏輯可在系統(tǒng)設(shè)計和使用過程的任一階段中進行,并且只須通過對所用的FPGA器件進行重新編程即可完成,給系統(tǒng)設(shè)計提供了很大的靈活性。(2)功能密集度大功能密集度是指在給定的空間能集成的邏輯功能數(shù)量。可編程邏輯芯片內(nèi)的組件門數(shù)高,一片F(xiàn)PGA可代替幾片、幾十片乃至上百片中小規(guī)模的數(shù)字集成電路芯片。用FPGA器件實現(xiàn)數(shù)字系統(tǒng)時用的芯片數(shù)量少,從而減少芯片的使用數(shù)目,減少印刷線路板面積和印刷線路板數(shù)目,最終導(dǎo)致系統(tǒng)規(guī)模的全面縮減。(3)可靠性高減少芯片和印刷板數(shù)目,不僅能縮小系統(tǒng)規(guī)模,而且它還極大的提高了系統(tǒng)的可靠性。具較高集成度的系統(tǒng)比用許多低集成度的標(biāo)準(zhǔn)組件設(shè)計的相同系統(tǒng)具有高得多的可靠性。使用FPGA器件減少了實現(xiàn)系統(tǒng)所需要的芯片數(shù)目,在印刷線路板上的引線以及焊點數(shù)量也隨之減少,所以系統(tǒng)的可靠性得以提高。(4)設(shè)計周期短由于FPGA器件的可編程性和靈活性,用它來設(shè)計一個系統(tǒng)所需時間比傳統(tǒng)方法大為縮短。FPGA器件集成度高,使用時印刷線路板電路布局布線簡單。同時,在樣機設(shè)計成功后,由于開發(fā)工具先進,自動化程度高,對其進行邏輯修改也十分簡便迅速。因此,使用FPGA器件可大大縮短系統(tǒng)的設(shè)計周期,加快產(chǎn)品投放市場的速度,提高產(chǎn)品的競爭能力.(5)工作速度快FPGA / CPLD器件的工作速度快,一般可以達到幾百兆赫茲,遠遠大于軟件。同時,使用FPGA器件后實現(xiàn)系統(tǒng)所需要的電路級數(shù)又少,因而整個系統(tǒng)的工作速度會得到提高。(6) FPGA帶有四個IG的RJ45接口和高速PCI總線,脫離主機進行工作而很少占用主機的資源,這樣就可以使主機的工作效率得到很大的提高。本發(fā)明的有益效果是數(shù)據(jù)庫操作數(shù)據(jù)流通過FPGA板高速復(fù)制功能定位到兩個或多個IG的RJ45接口發(fā)送給不同的數(shù)據(jù)服務(wù)器,對兩臺或多 臺數(shù)據(jù)服務(wù)器中數(shù)據(jù)庫進行同時一致操作,實現(xiàn)數(shù)據(jù)庫實時備份。


圖I為部署結(jié)構(gòu)圖;圖2為系統(tǒng)結(jié)構(gòu)示意圖; 圖3為讀操作執(zhí)行流程圖;圖4為讀操作執(zhí)行流程;圖5為添加、修改或刪除等寫操作流程;其中,I、應(yīng)用服務(wù)器,2、FPGA,3、數(shù)據(jù)庫,31、主數(shù)據(jù)庫,32、從數(shù)據(jù)庫,33、從數(shù)據(jù)庫,4、外部網(wǎng)絡(luò),5、RJ45接口,6、數(shù)據(jù)流復(fù)制模塊,7、數(shù)據(jù)流轉(zhuǎn)換模塊,8、返回結(jié)果一致性檢查模塊,9、錯誤包反饋模塊,10、SRAM組。
具體實施例方式下面結(jié)合附圖與實施例對本發(fā)明作進一步說明。如圖I所示,應(yīng)用服務(wù)器I通過FPGA2與相應(yīng)數(shù)據(jù)庫服務(wù)器3進行連接。本發(fā)明的關(guān)鍵在FPGA2的數(shù)據(jù)包處理、SQL語句格式轉(zhuǎn)換、消息檢查,特點是能夠?qū)崿F(xiàn)異構(gòu)數(shù)據(jù)庫備份。如圖2所示,本發(fā)明備份方法環(huán)境包括應(yīng)用服務(wù)器I、FPGA2、通信鏈路、主從數(shù)據(jù)庫31和32,主從數(shù)據(jù)庫31、32可以通過通信鏈路部署到不同地點。所述FPGA2上有SRAM組10、數(shù)據(jù)流復(fù)制模塊6、數(shù)據(jù)流轉(zhuǎn)換模塊7、返回結(jié)果一致性檢查模塊8和錯誤包反饋模塊9以及與所述各模塊對應(yīng)的若干獨立的RJ45接口 5 ;其中,應(yīng)用服務(wù)器I起到外界服務(wù)對主、從數(shù)據(jù)庫31、32發(fā)起請求的中間連接作用,一方面與外界的應(yīng)用服務(wù)連接,接受外界的服務(wù)請求,一方面通過FPGA2與主、從數(shù)據(jù)庫31、32連接,對主、從數(shù)據(jù)庫31、32數(shù)據(jù)做讀寫操作并對發(fā)起的所有請求做好日志;同時,應(yīng)用服務(wù)器I還起到對返回錯誤數(shù)據(jù)包、主、從數(shù)據(jù)庫31、32無響應(yīng)數(shù)據(jù)包的處理,對主、從數(shù)據(jù)不一致做出判斷,做出提示并進行處理。SRAM組10即靜態(tài)隨機存取存儲器,提供對數(shù)據(jù)的高速存取。SRAM組10對流出和流入的數(shù)據(jù)包、復(fù)制獲得的數(shù)據(jù)包、格式化轉(zhuǎn)換后重組數(shù)據(jù)包做存取。數(shù)據(jù)流復(fù)制模塊6是對流出數(shù)據(jù)包進行復(fù)制,即應(yīng)用服務(wù)器I對主數(shù)據(jù)庫31發(fā)起請求而并不對從數(shù)據(jù)庫32做出請求,對從數(shù)據(jù)庫32的請求則是通過數(shù)據(jù)流復(fù)制模塊6對主數(shù)據(jù)庫31請求數(shù)據(jù)包做復(fù)制和轉(zhuǎn)換后發(fā)起的,因此,數(shù)據(jù)流復(fù)制模塊6相當(dāng)于起到數(shù)據(jù)鏡像功能,為下一步數(shù)據(jù)流轉(zhuǎn)換做好準(zhǔn)備,以便生成對從數(shù)據(jù)庫32發(fā)起請求數(shù)據(jù)流。數(shù)據(jù)流轉(zhuǎn)換模塊7是對復(fù)制獲得的數(shù)據(jù)包進行修改,主要有兩方面的修改。一方面是對數(shù)據(jù)包頭部做出修改,主要是源、目的地址的修改,此種修改只需要通過FPGA2中數(shù)據(jù)流轉(zhuǎn)換模塊7編程對數(shù)據(jù)包頭部進行替換即可;一方面是數(shù)據(jù)包數(shù)據(jù)內(nèi)容的修改,根據(jù)已獲得的從數(shù)據(jù)庫32的信息,按照從數(shù)據(jù)庫32的命令格式規(guī)則,通過FPGA2中數(shù)據(jù)流轉(zhuǎn)換模塊7和上層應(yīng)用服務(wù)器I已編制好的從數(shù)據(jù)庫32語言轉(zhuǎn)化模式對操作從數(shù)據(jù)庫32的語句格式做出修改,最后將修改后的數(shù)據(jù)包頭部和數(shù)據(jù)包數(shù)據(jù)內(nèi)容重組成新的數(shù)據(jù)包轉(zhuǎn)發(fā)到對應(yīng)連接的RJ45接口 5,以此與從數(shù)據(jù)庫32的操作規(guī)則相對應(yīng)。返回結(jié)果一致性檢查模塊是判斷主、從數(shù)據(jù)庫31、32數(shù)據(jù)是否一致的主要模塊。本模塊通過對獲得主、從數(shù)據(jù)庫31、32返回的結(jié)果做出檢查比對,判斷返回結(jié)果是否成功,主、從數(shù)據(jù)庫31、32返回結(jié)果是否一致。此模塊的比對不是完全的規(guī)則匹配,而是邏輯上 的返回結(jié)果一致,即主、從數(shù)據(jù)庫31、32進行相同操作的返回結(jié)果有差異,此模塊便通過FPGA2中返回結(jié)果一致性檢查模塊8所做編程對主、從數(shù)據(jù)庫返回的邏輯相同的結(jié)果進行比對,從而實現(xiàn)一致性檢查。錯誤包反饋模塊9發(fā)現(xiàn)的主、從數(shù)據(jù)庫31、32返回結(jié)果的不一致情況進行描述反饋到上層應(yīng)用服務(wù)器I。出現(xiàn)不一致現(xiàn)象時,可能反饋的錯誤包有主、從數(shù)據(jù)庫31、32都返回結(jié)果,但是相互之間結(jié)果不一致,對存在的不同做描述;主、從數(shù)據(jù)庫存在其一無返回結(jié)果的情況,對無響應(yīng)現(xiàn)象做描述;主、從數(shù)據(jù)庫都未做出響應(yīng),對無響應(yīng)現(xiàn)象做描述。RJ45接口 5分別與主數(shù)據(jù)庫31、從數(shù)據(jù)庫32、外部網(wǎng)絡(luò)4以及從數(shù)據(jù)庫33連接。本發(fā)明的工作方法如圖3、4、5所示首先FPGA2對主、從數(shù)據(jù)庫31和32發(fā)起請求操作,與主、從數(shù)據(jù)庫31和32發(fā)生通信,獲取主、從數(shù)庫31、32的信息,將獲取的信息存儲到高速緩存SRAM組10中;如圖3所
/Jn o應(yīng)用服務(wù)器I發(fā)起事務(wù),對主、從數(shù)據(jù)庫31、32進行讀寫操作;(I)對主、從數(shù)據(jù)庫31、32進行讀操作如圖4所示,F(xiàn)PGA2中數(shù)據(jù)流復(fù)制模塊6通過現(xiàn)場可編程進行截取數(shù)據(jù)包,存儲到高速緩存SRAM組10的SRAMl中,對數(shù)據(jù)包進行拆包分析,提取數(shù)據(jù)包數(shù)據(jù)段內(nèi)容,通過深度包分析技術(shù)和規(guī)則匹配方法提取數(shù)據(jù)段中包含的SQL語句,判斷為讀數(shù)據(jù),數(shù)據(jù)流復(fù)制模塊6進行數(shù)據(jù)包拷貝,存儲到SRAM組10的SRAM2中。數(shù)據(jù)流轉(zhuǎn)換模塊7協(xié)同應(yīng)用服務(wù)器I根據(jù)SRAM組的SRAM3中主、從數(shù)據(jù)庫信息以及應(yīng)用服務(wù)器I對從數(shù)據(jù)庫語句轉(zhuǎn)換模式的編制對SRAMl和SRAM2中的數(shù)據(jù)做指定數(shù)據(jù)庫SQL語句格式轉(zhuǎn)換,并存儲到SRAM組的SRAM4和SRAM5中,同時清除SRAMl和SRAM2列表中本條數(shù)據(jù)流內(nèi)容。對SRAM4和SRAM5中數(shù)據(jù)包的對應(yīng)包頭數(shù)據(jù)做修改,定位到主、從數(shù)據(jù)庫服務(wù)器所連接的數(shù)據(jù)流交互RJ45接口 5,并將數(shù)據(jù)包發(fā)送到主、從數(shù)據(jù)庫服務(wù)器,F(xiàn)PGA上時鐘開始計時。主、從數(shù)據(jù)庫31、32做數(shù)據(jù)讀操作,F(xiàn)PGA2中返回結(jié)果一致性檢查模塊8監(jiān)聽主數(shù)據(jù)庫服務(wù)器31返回消息。FPGA2中返回結(jié)果一致性檢查模塊8監(jiān)聽主數(shù)據(jù)庫31返回的消息后停止計時,不做一致性檢查,將結(jié)果直接返回到應(yīng)用服務(wù)器I。主數(shù)據(jù)庫31消息無響應(yīng),計時器超時后,F(xiàn)PGA2錯誤包反饋模塊生成主數(shù)據(jù)庫31無響應(yīng)數(shù)據(jù)包發(fā)送到應(yīng)用服務(wù)器1,同時獲取從數(shù)據(jù)庫32返回結(jié)果返回上層,本次事務(wù)結(jié)束。(2)對主、從數(shù)據(jù)庫31、32進行添加、修改和刪除等寫操作如圖5所示,F(xiàn)PGA2中數(shù)據(jù)流復(fù)制模塊6通過現(xiàn)場可編程進行操作數(shù)據(jù)流截取,存儲到高速緩存SRAM組10的SRAMl列表中。 對數(shù)據(jù)包進行拆包分析,提取數(shù)據(jù)包數(shù)據(jù)段內(nèi)容,通過深度包分析技術(shù)和規(guī)則匹配方法提取數(shù)據(jù)段中包含的SQL語句,判斷為寫操作,數(shù)據(jù)流復(fù)制模塊6將對SRAMl中數(shù)據(jù)流進行拷貝,數(shù)據(jù)流轉(zhuǎn)換模塊7協(xié)同應(yīng)用服務(wù)器I根據(jù)SRAM組的SRAM3中主、從數(shù)據(jù)庫信息以及應(yīng)用服務(wù)器I對從數(shù)據(jù)庫語句轉(zhuǎn)換模式的編制對操作數(shù)據(jù)庫的SQL語句做格式轉(zhuǎn)換,將結(jié)果存儲到SRAM組的SRAM4和SRAM5中。對SRAM4和SRAM5中數(shù)據(jù)包的對應(yīng)包頭數(shù)據(jù)做修改,重組數(shù)據(jù)包,定位到主、從數(shù)據(jù)庫服務(wù)器所連接的數(shù)據(jù)服務(wù)數(shù)據(jù)流交互RJ45接口 5,并將數(shù)據(jù)包同時發(fā)送到主、從數(shù)據(jù)庫31、32都做通信,F(xiàn)PGA上時鐘開始計時。應(yīng)用服務(wù)器I對主、從數(shù)據(jù)庫31、32做寫操作,將與主、從數(shù)據(jù)庫31、32都做通信。應(yīng)用服務(wù)器I做數(shù)據(jù)寫操作,F(xiàn)PGA2中返回結(jié)果一致性檢查模塊8監(jiān)聽主、從數(shù)據(jù)庫31、32返回的數(shù)據(jù)包,將返回消息存儲到SRAM組10的SRAM6中,返回結(jié)果一致性檢查模塊8根據(jù)數(shù)據(jù)包分析技術(shù)判別主、從數(shù)據(jù)庫31、32返回消息結(jié)果邏輯是否一致。主、從數(shù)據(jù)庫31、32都返回結(jié)果,檢查主、從結(jié)果不一致,F(xiàn)PGA2中錯誤包反饋模塊9根據(jù)返回消息生成操作失敗包發(fā)送到上層應(yīng)用服務(wù)器I ;主數(shù)據(jù)庫31返回成功,從數(shù)據(jù)庫32無返回結(jié)果,生成從數(shù)據(jù)庫32操作失敗數(shù)據(jù)包;主數(shù)據(jù)庫31無返回結(jié)果,從數(shù)據(jù)庫32返回成功,生成主數(shù)據(jù)庫31操作失敗數(shù)據(jù)包。主、從數(shù)據(jù)庫31、32均無消息響應(yīng),F(xiàn)PGA2錯誤包反饋模塊9生成主、從數(shù)據(jù)庫無響應(yīng)數(shù)據(jù)包發(fā)送到應(yīng)用服務(wù)器I。應(yīng)用服務(wù)器I與FPGA2各模塊協(xié)同做出容錯處理,處理成功后,本次事務(wù)結(jié)束。上述雖然結(jié)合附圖對本發(fā)明的具體實施方式
進行了描述,但并非對本發(fā)明保護范圍的限制,所屬領(lǐng)域技術(shù)人員應(yīng)該明白,在本發(fā)明的技術(shù)方案的基礎(chǔ)上,本領(lǐng)域技術(shù)人員不需要付出創(chuàng)造性勞動即可做出的各種修改或變形仍在本發(fā)明的保護范圍以內(nèi)。
權(quán)利要求
1.一種基于FPGA的實時數(shù)據(jù)庫備份系統(tǒng),包括應(yīng)用服務(wù)器,應(yīng)用服務(wù)器與FPGA連接,F(xiàn)PGA上有SRAM組、數(shù)據(jù)流復(fù)制模塊、數(shù)據(jù)流轉(zhuǎn)換模塊、返回結(jié)果一致性檢查模塊和錯誤包反饋模塊以及若干相互獨立的RJ45接口,各RJ45接口則分別與主數(shù)據(jù)庫、從數(shù)據(jù)庫和外部網(wǎng)絡(luò)連接; 其中,應(yīng)用服務(wù)器起到外界服務(wù)對主、從數(shù)據(jù)庫發(fā)起請求的中間連接作用,它接受外界的服務(wù)請求,通過FPGA與主、從數(shù)據(jù)庫連接,對主、從數(shù)據(jù)庫數(shù)據(jù)做讀取操作并對發(fā)起的所有請求做好日志;同時,應(yīng)用服務(wù)器還起到對返回錯誤數(shù)據(jù)包、主、從數(shù)據(jù)庫無響應(yīng)數(shù)據(jù)包的處理,對主、從數(shù)據(jù)庫不一致做出判斷,做出提示并進行處理; 數(shù)據(jù)流復(fù)制模塊是對流出數(shù)據(jù)包進行復(fù)制,即應(yīng)用服務(wù)器對主數(shù)據(jù)庫發(fā)起請求而并不對從數(shù)據(jù)庫做出請求,對從數(shù)據(jù)庫的請求則是通過數(shù)據(jù)流復(fù)制模塊對主數(shù)據(jù)庫請求數(shù)據(jù)包做復(fù)制和轉(zhuǎn)換后發(fā)起的,為下一步數(shù)據(jù)流轉(zhuǎn)換做好準(zhǔn)備,以便生成對從數(shù)據(jù)庫發(fā)起請求數(shù)據(jù)流; 數(shù)據(jù)流轉(zhuǎn)換模塊是對復(fù)制獲得的數(shù)據(jù)包進行修改; 返回結(jié)果一致性檢查模塊是判斷主、從數(shù)據(jù)庫數(shù)據(jù)是否一致的主要模塊; 錯誤包反饋模塊發(fā)現(xiàn)的主、從數(shù)據(jù)庫返回結(jié)果的不一致情況進行描述反饋到上層應(yīng)用服務(wù)器; RJ45接口分別與主數(shù)據(jù)庫、從數(shù)據(jù)庫、外部網(wǎng)絡(luò)連接。
2.如權(quán)利要求I所述的基于FPGA的實時數(shù)據(jù)庫備份系統(tǒng),其特征是,所述數(shù)據(jù)流轉(zhuǎn)換模塊主要有兩方面的修改;一方面是對數(shù)據(jù)包頭部做出修改,即對源、目的地址和端口的修改,通過對數(shù)據(jù)包頭部進行替換實現(xiàn);一方面是數(shù)據(jù)包數(shù)據(jù)內(nèi)容的修改,根據(jù)已獲得的從數(shù)據(jù)庫的信息,應(yīng)用服務(wù)器對從數(shù)據(jù)庫的數(shù)據(jù)操作語言轉(zhuǎn)化模式做好編制,按照從數(shù)據(jù)庫的命令格式規(guī)則,通過FPGA可現(xiàn)場編程數(shù)據(jù)流轉(zhuǎn)換模塊利用規(guī)則匹配和深度包檢測技術(shù)提取數(shù)據(jù)內(nèi)容中包含SQL語句,數(shù)據(jù)流轉(zhuǎn)換模塊將提取SQL語句傳遞到上層應(yīng)用服務(wù)器,上層應(yīng)用服務(wù)器按照對從數(shù)據(jù)庫編制好的數(shù)據(jù)語言轉(zhuǎn)化模式對SQL語句格式進行轉(zhuǎn)換后返回到數(shù)據(jù)流轉(zhuǎn)換模塊;最后將修改后的數(shù)據(jù)包頭和數(shù)據(jù)包數(shù)據(jù)內(nèi)容重組成新的數(shù)據(jù)包轉(zhuǎn)發(fā)到對應(yīng)連接的RJ45接口,以此與從數(shù)據(jù)庫的操作規(guī)則相對應(yīng)。
3.如權(quán)利要求I所述的基于FPGA的實時數(shù)據(jù)庫備份系統(tǒng),其特征是,所述返回結(jié)果一致性檢查模塊通過對獲得主、從數(shù)據(jù)庫返回的結(jié)果做出檢查比對,判斷返回結(jié)果是否成功,主、從數(shù)據(jù)庫返回結(jié)果是否一致;即不同數(shù)據(jù)庫進行相同操作的返回結(jié)果有差異,此模塊便通過對主、從數(shù)據(jù)庫返回的邏輯相同的結(jié)果進行比對,從而實現(xiàn)一致性檢查。
4.如權(quán)利要求I所述的基于FPGA的實時數(shù)據(jù)庫備份系統(tǒng),其特征是,所述錯誤包反饋模塊發(fā)現(xiàn)主、從數(shù)據(jù)庫返回結(jié)果的不一致時,當(dāng)可能反饋的錯誤包有主、從數(shù)據(jù)庫都返回結(jié)果,但是相互之間結(jié)果不一致的,對存在的不同做描述;當(dāng)主、從數(shù)據(jù)庫存在其一無返回結(jié)果的情況,對無響應(yīng)現(xiàn)象做描述;當(dāng)主、從數(shù)據(jù)庫都未做出響應(yīng),對無響應(yīng)現(xiàn)象做描述。
5.一種采用權(quán)利要求I所述的基于FPGA的實時數(shù)據(jù)庫備份系統(tǒng)的備份方法,其特征是,具體工作步驟如下 步驟一事務(wù)發(fā)起;FPGA中數(shù)據(jù)流復(fù)制模塊獲取與之相連的主、從數(shù)據(jù)庫的信息,將信息反饋到上層應(yīng)用服務(wù)器; 步驟二 FPGA中數(shù)據(jù)流復(fù)制模塊截取流出數(shù)據(jù)流,判斷對數(shù)據(jù)是否為添加、修改或刪除寫操作或讀操作執(zhí)行流程,如果是讀操作執(zhí)行流程,就進入步驟三;如果是添加、修改或刪除寫操作,就進入步驟四; 步驟三FPGA中數(shù)據(jù)流復(fù)制模塊對數(shù)據(jù)流進行復(fù)制;FPGA中數(shù)據(jù)流轉(zhuǎn)換模塊根據(jù)應(yīng)用服務(wù)器已獲取從數(shù)據(jù)庫信息,同應(yīng)用服務(wù)器一同對SQL格式進行轉(zhuǎn)換;通過不同RJ45接口連到主、從數(shù)據(jù)庫;主、從數(shù)據(jù)庫進行操作,返回操作結(jié)果;FPGA中返回結(jié)果一致性檢查模塊監(jiān)聽接收主、從數(shù)據(jù)庫返回的結(jié)果;判斷是否監(jiān)聽到主數(shù)據(jù)庫響應(yīng);如果是就將返回數(shù)據(jù)發(fā)送到上層應(yīng)用服務(wù)器;如果否,錯誤包反饋模塊就生成主數(shù)據(jù)庫無響應(yīng)數(shù)據(jù)包,并將其與從數(shù)據(jù)庫返回結(jié)果發(fā)送到上層應(yīng)用服務(wù)器;本次事務(wù)結(jié)束; 步驟四FPGA中數(shù)據(jù)流復(fù)制模塊對數(shù)據(jù)流進行復(fù)制;FPGA中數(shù)據(jù)流轉(zhuǎn)換模塊根據(jù)應(yīng)用服務(wù)器已獲取從數(shù)據(jù)庫信息,同上層 應(yīng)用服務(wù)器一同對SQL格式進行轉(zhuǎn)換;通過不同RJ45接口連到主、從數(shù)據(jù)庫;主、從數(shù)據(jù)庫分別進行操作,返回操作結(jié)果;FPGA中返回結(jié)果一致性檢查模塊監(jiān)聽接收主、從數(shù)據(jù)返回的結(jié)果;判斷是否監(jiān)聽到主數(shù)據(jù)庫響應(yīng),如果監(jiān)聽到,轉(zhuǎn)入步驟四a ;如果否,轉(zhuǎn)入步驟四b ; 步驟四a:如果監(jiān)聽到主數(shù)據(jù)庫響應(yīng),就對主、從數(shù)據(jù)庫進行結(jié)果一致性檢查,并判斷結(jié)果是否一致,如果一致就將成功數(shù)據(jù)包發(fā)送到上層應(yīng)用服務(wù)器,本次事務(wù)結(jié)束;如果判斷結(jié)果不一致就進入步驟四b ; 步驟四b:FPGA中錯誤包反饋模塊生成錯誤數(shù)據(jù)包,將錯誤數(shù)據(jù)包返回到上層應(yīng)用服務(wù)器,上層應(yīng)用服務(wù)器做出容錯響應(yīng),上層應(yīng)用服務(wù)器與FPGA各模塊協(xié)同完成回滾等容錯處理;容錯處理成功,本次事務(wù)結(jié)束。
全文摘要
本發(fā)明公開了一種基于FPGA的實時數(shù)據(jù)庫備份方法,涉及FPGA和數(shù)據(jù)庫備份容災(zāi)技術(shù)。數(shù)據(jù)庫操作數(shù)據(jù)流通過FPGA板高速復(fù)制功能定位到兩個或多個1G的RJ45接口發(fā)送給不同的數(shù)據(jù)服務(wù)器,對兩臺或多臺數(shù)據(jù)服務(wù)器中數(shù)據(jù)庫進行同時一致操作,實現(xiàn)數(shù)據(jù)庫實時備份。
文檔編號G06F17/30GK102855314SQ20121030908
公開日2013年1月2日 申請日期2012年8月27日 優(yōu)先權(quán)日2012年8月27日
發(fā)明者陳貞翔, 王金光, 楊波, 張蕾, 彭立志 申請人:濟南大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
保亭| 山东省| 扬中市| 泗洪县| 福鼎市| 徐闻县| 左云县| 潼关县| 儋州市| 辽宁省| 儋州市| 嘉禾县| 宜宾市| 巴青县| 柳林县| 平舆县| 沙洋县| 富顺县| 海阳市| 太仆寺旗| 南投县| 美姑县| 阿勒泰市| 黔西县| 淮北市| 九龙城区| 岫岩| 绥阳县| 龙里县| 阜阳市| 临汾市| 谷城县| 观塘区| 石狮市| 临城县| 灵川县| 上杭县| 迭部县| 平顺县| 元江| 鲜城|