C#大数据备份策略释放数据库

C#大数据备份策略释放数据库,c#,database,C#,Database,我们的应用程序需要大量的数据,其中大部分被称为事务,大部分是员工的打卡和打卡信息,大部分被处理并存储在另一个表中。随着时间的推移,这些数据可能会增长。我正在考虑将数据备份到文本文件,并从这些文本文件中导出数据(如果有的话),导出将清除数据库中的数据。现在数据是可以存档的文本文件等…这是我看到的其他软件的想法…你的建议如何 几点: 我会把数据库放在一边,因为它可能有一个dba,也可能没有dba,而且可能有很多解决方案涉及到数据库。当我们在客户处部署应用程序时,我最不想和dba谈一谈,卷入那些讨厌

我们的应用程序需要大量的数据,其中大部分被称为事务,大部分是员工的打卡和打卡信息,大部分被处理并存储在另一个表中。随着时间的推移,这些数据可能会增长。我正在考虑将数据备份到文本文件,并从这些文本文件中导出数据(如果有的话),导出将清除数据库中的数据。现在数据是可以存档的文本文件等…这是我看到的其他软件的想法…你的建议如何

几点:

  • 我会把数据库放在一边,因为它可能有一个dba,也可能没有dba,而且可能有很多解决方案涉及到数据库。当我们在客户处部署应用程序时,我最不想和dba谈一谈,卷入那些讨厌的事情中……所以我可以在一年后告诉他们“嘿,数据库太大了”因此,现在只需将数据转储到文本或xml文件中,并清除表即是解决方案。报告从另一个主表中运行..我想从长远来看,就像4年后一样,我可能会有一个巨大的数据库,其中表中有大量事务,因为员工每班X个时钟在Blaaahh中增长X。。。因此,如果他们可以每月或任何时候跟踪转储到文本文件。。。。i、 e

SQL Server 2008支持表的分区


这对你来说可能是一个可行的策略。这可能是我最喜欢的SQL2008新功能。

我认为这取决于您需要如何访问旧数据


如果只需要对旧数据运行定期报告,可以将数据移动到单独的存档数据库中。基本上,只需创建实时生产数据库的副本。在副本中,只需删除要保留在live系统中的最新实体。在实时生产数据库中,删除将保留在存档数据库中的数据。实际上,您需要定期修剪数据库,并将旧数据移动到归档数据库中。我曾在一家供应商的时间写作应用程序中使用过这种技术,该应用程序每隔几年就会慢到爬行,因为它不是为保存存储在其中的数据量而设计的。幸运的是,我们可以将应用程序指向运行报告所需的任何数据库。

我将根据您环境的具体情况,尝试将我的答案分为两种

  • 应用程序中的嵌入式数据库没有DBA——MS Access、Berkely DB等
  • 网络化RDBMS(有或没有DBA)——SQL Server、Oracle、MySQL等
  • 根据你的措辞,我的直觉反应是你没有DBA

    在第一种情况下(没有DBA的嵌入式数据库),则可以导出到文本文件。您可能会考虑XML,因为它几乎包含了元数据的内联和纯文本。这在某种程度上可以证明你的未来,因为一个新人可以很容易地找出归档数据中的内容。您可能希望为数据的保留时间和销毁时间制定指导原则。如果你是一家上市公司,你可能需要遵守相关法律

    在第二种情况下(网络化RDBMS),您应该遵从DBA的数据保留要求。DBA应该对此有一个计划。如果您没有DBA,那么您有几个选项

    你可以按照你的想法导出文本文件。您可以对表进行分区并滚动分区段(这取决于RDBMS的操作方式——Oracle将是表空间,SQL Server将是文件组,我对MySQL一无所知)。您可以有第二个数据库作为归档数据库或实际的数据仓库


    另一种选择是引入合同DBA来帮助解决问题。

    您使用的是什么类型的数据库。什么操作系统?这是很重要的信息。另外,您是否有DBA或必须担任DBA的开发人员?根据您对前面评论的回答:您是在谈论桌面软件中的嵌入式数据库还是RDBMS(如SQL Server、Oracle、MySQL等)。此外,这是您销售的产品,还是仅供您使用的内部应用程序?WINDOWS、数据库可以是任何类型,主要是oracle或sql server