一種數(shù)據(jù)庫(kù)數(shù)據(jù)遷移系統(tǒng)的制作方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明屬于數(shù)據(jù)庫(kù)開發(fā)
技術(shù)領(lǐng)域:
,尤其涉及一種數(shù)據(jù)庫(kù)數(shù)據(jù)遷移系統(tǒng)?!?br>背景技術(shù):
】[0002]現(xiàn)在很多企業(yè)信息管理系統(tǒng)都是基于數(shù)據(jù)庫(kù)設(shè)計(jì)與開發(fā)的。這樣,對(duì)與這些企業(yè)信息管理系統(tǒng)的升級(jí)與維護(hù)都會(huì)需要與數(shù)據(jù)庫(kù)打交道,而數(shù)據(jù)庫(kù)的結(jié)構(gòu)是很難手工維護(hù)的,所以一般管理系統(tǒng)的升級(jí)就會(huì)很困難和痛苦。[0003]大多數(shù)組織都使用多種格式和多個(gè)位置來存儲(chǔ)數(shù)據(jù)。為了支持決策、改善系統(tǒng)性能或?qū)ΜF(xiàn)有系統(tǒng)進(jìn)行升級(jí),經(jīng)常必須將數(shù)據(jù)從一個(gè)數(shù)據(jù)存儲(chǔ)位置移動(dòng)到另一個(gè)存儲(chǔ)位置。這就是數(shù)據(jù)遷移工具(DataTransformat1nService,簡(jiǎn)稱:DTS)產(chǎn)生的技術(shù)背景。[0004]對(duì)于大規(guī)模的系統(tǒng)遷移,常用的數(shù)據(jù)遷移工具是MicrosoftSQLServer的數(shù)據(jù)轉(zhuǎn)換服務(wù)(DTS)等,該工具可以從不同的源將數(shù)據(jù)抽取、轉(zhuǎn)換和合并到一個(gè)或多個(gè)目標(biāo)位置。對(duì)于小規(guī)模的系統(tǒng)遷移、數(shù)據(jù)遷移及系統(tǒng)升級(jí)應(yīng)用,應(yīng)用廠商大多采用手動(dòng)錄入、手動(dòng)復(fù)制粘貼、導(dǎo)出\導(dǎo)入TXT\CSV文件、導(dǎo)出\導(dǎo)入SQL數(shù)據(jù)文件來對(duì)應(yīng)。[0005]MicrosoftSQLServer、0racle等專業(yè)的DTS工具,適用于大規(guī)模、復(fù)雜的數(shù)據(jù)遷移項(xiàng)目,這類DTS軟件的采購(gòu)費(fèi)用較高,不適合用于平臺(tái)產(chǎn)品的升級(jí)和數(shù)據(jù)遷移。手動(dòng)錄入、手動(dòng)復(fù)制粘貼、導(dǎo)出\導(dǎo)入TXT\CSV文件、導(dǎo)出\導(dǎo)入SQL數(shù)據(jù)文件等方式的數(shù)據(jù)遷移適合一次性、并且小規(guī)模的數(shù)據(jù)遷移,不適合平臺(tái)產(chǎn)品的升級(jí)和數(shù)據(jù)遷移。本發(fā)明因此而來。【
發(fā)明內(nèi)容】[0006]針對(duì)現(xiàn)有技術(shù)中所存在的問題,本發(fā)明的目的是提供一種數(shù)據(jù)庫(kù)數(shù)據(jù)遷移系統(tǒng),解決了管理系統(tǒng)數(shù)據(jù)庫(kù)的更新與遷移的難題,更重視業(yè)務(wù)方面的數(shù)據(jù)維護(hù)。[0007]—種數(shù)據(jù)庫(kù)數(shù)據(jù)遷移系統(tǒng),其特征在于所述系統(tǒng)包括設(shè)置在源數(shù)據(jù)庫(kù)端的數(shù)據(jù)庫(kù)查看模塊、對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)內(nèi)容變更情況進(jìn)行監(jiān)聽的數(shù)據(jù)庫(kù)監(jiān)聽模塊和對(duì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)和數(shù)據(jù)記錄進(jìn)行復(fù)制,形成SQL文件的數(shù)據(jù)庫(kù)備份模塊;所述數(shù)據(jù)庫(kù)查看模塊對(duì)源數(shù)據(jù)庫(kù)的結(jié)構(gòu)和數(shù)據(jù)進(jìn)行查看后,數(shù)據(jù)庫(kù)備份模塊將相應(yīng)的數(shù)據(jù)和數(shù)據(jù)庫(kù)結(jié)構(gòu)根據(jù)SQL命令規(guī)范形成SQL文件,由數(shù)據(jù)庫(kù)備份模塊輸出備份;當(dāng)數(shù)據(jù)庫(kù)監(jiān)聽模塊監(jiān)聽到數(shù)據(jù)庫(kù)數(shù)據(jù)內(nèi)容變更時(shí),啟動(dòng)數(shù)據(jù)庫(kù)備份模塊對(duì)變更內(nèi)容進(jìn)行備份,并替換相應(yīng)SQL文件中內(nèi)容。[0008]優(yōu)選的,所述系統(tǒng)還包括將數(shù)據(jù)庫(kù)備份模塊備份出的SQL文件進(jìn)行打包形成可執(zhí)行文件的打包模塊;當(dāng)數(shù)據(jù)庫(kù)備份模塊備份完畢時(shí),啟動(dòng)所述打包模塊進(jìn)行SQL文件的打包。[0009]優(yōu)選的,所述系統(tǒng)還包括用于根據(jù)打包形成的可執(zhí)行文件進(jìn)行更新或創(chuàng)建目標(biāo)數(shù)據(jù)庫(kù)的更新模塊,所述更新模塊設(shè)置有配置文件,所述配置文件內(nèi)設(shè)置數(shù)據(jù)庫(kù)結(jié)構(gòu)或數(shù)據(jù)庫(kù)數(shù)據(jù)記錄的更新次序。[0010]本發(fā)明可以將平臺(tái)數(shù)據(jù)庫(kù)對(duì)象的變更情況進(jìn)行記錄,針對(duì)不同類型的數(shù)據(jù)庫(kù)可以生成更新DDL語句,系統(tǒng)升級(jí)時(shí)該DDL語句與所做的WEB升級(jí)程序可以一起打包、執(zhí)行,通過使用DTS工具,可以大幅減少系統(tǒng)升級(jí)的工作量,并且可以有效保證升級(jí)過程的一致性和正確性。[0011]本發(fā)明可以保證同一個(gè)項(xiàng)目的數(shù)據(jù)庫(kù),在不同時(shí)候的數(shù)據(jù)庫(kù)變化記錄下來,動(dòng)態(tài)生成相關(guān)的DDL語句,由工具根據(jù)這些語句執(zhí)行以更新數(shù)據(jù)庫(kù)。本發(fā)明通過動(dòng)態(tài)生成業(yè)務(wù)邏輯SQL語句、免干擾的自動(dòng)更新程序;并將所有更新文件都集中生成一個(gè)獨(dú)立的更新包;更新動(dòng)作只需要一個(gè)更新包執(zhí)行即可。[0012]本發(fā)明可以基于業(yè)務(wù)的DDL語句自動(dòng)生成。在開發(fā)階段,本系統(tǒng)可以自動(dòng)記錄平臺(tái)數(shù)據(jù)庫(kù)中表結(jié)構(gòu)的變更、存儲(chǔ)過程、視圖等系統(tǒng)對(duì)象的變更、及表單和系統(tǒng)數(shù)據(jù)的變更,并根據(jù)MicrosoftSQLServer、Oracle等不同的數(shù)據(jù)庫(kù)類型,自動(dòng)生成對(duì)應(yīng)的DDL更新語句、系統(tǒng)數(shù)據(jù)更新語句和表單更新語句。[0013]本發(fā)明可以基于業(yè)務(wù)的新舊數(shù)據(jù)的自動(dòng)更新處理。更新包升級(jí)時(shí),可以根據(jù)表單等數(shù)據(jù)的版本號(hào),自動(dòng)識(shí)別對(duì)象版本的新舊,對(duì)舊版本的文件進(jìn)行更新。[0014]本發(fā)明可以自解壓包與更新程序。更新包升級(jí)時(shí),可以將更新包進(jìn)行自動(dòng)解壓縮并執(zhí)行升級(jí)。本發(fā)明自動(dòng)記錄平臺(tái)數(shù)據(jù)庫(kù)的對(duì)象變更,根據(jù)不同的數(shù)據(jù)庫(kù)類型,生成對(duì)應(yīng)的DDL變更語句;免干擾的自動(dòng)更新程序;把所有更新DDL文件、數(shù)據(jù)文件、表單、程序文件等都集中生成一個(gè)獨(dú)立的更新包;更新動(dòng)作只需要一個(gè)更新包執(zhí)行即可。[0015]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果為:將各種技術(shù)實(shí)現(xiàn)細(xì)節(jié)和調(diào)用的結(jié)束細(xì)節(jié)對(duì)用戶屏蔽,讓用戶可以通過統(tǒng)一的方式調(diào)用這些后臺(tái)技術(shù);提供了簡(jiǎn)單直接調(diào)用SQL語句的方法;提高了平臺(tái)類軟件的開發(fā)效率;降低了技術(shù)實(shí)現(xiàn)的難度;同時(shí),降低了業(yè)務(wù)開發(fā)人員的學(xué)習(xí)門檻。該系統(tǒng)通過數(shù)據(jù)庫(kù)備份模塊的設(shè)置,通過更新模塊執(zhí)行使數(shù)據(jù)庫(kù)的遷移工作方便易行?!揪唧w實(shí)施方式】[0016]以下結(jié)合具體實(shí)施例對(duì)上述方案做進(jìn)一步說明。應(yīng)理解,這些實(shí)施例是用于說明本發(fā)明而不限于限制本發(fā)明的范圍。實(shí)施例中采用的實(shí)施條件可以根據(jù)具體廠家的條件做進(jìn)一步調(diào)整,未注明的實(shí)施條件通常為常規(guī)使用的條件。[0017]實(shí)施例[0018]數(shù)據(jù)庫(kù)數(shù)據(jù)遷移系統(tǒng)該系統(tǒng)包括設(shè)置在源數(shù)據(jù)庫(kù)端的數(shù)據(jù)庫(kù)查看模塊、對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)內(nèi)容變更情況進(jìn)行監(jiān)聽的數(shù)據(jù)庫(kù)監(jiān)聽模塊、對(duì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)和數(shù)據(jù)記錄進(jìn)行復(fù)制,形成SQL文件的數(shù)據(jù)庫(kù)備份模塊、將數(shù)據(jù)庫(kù)備份模塊備份出的SQL文件進(jìn)行打包形成可執(zhí)行文件的打包模塊和用于根據(jù)打包形成的可執(zhí)行文件進(jìn)行更新或創(chuàng)建目標(biāo)數(shù)據(jù)庫(kù)的更新模塊;所述數(shù)據(jù)庫(kù)查看模塊對(duì)源數(shù)據(jù)庫(kù)的結(jié)構(gòu)和數(shù)據(jù)進(jìn)行查看后,數(shù)據(jù)庫(kù)備份模塊將相應(yīng)的數(shù)據(jù)和數(shù)據(jù)庫(kù)結(jié)構(gòu)根據(jù)SQL命令規(guī)范形成SQL文件,由數(shù)據(jù)庫(kù)備份模塊輸出備份;當(dāng)數(shù)據(jù)庫(kù)監(jiān)聽模塊監(jiān)聽到數(shù)據(jù)庫(kù)數(shù)據(jù)內(nèi)容變更時(shí),啟動(dòng)數(shù)據(jù)庫(kù)備份模塊對(duì)變更內(nèi)容進(jìn)行備份,并替換相應(yīng)SQL文件中內(nèi)容。[0019]當(dāng)數(shù)據(jù)庫(kù)備份模塊備份完畢時(shí),啟動(dòng)所述打包模塊進(jìn)行SQL文件的打包。所述更新模塊設(shè)置有配置文件,所述配置文件內(nèi)設(shè)置數(shù)據(jù)庫(kù)結(jié)構(gòu)或數(shù)據(jù)庫(kù)數(shù)據(jù)記錄的更新次序。[0022]以下進(jìn)行詳細(xì)描述數(shù)據(jù)庫(kù)結(jié)構(gòu)和內(nèi)容的遷移過程。[0020](I)系統(tǒng)對(duì)象變更記錄[0021]開發(fā)階段,DTS工具自動(dòng)記錄表結(jié)構(gòu)變更、系統(tǒng)數(shù)據(jù)變更、表單變更、視圖、函數(shù)、和存儲(chǔ)過程的變更,并將這些變更生不同類型數(shù)據(jù)庫(kù)對(duì)應(yīng)的更新腳本。[0022](2)系統(tǒng)對(duì)象的處理[0023]視圖、函數(shù)、過程的變更,由UPD程序從開發(fā)數(shù)據(jù)庫(kù)導(dǎo)出為SQL文件。[0024](3)業(yè)務(wù)表的處理[0025]UPD程序負(fù)責(zé)導(dǎo)出用戶業(yè)務(wù)表的DDL語句和變更記錄,并對(duì)DDL語句整理,做出更新規(guī)則;到生產(chǎn)數(shù)據(jù)庫(kù)后,先重命名原表,再創(chuàng)建本業(yè)務(wù)表,并判斷字段把原表的數(shù)據(jù)插入新表,如果新表導(dǎo)出的時(shí)候帶有數(shù)據(jù),再把新表的數(shù)據(jù)插入進(jìn)來(該插入語句在導(dǎo)出的時(shí)候就準(zhǔn)備好了判斷的語法);處理完畢后,把重命名的舊表刪除。[0026](4)系統(tǒng)表的處理[0027]目標(biāo)系統(tǒng):開發(fā)系統(tǒng)[0028]—***應(yīng)用設(shè)計(jì)時(shí)系統(tǒng)表***—[0029]sys_apppage—菜單[0030]sys_spec—系統(tǒng)對(duì)象[0031]sys_wh_yb—顯示格式樹設(shè)置[0032]sys_column—字段[0033]sys_columndis—顯不字段[0034]sys_landscep-設(shè)計(jì)時(shí)字段[0035]SYS_DEFAULTUI—默認(rèn)主題顯示風(fēng)格設(shè)置[0036]sys_detialtable—關(guān)聯(lián)表[0037]sys_re當(dāng)前第1頁(yè)1 2