利用SQLServer2005復(fù)制功能實(shí)現(xiàn)與Oracle數(shù)據(jù)庫同步方法

利用SQLServer2005復(fù)制功能實(shí)現(xiàn)與Oracle數(shù)據(jù)庫同步方法

ID:40512627

大?。?7.79 KB

頁數(shù):4頁

時(shí)間:2019-08-03

利用SQLServer2005復(fù)制功能實(shí)現(xiàn)與Oracle數(shù)據(jù)庫同步方法_第1頁
利用SQLServer2005復(fù)制功能實(shí)現(xiàn)與Oracle數(shù)據(jù)庫同步方法_第2頁
利用SQLServer2005復(fù)制功能實(shí)現(xiàn)與Oracle數(shù)據(jù)庫同步方法_第3頁
利用SQLServer2005復(fù)制功能實(shí)現(xiàn)與Oracle數(shù)據(jù)庫同步方法_第4頁
資源描述:

《利用SQLServer2005復(fù)制功能實(shí)現(xiàn)與Oracle數(shù)據(jù)庫同步方法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、利用SQLServer2005復(fù)制功能實(shí)現(xiàn)與Oracle數(shù)據(jù)庫同步在項(xiàng)目中經(jīng)常會(huì)遇到一個(gè)項(xiàng)目操作幾個(gè)數(shù)據(jù)庫的情況,若是同種類型的數(shù)據(jù)庫也還好說,可以直接鏈接兩個(gè)數(shù)據(jù)庫,也可以用數(shù)據(jù)庫的同步功能。若我們的項(xiàng)目使用SQLServer2005進(jìn)行開發(fā),而且項(xiàng)目中要用到Oracle數(shù)據(jù)庫中的數(shù)據(jù),那么又該怎么實(shí)現(xiàn)拉?一般來說方案有以下幾種。1.分別建立鏈接對(duì)數(shù)據(jù)庫進(jìn)行操作,SQLServer可以用ADO.NET,操作Oracle可以用OLEDB或者用System.Data.OracleClient(需要添加引用才能用)這種方案的優(yōu)點(diǎn)就是

2、簡單,各自寫各自的數(shù)據(jù)庫操作代碼,缺點(diǎn)就是不能將兩個(gè)數(shù)據(jù)庫中的表直接進(jìn)行聯(lián)合查詢,鏈接Oracle的每臺(tái)機(jī)器必須安裝OracleClient才可以使用。2.使用同義詞操作Oracle數(shù)據(jù)庫。這種方法的具體操作我在以前的文章中已經(jīng)寫清楚了,這樣做一來可以進(jìn)行表的聯(lián)合查詢,二來不需要每臺(tái)機(jī)器都安裝OracleClient,但是還是有一個(gè)缺點(diǎn):效率低,比如對(duì)同義詞使用like去查找需要的數(shù)據(jù),如果是直接連Oracle數(shù)據(jù)庫也許只要0.1秒就可以找到答案,但是用同義詞可能就要等10秒20秒或更久。原來SQLServer并不是直接把查詢語

3、句傳遞給Oracle,讓Oracle執(zhí)行操作,而是將所有數(shù)據(jù)都取到SQLServer服務(wù)器上,邊取數(shù)據(jù)邊分析,直到滿足查詢條件為止。其實(shí)這種數(shù)據(jù)放在兩個(gè)服務(wù)器上還有一個(gè)缺點(diǎn)就是一旦Oracle服務(wù)器宕機(jī),即使我們這邊的所有服務(wù)器都是好的,那么我們的程序中用到Oracle數(shù)據(jù)的地方就無法使用。3.直接鏈接Oracle數(shù)據(jù)庫+同義詞+作業(yè)+異常跳轉(zhuǎn)方式。這種方法具體講就是我們的程序直接用OLEDB(OracleClient)鏈接Oracle數(shù)據(jù)庫,同時(shí)SQLServer服務(wù)器也建立了同義詞指向Oracle,在SQLServer上建立

