2013-05-15 64 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

相关问题