C#大数据备份策略,以免费数据库

时间:2009-11-16 18:14:01

标签: c# database

我们的应用程序占用大量数据,其中大部分称为交易,主要是员工的时钟输入和时钟输出信息,其中大部分都被处理并存储在另一个表中。多年来这些数据可能会增长。正在考虑备份数据到文本文件并从那些文本文件导出它们,导出将清除数据库中的数据。现在数据是在文本文件中可以存档等...这是来自其他软件的想法我看到......你的建议怎么样......

几点:

  • 我会单独留下数据库,因为它可能有也可能没有dba,并且可能有很多涉及数据库的解决方案。当我们在客户部署应用程序时,我最不想与dba交谈并参与其中在讨厌的东西......所以我可以告诉他们一年后“嘿数据库大小太多”所以现在只需要转储到文本或xml文件并清除表是一次解决方案。报告运行另一个主表..我在思考从长远来看,就像在4年内我可能有一个庞大的数据库,表有大量的交易,因为员工在每个时钟X每班次增长X ...所以如果他们可以跟随转储到每月或每个文本文件....即

4 个答案:

答案 0 :(得分:1)

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

如果您只需要对旧数据运行定期报告,则可以将数据移动到单独的存档数据库中。基本上,只需创建实时生产数据库的副本即可。在副本中,只需删除您要在实时系统中保留的最近的内容。在实时生产数据库中,删除将保留在存档数据库中的数据。您基本上定期修剪数据库并将旧数据移动到存档数据库中。我已经将这种技术用于供应商编写应用程序的时间,该应用程序每隔几年就会慢慢爬行,因为它不是为了保存存储在其中的数据量而设计的。 Fortunatley,我们可以将应用指向我们运行报告所需的任何数据库。

答案 1 :(得分:0)

SQL Server 2008支持对表进行分区。

http://msdn.microsoft.com/en-us/library/dd578580.aspx

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

答案 2 :(得分:0)

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

  1. 您的应用程序中的嵌入式数据库,没有DBA - MS Access,Berkely DB等
  2. 联网的RDBMS(有或没有DBA) - SQL Server,Oracle,MySQL等
  3. 根据你如何处理事情,我的直觉反应是你没有DBA。

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

    在第二种情况下(联网的RDBMS),您应该遵循DBA以保留数据。 DBA应该有一个计划。如果您没有DBA,那么您有几个选择。

    您可以考虑导出文本文件。您可以对表进行分区并滚动分区段(这取决于RDBMS如何执行 - Oracle将是表空间,SQL Server将是文件组,我不知道MySQL)。您可以将第二个数据库作为存档数据库或实际数据仓库。

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

答案 3 :(得分:0)

许多数据库都可以完成这项工作。我可以提到拥有优秀C#提供商的Firebird SQL