我的 Asp.net Core 應用程式通過 cmd 運行命令來執行資料庫備份 (Postgree v13)。根據例程,一些引數被傳遞給函式并執行備份,但是如果在此程序中出現問題并且它被損壞,則沒有回傳引數來通知這一點(至少就研究而言)。Hj 我在格式化服務器之前發誓要備份的客戶的系統中遇到了這個問題,但是當他去恢復它時,它已損壞。這是非常尷尬的!
問題:
1 - 有什么方法可以確保創建的備份完整無誤?2 - pg_dump 有沒有辦法回傳一個引數,我可以處理回傳并防止生成損壞的備份或顯示錯誤訊息?
public string CreateBackup(string usuario, string senha, string servidor, string porta, string nomeBancoDados, string nomeArquivo, string diretorioComando, string diretorioBackup)
{
try
{
var pathString = Path.Combine(Directory.GetCurrentDirectory(), $"wwwroot\\" diretorioBackup);
//Verificar se existe a pasta downloads
if (!Directory.Exists(pathString))
{
Directory.CreateDirectory(pathString);
}
Environment.SetEnvironmentVariable("PGPASSWORD", senha);
string fileName = nomeArquivo "_" DateTime.Now.ToString("dd") "_" DateTime.Now.ToString("MM") "_" DateTime.Now.ToString("yyyy") "_" DateTime.Now.ToString("HH-mm") ".backup";
string backupFile = pathString "\\" fileName;
string BackupString = "-Ft -U " usuario " -h " servidor " -f " backupFile " " nomeBancoDados;
Process proc = new Process();
proc.StartInfo.FileName = "C:\\Program Files\\" diretorioComando "\\pg_dump.exe";
proc.StartInfo.Arguments = BackupString;
proc.Start();
proc.WaitForExit();
proc.Close();
return fileName;
}
catch (Exception)
{
return null;
}
}
uj5u.com熱心網友回復:
ExitCode完成后獲取行程的。
如果為 0,則pg_dump成功完成。如果沒有,則出現錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/354934.html
上一篇:根據條件顯示主頁
