Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据库监控应用程序&x27;s架构_C#_Winforms_Architecture_Windows Services - Fatal编程技术网

C# 数据库监控应用程序&x27;s架构

C# 数据库监控应用程序&x27;s架构,c#,winforms,architecture,windows-services,C#,Winforms,Architecture,Windows Services,我的任务是开发一个用于监控/备份服务器上数据库的应用程序 应用程序应该做到这一点 备份并在指定时间将备份复制到指定地点(用户可以更改时间和地点) 在给定时间发送有关已完成备份的电子邮件通知,如果发生错误,请报告详细信息 所有备份参数都应该是可编辑的 从给定位置读取数据库凭据 所以我想到了一个windows服务,它可以由windows窗体应用程序配置。我走的方向正确吗?有很多产品都是专门为此设计的。与自己开发、测试、排除故障等相比,获得现有产品(有适当的支持)更容易,也可能更便宜。 Oracl

我的任务是开发一个用于监控/备份服务器上数据库的应用程序

应用程序应该做到这一点

  • 备份并在指定时间将备份复制到指定地点(用户可以更改时间和地点)
  • 在给定时间发送有关已完成备份的电子邮件通知,如果发生错误,请报告详细信息
  • 所有备份参数都应该是可编辑的
  • 从给定位置读取数据库凭据

所以我想到了一个windows服务,它可以由windows窗体应用程序配置。我走的方向正确吗?

有很多产品都是专门为此设计的。与自己开发、测试、排除故障等相比,获得现有产品(有适当的支持)更容易,也可能更便宜。 Oracle已为其数据库实施了备份和恢复功能,请参阅

此外,IIRC Windows服务的设计目的不是与表单通信(或以其他方式),因此您的建议可能不会如您预期的那样起作用。请注意以下案文:

从Windows Vista开始,服务无法直接与用户交互。因此,标题为“使用交互式服务”的部分中提到的技术不应在新代码中使用


您可以在没有第三部分软件的情况下完成此操作。假设每个RDBMS都带有一些工具集,即命令行工具。其中之一是(可以?)备份/恢复。现在您可以做什么:

  • 编写一个批处理文件来执行此任务
  • 为将运行该批处理的windows任务计划程序创建任务(是的,您可以通过任务计划程序发送电子邮件)

  • 我打赌有很多第三方产品正是为了这个目的而制造的,为什么要重新发明轮子呢?更不用说有些数据库产品内置了这个功能。你能给我指一些吗?@user49126如果你告诉我你使用的是哪些数据库,我可以在回答中提供一些名称。我们使用Oracledatabase@user49126我在我的答案中添加了一个可能很有趣的选项。