專利名稱:一種支持通用數(shù)據(jù)庫基于物理隔離設(shè)備同步數(shù)據(jù)的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于電力系統(tǒng)電網(wǎng)數(shù)據(jù)管理技術(shù)領(lǐng)域,尤指一種支持通用數(shù)據(jù)庫基于物理隔離設(shè)備同步數(shù)據(jù)的方法。
背景技術(shù):
智能電網(wǎng)調(diào)度技術(shù)支持系統(tǒng)網(wǎng)絡(luò)架構(gòu)分為安全I(xiàn)、II、III區(qū)。為了保證數(shù)據(jù)安全,I、 II區(qū)與III區(qū)之間架有物理隔離設(shè)備。安全I(xiàn)、II區(qū)上部署有實(shí)時(shí)監(jiān)控與預(yù)警類應(yīng)用、調(diào)度計(jì)劃類應(yīng)用和安全校核應(yīng)用,而安全I(xiàn)II區(qū)則部署有調(diào)度管理應(yīng)用。為了對部署在安全I(xiàn)、II、III區(qū)上的四大類電網(wǎng)應(yīng)用所需的電網(wǎng)數(shù)據(jù)進(jìn)行統(tǒng)一的管理和維護(hù),需要支持跨物理隔離設(shè)備同步數(shù)據(jù)。原有的方式是由上層應(yīng)用來實(shí)現(xiàn),在同步效率和可靠性上都較低,不能保證數(shù)據(jù)一致性,無法滿足新一代智能電網(wǎng)調(diào)度技術(shù)支持系統(tǒng)的要求。需要提供一種全新的數(shù)據(jù)同步方法,可以做到在數(shù)據(jù)庫層面的高效同步,支持多種數(shù)據(jù)庫和多種物理隔離設(shè)備,具有高可靠性和完善的異常處理機(jī)制,保證已提交的數(shù)據(jù)不會在同步過程中丟失。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種支持通用數(shù)據(jù)庫基于物理隔離設(shè)備同步數(shù)據(jù)的方法。為解決以上問題,本發(fā)明提供一種支持通用數(shù)據(jù)庫基于物理隔離設(shè)備同步數(shù)據(jù)的方法,包括以下步驟
(1)實(shí)時(shí)監(jiān)視源端數(shù)據(jù)庫的物理日志,若發(fā)現(xiàn)有新的變化數(shù)據(jù)產(chǎn)生,則依次解析物理日志的變化內(nèi)容,生成邏輯日志,并放入外存邏輯日志文件中;
(2)當(dāng)外存邏輯日志文件存在新的變化數(shù)據(jù)時(shí),從外存邏輯日志文件讀取一條或多條邏輯日志記錄,然后封裝成網(wǎng)絡(luò)報(bào)文,并通過物理隔離設(shè)備與目的數(shù)據(jù)庫建立鏈接,進(jìn)行發(fā)送;
(3)目的數(shù)據(jù)庫實(shí)時(shí)監(jiān)視源端發(fā)送的連接請求,若收到連接請求,則創(chuàng)建一個(gè)邏輯日志接收線程,用于接收源端發(fā)送的數(shù)據(jù);
(4)讀取接收到的網(wǎng)絡(luò)報(bào)文,重新組裝成邏輯日志記錄,并保存到外存邏輯日志文件
中;
(5)目的端實(shí)時(shí)監(jiān)測接受到的外存邏輯日志文件,依次讀取每條邏輯日志記錄,寫入到目的端數(shù)據(jù)庫中,完成數(shù)據(jù)同步,若無法寫入目的端數(shù)據(jù)庫,則反復(fù)重新嘗試寫入,直至寫入成功。本發(fā)明支持多種通用數(shù)據(jù)庫產(chǎn)品,支持跨多種物理隔離設(shè)備進(jìn)行數(shù)據(jù)同步;數(shù)據(jù)同步方式采用觸發(fā)式實(shí)現(xiàn),當(dāng)源端數(shù)據(jù)庫發(fā)生數(shù)據(jù)修改時(shí),可以立即觸發(fā)同步流程,同步到目的數(shù)據(jù)庫中;針對物理隔離設(shè)備對帶寬的限制,支持網(wǎng)絡(luò)數(shù)據(jù)包的壓縮功能,提高數(shù)據(jù)同步性能;數(shù)據(jù)同步采用異步復(fù)制方式,當(dāng)數(shù)據(jù)寫入源端數(shù)據(jù)庫后立即將執(zhí)行結(jié)果返回給調(diào)用者,數(shù)據(jù)同步在后臺完成;數(shù)據(jù)同步支持DDL和DML語句,既可以同步INSERT、DELETE、UPDATE等數(shù)據(jù)更新語句,也可以同步CREATE、ALTER、DROP等結(jié)構(gòu)更新語句;數(shù)據(jù)同步可以提供完善的異常處理機(jī)制,可以保證在網(wǎng)絡(luò)異?;蚰康臄?shù)據(jù)庫異常時(shí),在源端數(shù)據(jù)庫已提交的數(shù)據(jù)不丟失。本發(fā)明的方法具有較強(qiáng)的通用性,可以支持多種數(shù)據(jù)庫產(chǎn)品和多種物理隔離設(shè)備;具有完善的異常處理機(jī)制,可以最大程度保證源端數(shù)據(jù)庫和目的數(shù)據(jù)庫的數(shù)據(jù)一致性; 具有網(wǎng)絡(luò)數(shù)據(jù)包壓縮功能,可以提高數(shù)據(jù)同步的效率;異步復(fù)制方式可以最大限度降低數(shù)據(jù)同步對源端數(shù)據(jù)庫數(shù)據(jù)訪問的影響。本發(fā)明的工作原理為
實(shí)時(shí)監(jiān)視源端數(shù)據(jù)庫的物理日志,若發(fā)現(xiàn)有新的變化數(shù)據(jù)產(chǎn)生,則依次解析物理日志的變化內(nèi)容,生成外存邏輯日志,然后從外存邏輯日志文件讀取一條或多條邏輯日志記錄, 封裝成網(wǎng)絡(luò)報(bào)文(可選擇是否壓縮),并通過物理隔離設(shè)備與目的數(shù)據(jù)庫建立鏈接,進(jìn)行發(fā)送。發(fā)送完畢后若未收到回執(zhí)報(bào)文,將關(guān)閉并嘗試重建鏈接,重發(fā)此網(wǎng)絡(luò)報(bào)文,直至發(fā)送成功。目的數(shù)據(jù)庫實(shí)時(shí)監(jiān)視源端發(fā)送的連接請求,接收源端發(fā)送的數(shù)據(jù),讀取接收到的網(wǎng)絡(luò)報(bào)文,重新組裝成邏輯日志記錄,并保存到外存邏輯日志文件中。如果保存成功,則發(fā)送回執(zhí)報(bào)文到源端數(shù)據(jù)庫,若出現(xiàn)失敗,則關(guān)閉當(dāng)前建立的鏈接,等待源端數(shù)據(jù)庫重連重發(fā)。目的端實(shí)時(shí)監(jiān)測外存邏輯日志文件,依次讀取每條邏輯日志記錄,寫入到目的端數(shù)據(jù)庫中,完成數(shù)據(jù)同步,若無法寫入目的端數(shù)據(jù)庫,則反復(fù)重新嘗試寫入,直至寫入成功。
圖1為本發(fā)明的一種支持通用數(shù)據(jù)庫基于物理隔離設(shè)備同步數(shù)據(jù)的方法流程圖。
具體實(shí)施例方式下面結(jié)合附圖對本發(fā)明作進(jìn)一步說明。圖1為本發(fā)明的一種支持通用數(shù)據(jù)庫基于物理隔離設(shè)備同步數(shù)據(jù)的方法的流程圖。本發(fā)明的處理流程為
流程開始時(shí),源端數(shù)據(jù)庫接收外部的數(shù)據(jù)更新請求,形成變化數(shù)據(jù),寫入物理日志中。實(shí)時(shí)監(jiān)視源端數(shù)據(jù)庫的物理日志,若發(fā)現(xiàn)有新的變化數(shù)據(jù)產(chǎn)生,則依次解析物理日志的變化內(nèi)容,生成邏輯日志,并放入外存邏輯日志文件中。當(dāng)外存邏輯日志文件存在新的變化數(shù)據(jù)時(shí),從外存邏輯日志文件讀取一條或多條 (可動態(tài)配置)邏輯日志記錄,然后封裝成網(wǎng)絡(luò)報(bào)文(可選擇是否壓縮),并通過物理隔離設(shè)備與目的數(shù)據(jù)庫建立鏈接,進(jìn)行發(fā)送。發(fā)送完畢后等待回執(zhí)報(bào)文,若收到則準(zhǔn)備進(jìn)行下次發(fā)送,若未收到回執(zhí)報(bào)文,將關(guān)閉并嘗試重建鏈接,重發(fā)此網(wǎng)絡(luò)報(bào)文,直至發(fā)送成功。目的數(shù)據(jù)庫實(shí)時(shí)監(jiān)視源端發(fā)送的連接請求,若收到連接請求,則創(chuàng)建一個(gè)邏輯日志接收線程,用于接收源端發(fā)送的數(shù)據(jù)。讀取接收到的網(wǎng)絡(luò)報(bào)文,重新組裝成邏輯日志記錄,并保存到外存邏輯日志文件中。如果上述過程成功,則發(fā)送回執(zhí)報(bào)文到源端數(shù)據(jù)庫。若出現(xiàn)失敗,則關(guān)閉當(dāng)前建立的鏈接,等待源端數(shù)據(jù)庫重連重發(fā)。目的端實(shí)時(shí)監(jiān)測接受到的外存邏輯日志文件,依次讀取每條邏輯日志記錄,寫入到目的端數(shù)據(jù)庫中,完成數(shù)據(jù)同步。若無法寫入目的端數(shù)據(jù)庫,則反復(fù)重新嘗試寫入,直至寫入成功。 本發(fā)明按照優(yōu)選實(shí)施例進(jìn)行了說明,應(yīng)當(dāng)理解,上述實(shí)施例不以任何形式限定本發(fā)明,凡采用等同替換或等效變換的形式所獲得的技術(shù)方案,均落在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種支持通用數(shù)據(jù)庫基于物理隔離設(shè)備同步數(shù)據(jù)的方法,其特征在于包括以下步驟(1)實(shí)時(shí)監(jiān)視源端數(shù)據(jù)庫的物理日志,若發(fā)現(xiàn)有新的變化數(shù)據(jù)產(chǎn)生,則依次解析物理日志的變化內(nèi)容,生成邏輯日志,并放入外存邏輯日志文件中;(2)當(dāng)外存邏輯日志文件存在新的變化數(shù)據(jù)時(shí),從外存邏輯日志文件讀取一條或多條邏輯日志記錄,然后封裝成網(wǎng)絡(luò)報(bào)文,并通過物理隔離設(shè)備與目的數(shù)據(jù)庫建立鏈接,進(jìn)行發(fā)送;(3)目的數(shù)據(jù)庫實(shí)時(shí)監(jiān)視源端發(fā)送的連接請求,若收到連接請求,則創(chuàng)建一個(gè)邏輯日志接收線程,用于接收源端發(fā)送的數(shù)據(jù);(4)讀取接收到的網(wǎng)絡(luò)報(bào)文,重新組裝成邏輯日志記錄,并保存到外存邏輯日志文件中;(5)目的端實(shí)時(shí)監(jiān)測接收到的外存邏輯日志文件,依次讀取每條邏輯日志記錄,寫入到目的端數(shù)據(jù)庫中,完成數(shù)據(jù)同步,若無法寫入目的端數(shù)據(jù)庫,則反復(fù)重新嘗試寫入,直至寫入成功。
2.根據(jù)權(quán)利要求1所述的一種支持通用數(shù)據(jù)庫基于物理隔離設(shè)備同步數(shù)據(jù)的方法,其特征在于在所述步驟2)中,發(fā)送完畢后等待回執(zhí)報(bào)文,若收到回執(zhí)報(bào)文則準(zhǔn)備進(jìn)行下次發(fā)送,若未收到回執(zhí)報(bào)文,將關(guān)閉并重建鏈接,重發(fā)此網(wǎng)絡(luò)報(bào)文,直至發(fā)送成功。
3.根據(jù)權(quán)利要求1所述的一種支持通用數(shù)據(jù)庫基于物理隔離設(shè)備同步數(shù)據(jù)的方法,其特征在于在所述步驟3)和4)中,如果保存成功,則發(fā)送回執(zhí)報(bào)文到源端數(shù)據(jù)庫,若出現(xiàn)失敗,則關(guān)閉當(dāng)前建立的鏈接,等待源端數(shù)據(jù)庫重連重發(fā)。
4.根據(jù)權(quán)利要求1所述的一種支持通用數(shù)據(jù)庫基于物理隔離設(shè)備同步數(shù)據(jù)的方法,其特征在于在所述步驟2)中,針對物理隔離設(shè)備對帶寬的限制,支持網(wǎng)絡(luò)數(shù)據(jù)包的壓縮功能,提高數(shù)據(jù)同步性能。
5.根據(jù)權(quán)利要求1所述的一種支持通用數(shù)據(jù)庫基于物理隔離設(shè)備同步數(shù)據(jù)的方法,其特征在于在所述步驟2)中,數(shù)據(jù)同步采用異步復(fù)制方式,當(dāng)數(shù)據(jù)寫入源端數(shù)據(jù)庫后立即將執(zhí)行結(jié)果返回給調(diào)用者,數(shù)據(jù)同步在后臺完成。
6.根據(jù)權(quán)利要求1所述的一種支持通用數(shù)據(jù)庫基于物理隔離設(shè)備同步數(shù)據(jù)的方法,其特征在于數(shù)據(jù)同步支持DDL和DML語句,既同步數(shù)據(jù)更新語句,也同步結(jié)構(gòu)更新語句。
全文摘要
本發(fā)明公開了一種支持通用數(shù)據(jù)庫基于物理隔離設(shè)備同步數(shù)據(jù)的方法,包括以下步驟1)實(shí)時(shí)監(jiān)視源端數(shù)據(jù)庫的物理日志,若發(fā)現(xiàn)有新的變化數(shù)據(jù)產(chǎn)生,則依次解析物理日志的變化內(nèi)容,生成邏輯日志,并放入外存邏輯日志文件中;2)從外存邏輯日志文件讀取邏輯日志記錄,然后封裝成網(wǎng)絡(luò)報(bào)文,并通過物理隔離設(shè)備與目的數(shù)據(jù)庫建立鏈接,進(jìn)行發(fā)送;3)目的數(shù)據(jù)庫若收到連接請求,則創(chuàng)建一個(gè)邏輯日志接收線程,用于接收源端發(fā)送的數(shù)據(jù);4)讀取接收到的網(wǎng)絡(luò)報(bào)文,并保存到外存邏輯日志文件中;5)目的端實(shí)時(shí)監(jiān)測接受到的外存邏輯日志文件,依次讀取并寫入到目的端數(shù)據(jù)庫中。本發(fā)明的方法具有較強(qiáng)的通用性,可以支持多種數(shù)據(jù)庫產(chǎn)品和多種物理隔離設(shè)備。
文檔編號G06F17/30GK102289469SQ201110210120
公開日2011年12月21日 申請日期2011年7月26日 優(yōu)先權(quán)日2011年7月26日
發(fā)明者季學(xué)純, 張鴻, 翟明玉, 陳鵬, 黃海峰 申請人:國電南瑞科技股份有限公司