2009-11-16 53 views
1

我们的应用程序需要大量数据,其中大部分数据称为事务,主要是时钟输入和输出员工信息,其中大部分信息都被处理并存储在另一个表中。多年来,这些数据可能会增长。我正在考虑将备份数据转换为文本文件,并且如果从这些文本文件导出它们,导出将从数据库中清除数据。现在,数据处于可以归档等文本文件中。这是我看到的其他软件的想法......那你的建议....C#大数据备份策略来释放数据库

几个点:

  • 我会独自离开数据库,因为它可以或不可以有dba,并且涉及数据库可能有很多解决方案。当我们将应用程序部署到客户时,我最不想与dba交谈,并参与讨厌的东西......所以我可以告诉他们一年后,“嘿数据库的大小太多了”,所以现在只需转储到文本或XML文件,并清除表是一次解决方案。报告运行了另一个主表..我想在长就像在4年内运行一样,我可能有一个庞大的数据库,并且表中有大量的事务处理,因为员工在每个时间轮班X次,每次轮班时间在blaaahhh X ...所以如果他们可以按照每月或每过一个月的文本文件转储。 ..即
+0

您使用的是哪种类型的数据库。什么OS?这是重要的信息。 – captncraig 2009-11-16 18:17:32

+0

另外,您是否有DBA或必须充当DBA的开发人员? 根据您对之前评论的回答:您是在谈论桌面软件或RDBMS(如SQL Server,Oracle,MySQL等)中的嵌入式数据库。 此外,这是您销售的产品,还是仅供您使用的内部应用程序? – jeffa00 2009-11-16 18:23:16

+0

WINDOWS,数据库可以是任何主要的oracle或sql服务器 – abmv 2009-11-17 05:35:53

回答

0

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

    在没有DBA应用程序
  1. 嵌入式数据库 - MS访问,伯克利DB等
  2. 网络RDBMS(有或没有DBA) - SQL服务器,Oracle,MySQL和等

我的直觉反应是基于你说的话是因为你没有DBA。

在第一种情况下(没有DBA的嵌入式数据库),然后导出到文本文件很好。你可能会考虑XML,因为它几乎包含了它的元数据内联和纯文本。这可以在一定程度上对未来进行证明,因为一个新人可以很容易地找出归档数据中的内容。你会想要建立你想要保留数据多久以及应该销毁数据的准则。如果你是一家上市公司,可能有你需要尊重的法律。

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

你可以去你的想法导出文本文件。你可以对表进行分区并分区分区(这取决于RDBMS的方式 - Oracle是表空间,SQL Server是文件组,我不知道MySQL)。您可以将第二个数据库作为存档数据库或实际数据仓库。

另一种选择是引入合同DBA来帮助分拣。

1

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

如果您只需要对旧数据运行定期报告,则可以将数据移动到单独的归档数据库中。基本上,只需创建一个现场生产数据库的副本。在副本中,只需删除您希望保留在实时系统中的最近条目。在实时生产数据库中,删除将保留在存档数据库中的数据。您从本质上修剪您的数据库并将旧数据移入您的存档数据库。我已经使用这种技术与供应商的时间编写应用程序,每隔几年就会减慢抓取速度,因为它不是用来保存存储在其中的数据量的。 Fortunatley,我们可以将应用程序指向我们运行报告所需的任何数据库。

0

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

+0

它不是关于你如何做它关于stategy – abmv 2009-11-17 05:45:41