首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何验证Postgre中新创建的备份是否健康?

如何验证Postgre中新创建的备份是否健康?
EN

Stack Overflow用户
提问于 2021-11-05 10:30:46
回答 1查看 25关注 0票数 1

我的Asp.net核心应用程序通过cmd运行命令来执行数据库备份(Postgree v13)。根据例程,一些参数被传递给函数并执行备份,但如果在过程中出现问题并损坏,则没有返回参数来通知这一点(至少到目前为止是这样)。Hj我在一个客户端的系统中遇到了这个问题,这个客户端在格式化服务器之前发誓要做一个备份,但当他去恢复它时,它被损坏了。这是非常尴尬的!

问题:

1-有没有办法确保创建的备份完好无损?2-有没有办法让pg_dump返回一个参数,这样我就可以处理返回并防止生成损坏的备份或显示错误消息?

代码语言:javascript
运行
复制
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;
    }

}
EN

Stack Overflow用户

回答已采纳

发布于 2021-11-05 11:14:29

完成后获取进程的ExitCode

如果为0,则pg_dump已成功完成。如果不是,则存在错误。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69851856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档