我正在创建一个Web应用程序。 在该应用程序中,我需要备份许多MySQL数据库。
为此,我创建了一个选项,它可以在小型数据库上正常工作但是低谷例外
Out of memory exception
用于大型数据库。
注意: - Web服务器和数据库服务器上都有足够的可用磁盘空间。
还有一段时间它工作得非常好,有时它会创建1 kb大小的备份文件。
public static string DatabaseBackup(string ExeLocation,
string DBName,
string Ip,
string Uid,
string Pass,
string FileNm)
{
string status = "";
try
{
StreamWriter file = new StreamWriter(FileNm);
ProcessStartInfo proc = new ProcessStartInfo();
string cmd = string.Format(@"-u{0} -p{1} -h{2} {3}", Uid, Pass, Ip, DBName);
proc.FileName = ExeLocation;
proc.RedirectStandardInput = false;
proc.RedirectStandardOutput = true;
proc.Arguments = cmd;
proc.UseShellExecute = false;
proc.CreateNoWindow = true;
Process p = Process.Start(proc);
string res;
res = p.StandardOutput.ReadToEnd();
file.WriteLine(res);
p.WaitForExit();
file.Close();
status = "OK";
}
catch (Exception ex)
{
status = ex.Message;
}
return status;
}
任何人都可以帮助我解决问题,如何解决这两个问题。
答案 0 :(得分:1)
如果您正在阅读的文件比您的可用内存大,则会抛出异常。在本文中查看如何处理大型文件以及如何防止内存不足异常C# FileStream : Optimal buffer size for writing large files?