一、第一套方案

網(wǎng)站的建設(shè)創(chuàng)新互聯(lián)專(zhuān)注網(wǎng)站定制,經(jīng)驗(yàn)豐富,不做模板,主營(yíng)網(wǎng)站定制開(kāi)發(fā).小程序定制開(kāi)發(fā),H5頁(yè)面制作!給你煥然一新的設(shè)計(jì)體驗(yàn)!已為茶藝設(shè)計(jì)等企業(yè)提供專(zhuān)業(yè)服務(wù)。
1、用新的建庫(kù)腳本創(chuàng)建一套新的數(shù)據(jù)庫(kù),結(jié)構(gòu)和類(lèi)型都是新的;
2、用數(shù)據(jù)導(dǎo)入工具,將原數(shù)據(jù)庫(kù)的數(shù)據(jù)導(dǎo)入到新的數(shù)控里面;
二、第二套方案
1、用新的建庫(kù)腳本創(chuàng)建一套新的數(shù)據(jù)庫(kù),結(jié)構(gòu)和類(lèi)型都是新的;
2、用數(shù)據(jù)庫(kù)結(jié)構(gòu)同步工具,將老的數(shù)據(jù)庫(kù)結(jié)構(gòu)更新同步到新建的數(shù)據(jù)庫(kù)上面;
兩套方案肯定都可行,主要在工作量和工作效率上面區(qū)別太大,導(dǎo)數(shù)據(jù)需要工具,可以用Sqlserver提供的DTS,有的結(jié)構(gòu)變動(dòng)大的需要對(duì)應(yīng)字段關(guān)系,太麻煩;
所以我想到用數(shù)據(jù)庫(kù)結(jié)構(gòu)同步工具來(lái)進(jìn)行,記得以前就用過(guò)這個(gè)功能,我們可以在網(wǎng)上輕松找到oracle數(shù)據(jù)庫(kù)客戶(hù)端操作工具PLSQL Developer,這個(gè)工具除了對(duì)數(shù)據(jù)庫(kù)進(jìn)行日常的維護(hù)之外,還提供很多使用的功能,同步兩個(gè)數(shù)據(jù)庫(kù)的結(jié)構(gòu),就是其中一個(gè),操作步驟如下:
1、打開(kāi)PLSQL Developer進(jìn)入新創(chuàng)建的數(shù)據(jù)庫(kù);
打開(kāi)菜單如下圖:
點(diǎn)擊菜單--工具--比較用戶(hù)對(duì)象,進(jìn)入如下圖:
會(huì)列出所以的表,你可選擇單獨(dú)的表或者多個(gè)表同時(shí)操作,然后點(diǎn)擊目標(biāo)回話(huà),會(huì)彈出要同步的數(shù)據(jù)庫(kù)連接對(duì)象窗口,輸入用戶(hù)名和密碼等等,確定后點(diǎn)擊右下角的比較按鈕,這樣會(huì)出現(xiàn)如下的比較窗口:
這時(shí),會(huì)把不同之處用腳本列出來(lái),只要點(diǎn)擊右邊的綠色對(duì)號(hào),同步即可;
這樣,結(jié)構(gòu)一下就都改好了,很方便。
1.在Oracle中建立對(duì)應(yīng)的contract 和 contract_project表,需要同步哪些字段我們就建那些字段到Oracle表中。
這里需要注意的是Oracle的數(shù)據(jù)類(lèi)型和SQLServer的數(shù)據(jù)類(lèi)型是不一樣的,那么他們之間是什么樣的關(guān)系拉?我們可以在SQLServer下運(yùn)行:
SELECT *
FROM msdb.dbo.MSdatatype_mappings
SELECT *
FROM msdb.dbo.sysdatatypemappings
來(lái)查看SQLServer和其他數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)類(lèi)型對(duì)應(yīng)關(guān)系。第一個(gè)SQL語(yǔ)句是看SQL轉(zhuǎn)Oracle的類(lèi)型對(duì)應(yīng),而第二個(gè)表則更詳細(xì)得顯示了各個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的類(lèi)型對(duì)應(yīng)。根據(jù)第一個(gè)表和我們的SQLServer中的字段類(lèi)型我們就可以建立好Oracle表了。
SQLServer和Oracle的對(duì)應(yīng)
2.建立鏈接服務(wù)器。我們將Oracle系統(tǒng)作為SQLServer的鏈接服務(wù)器加入到SQLServer中。
具體做法參見(jiàn)我以前的文章
3.使用SQL語(yǔ)句通過(guò)鏈接服務(wù)器將SQLServer數(shù)據(jù)寫(xiě)入Oracle中。
比如我們建立了鏈接服務(wù)器MIS,而Oracle中在MIS用戶(hù)下面建立了表contract_project,那么我們的SQL語(yǔ)句就是:
DELETE FROM MIS..MIS.CONTRACT_PROJECT
--清空Oracle表中的數(shù)據(jù)
INSERT into MIS..MIS.CONTRACT_PROJECT--將SQLServer中的數(shù)據(jù)寫(xiě)到Oracle中
SELECT contract_id,project_code,actual_money
FROM contract_project
如果報(bào)告成功,那么我們的數(shù)據(jù)就已經(jīng)寫(xiě)入到Oracle中了。用
SELECT *
FROM MIS..MIS.CONTRACT_PROJECT
查看Oracle數(shù)據(jù)庫(kù)中是否已經(jīng)有數(shù)據(jù)了。
4.建立SQLAgent,將以上同步SQL語(yǔ)句作為執(zhí)行語(yǔ)句,每天定時(shí)同步兩次。
這樣我們的同步就完成了。
這里需要注意的是MIS..MIS.CONTRACT_PROJECT 這里必須要大寫(xiě),如果是小寫(xiě)的話(huà)會(huì)造成同步失敗。
1.所謂的物化視圖,
2手工寫(xiě)TRIGER,
3.通過(guò)ORACLE的CDC工具可以實(shí)現(xiàn)同步或者異步的表的變化。
4。關(guān)于你說(shuō)的表三和表一表二之間同步,俺沒(méi)有明白。猜測(cè)是對(duì)表一表二做ETL,然后放到表三中。只對(duì)增量進(jìn)行抽取和轉(zhuǎn)換。如果是這樣。通過(guò)上面的一二三步之一后。對(duì)增量進(jìn)行抽取和轉(zhuǎn)換。
ETL是個(gè)比較復(fù)雜也好玩的東西。多種方式可以實(shí)現(xiàn),但是相互影響較大。容易顧此失彼。比如說(shuō)管理和性能的平衡問(wèn)題就是其中之一。
新聞標(biāo)題:oracle怎么同步,oracle表同步
轉(zhuǎn)載來(lái)于:http://chinadenli.net/article10/hsgodo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、關(guān)鍵詞優(yōu)化、標(biāo)簽優(yōu)化、品牌網(wǎng)站制作、網(wǎng)站建設(shè)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)