在SQL Server中存档大量旧数据

时间:2011-05-19 01:38:25

标签: sql tsql sql-server-2008

非常简单的问题。

我有一个70gb的大型数据库,其中包含五个表中的四个,每个表包含大约5000万行。这些表包含大约6年的数据。我们的数据库空间限制在80gb,我们将在接下来的6个月左右快速接近。

我们只需要在实时数据库中保留大约两年的数据。在不使实时数据库脱机(它是24/7数据库)的情况下,归档旧数据的最佳方法是什么?

我们使用共享存储使用主动 - 被动设置在群集环境中运行SQL Server 2008 R2 Standard。

感谢。

1 个答案:

答案 0 :(得分:9)

当您说存档时,这意味着“需要保留数据供以后使用”。

除此之外,如果数据现在不可用,那么如果您依赖磁带备份,则可能会失去它。此外,您需要有磁盘空间以便将来恢复它。

这些当然不是不可克服的问题,但除非事情是关键的,否则我会将数据保持在线,直到证明不是这样。我的经验表明,当你最不期望的时候,民众想要存档数据......

一个选项(问题标记为SQL Server 2008)是compression of data。例如,您可以压缩联机的归档表。

创建存档表。

SELECT * INTO ANewArchiveTable
FROM CurrentTable
WHERE SomeDateColumn <= DATEADD(year, -2, GETDATE())

或使用partitioning来实现相同的

如果数据在线,您可以进一步减少“当前”表,并且在压缩存档表/分区中的数据也比3个月更早

相关问题