4、作業(yè),將同義詞中的數(shù)據(jù)拷貝到SQLServer服務(wù)器的表中。一旦Oracle宕機(jī),程序中就會(huì)捕捉到異常,于是就使用SQLServer中的數(shù)據(jù)。這樣做比較復(fù)雜,需要一定的編程,效率也不是特別高,但是優(yōu)點(diǎn)也是明細(xì)的,平時(shí)鏈接Oralce服務(wù)器,異常情況下鏈接SQLServer中的備份數(shù)據(jù),保證了程序的正常運(yùn)行。4.直接編寫一個(gè)程序,以服務(wù)或自啟動(dòng)方式一直運(yùn)行,每隔一段時(shí)間將Oracle數(shù)據(jù)庫中的數(shù)據(jù)寫到SQLServer數(shù)據(jù)庫中。這種方法就是編程復(fù)雜,具有很大難度。5.利用SQLServer2005的復(fù)制功能將Oracle數(shù)據(jù)庫中的

5、數(shù)據(jù)同步到SQLServer服務(wù)器中,程序只操作SQLServer,不鏈接Oracle數(shù)據(jù)庫。這種方法不需要編寫任何代碼,由于只對(duì)SQLServer進(jìn)行查詢,所以查詢效率高可以做多表鏈接,開發(fā)人員也不需要再裝OracleClient,也不用害怕Oracle服務(wù)器宕機(jī)導(dǎo)致我們的相關(guān)程序無法使用。優(yōu)點(diǎn)倒是很多,那么有沒有缺點(diǎn)拉?缺點(diǎn)還是有的,主要是取得的數(shù)據(jù)不是實(shí)時(shí)的數(shù)據(jù),Oracle那邊的數(shù)據(jù)更新了,我們這邊還有可能是老數(shù)據(jù)。前面的四種方法我就不用多講了,這次主要是講第五種方法的具體實(shí)現(xiàn):1.安裝SQLServer復(fù)制功能。在安裝

6、SQLServer數(shù)據(jù)庫的時(shí)候選上“復(fù)制”,將“復(fù)制”功能安裝到服務(wù)器。微軟說如果第一次安裝的時(shí)候沒有裝,以后再想添加該功能只需要運(yùn)行安裝程序?qū)ⅰ皬?fù)制”選上就可以了,不過說是這么說,我試了幾次都不行,我也不知道怎么回事,為了安裝上復(fù)制,所以將SQLServer卸載了,重新安裝!這種方法很笨,不過我實(shí)現(xiàn)想不出其他辦法了,希望高手指點(diǎn)。2.設(shè)置Oracle服務(wù)器端的權(quán)限。創(chuàng)建一個(gè)用于復(fù)制用的用戶,授予下列權(quán)限:CREATEPUBLICSYNONYM和DROPPUBLICSYNONYMCREATEPROCEDURECREATESEQU

7、ENCECREATESESSION還必須直接為用戶授予下列權(quán)限(不是通過角色):CREATEANYTRIGGER。CREATETABLECREATEVIEW同時(shí)該用戶還必須對(duì)要發(fā)布的表所在表空間有UNLIMITED的權(quán)限,還要針對(duì)每個(gè)要用于同步的表設(shè)置Select權(quán)限。3.SQLServer服務(wù)器上安裝OracleClient10g必須安裝了才可以鏈接Oracle服務(wù)器,不推薦安裝Oracle9i,即使我們要鏈接的Oracle是9i的。安裝完成以后重啟SQLServer服務(wù)器。用PLSQL或其他工具測(cè)試一下是否可以鏈接到Orac

8、le服務(wù)器。4.設(shè)置SQLServerAgent權(quán)限在SQLServer服務(wù)器上新建用戶,將該用戶加為管理員,在“服務(wù)”中找到“SQLServerAgent”,將其啟動(dòng)用戶改為該用戶,重啟該服務(wù)。5.配置分發(fā)打開ManagementStudio右鍵“復(fù)制”節(jié)點(diǎn),

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。