2013-10-21 97 views
0

我有一個19 GB的.sql文件,這是一個MySQL數據庫的轉儲。恢復巨大的MySQL轉儲文件到MS SQL Server 2008

我怎麼能把它安裝到MS SQL服務器?這只是將19 GB文件加載到管理工作室並擊中F5的問題嗎?

我無法訪問原始MySQL數據庫或其運行的服務器。

謝謝。

+1

假設你的mysql的東西沒有使用任何特定於mysql的功能,比如group_concat()之類的,那麼是的,你應該能夠加載.sql文件,等待一個** LONG **時間爲它加載,然後運行它。 –

+0

因此,如果有特定於mysql的命令,我是否需要即時重寫?有沒有這樣的工具? –

+0

你會更好地預處理轉儲文件,使其更通用,而不是即時的。 19gig是一個非常大的轉儲文件,如果部分文件泄露了,那麼浪費了很多服務器時間。 –

回答

2

我會這樣做。

  1. 將MySQL數據庫還原到MySQL服務器。
  2. 設置從MS SQL到MySQL
  3. 鏈接的服務器做一個SELECT * INTO destinationTable會從linkedserver.dbo.sourcetable

唯一這裏的問題是,你需要確保指數的定義等是重建。

如果沒有很多工作,MySQL備份文件將無法在MSSQL中運行。

+0

謝謝你。我會給你一個鏡頭。我認爲我的.SQL文件無論如何都被損壞了,我無法在Wordpad或SQL Server中打開它。我得到這個錯誤:錯誤HRESULT E_FAIL已經從調用COM組件返回。 –

+0

如果您需要更多信息,請大聲呼叫,例如查詢MySQL上的INFORMATION_SCHEMA.TABLES並使用它來編寫SELECT INSERT語句的腳本。看到這個鏈接的更多信息http://stackoverflow.com/questions/10859966/how-to-convert-all-tables-in-database-to-one-collat​​ion/10860122#10860122 – Namphibian

+1

我還會補充說,一旦你得到它到mySQL你可以檢查它,看看是否有列或整個表,你不需要帶過來。您也可以考慮將任務分解爲更小的模塊:確定通過外鍵相關的表格(如果有)並將它們導入到一起。如果一切順利,請繼續閱讀更多表格。這減少了在很長時間失敗的操作後您必須重新開始的可能性。 – AllInOne