2013-05-15 98 views
0

我的任務是編寫數據傳輸實用程序,一項要求是將整個MySQL數據庫從一臺服務器複製到另一臺服務器。用戶只需要在需要進行數據庫傳輸時單擊一個按鈕。在.NET中將整個數據庫從一臺服務器複製到另一臺服務器

我對數據庫有點缺乏經驗,但我與他們合作足夠知道如何做我需要做的事情。這樣做的最快方法是什麼?

我最初的想法是這樣:

  1. 獲取所有表的列表
  2. 的foreach表,讓每一個表的所有內容,並將它們在一個DataTable在內存中存儲
  3. 備份所有舊錶到CSV文件
  4. 截斷所有舊錶
  5. 將相應服務器上的新數據表到相應的數據庫

有沒有更好,更有效的方法來做到這一點?

+4

你嘗試搜索 「MySQL的備份恢復」 谷歌? –

回答

0

DataTables佔用了相當多的內存。隨着數據庫規模的增長,這種方法要小心,這種方法可能會填滿你的記憶。我會看看使用mysql命令行來備份/恢復並從代碼中調用這些命令。

使用的Process.Start方法=>

Process process = new Process(); 
// Configure the process using the StartInfo properties. 
process.StartInfo.FileName = "process.exe"; 
process.StartInfo.Arguments = "-n"; 
process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized; 
process.Start(); 
process.WaitForExit();// Waits here for the process to exit. 
+0

所以你會推薦使用cmd.exe來做一個mysqldump? – kformeck

+0

你可以,或者你也可以使用Process.Start。它有一個WaitForExit命令,它將阻止當前線程,直到mysqldump完成。 –

+0

David:MySQL命令行界面的進程名稱是什麼? – kformeck

相關問題