2012-03-22 148 views
4

我了.NET腳本訪問,我需要同步就這樣結束了與另一端的LAMP服務器數據庫。目前我已經編寫了自己的CSV導出例程和一個匹配的導入程序,但是它在壓力下嘎然大裂。有沒有更有效的方法去解決這個問題?我可以將CSV導出直接流式傳輸到IIS嗎?導出SQL Server數據庫導入到Microsoft服務器

我知道,如果我有更多的特權,我可以運行BACKUP DATABASE命令,然後運行備份與FTP其他服務器,希望找到某種方式導入到MySQL這一點。但是,這不是一個選項。

+0

你能解釋爲什麼@ ta.speot.is的建議答案不被你接受嗎?你能解釋一下你*做的特權嗎? – eggyal 2012-05-15 16:46:00

+0

@eggyal我有有限的FTP訪問權限和上傳.aspx.vb腳本的能力。 – Fuser97381 2012-05-15 18:59:53

+0

而且你無法連接服務器,因爲...? – eggyal 2012-05-15 19:52:13

回答

5

如果MySQL可以從MSSQL服務器訪問,那麼你可以在MSSQL中創建一個鏈接服務器,MERGEINSERT,UPDATE或任何到MSSQL內的MySQL表中。

+0

MySQL不可訪問。 – Fuser97381 2012-05-15 23:47:24

4

我做了類似的事情。最簡單的方法是直接連接MSSQL服務器和MySQL服務器。您將MSSQL中的鏈接服務器設置爲MySQL服務器,然後使用插入,更新等操作來處理鏈接服務器。這就是ta.speot.is在他的回答中提到的。但是你沒有直接鏈接到MySQL服務器,所以這個選項是不可行的。

另一種選擇是使用MSSQL服務的經紀人。藉助服務代理,您可以將各個更新,刪除和插入到Web服務中。這個webservice可以託管在IIS上。 Web服務將從隊列中調用,然後您可以將單個事務一次一個地應用到MySQL數據庫。服務代理是嵌入MSSQL 2005+中的異步消息傳遞系統。有了它,你可以發送消息到其他服務器,數據庫甚至外部服務。

只要記住服務代理體系需要時間來學習和實施。我已經在使用服務代理的情況下在mssql和mysql之間創建了自定義複製體系結構,該服務代理每天在Celeron筆記本電腦上處理8800萬次事務。它只是用了一些嚴重的手肘油脂。

UPDATE 好像SQL2008允許你以某種方式運行服務代理SQL服務器之外。看到這個鏈接http://blogs.msdn.com/b/sql_service_broker/archive/2008/11/21/announcing-service-broker-external-activator.aspx我不知道這可能是你的街道。

+0

你能通過.net建立一個服務代理嗎? – Fuser97381 2012-05-17 10:40:17

+0

沒有服務代理是所有的SQL。您需要在MSSQL服務器上執行此操作。 – Namphibian 2012-05-17 10:42:56

+0

那就沒有骰子了。儘管感謝有趣的回答。 – Fuser97381 2012-05-17 11:26:36

4

您可以編寫具有.NET的DataReader上打開MS SQL遊標,然後使用連接到MySQL按行插入數據行的另一個連接的腳本。您可以按順序處理所有表格。

3

相反的CSV,文件生成適合於MySQL服務器

0

我不知道這是否會幫助上運行的SQL腳本,但很長一段時間以前,我創建了一個小軟件來實現這個特定任務的大數據集,那就是:

http://csvimporter.codeplex.com/

我做到了開源:)

希望它能幫助。

相關問題