非常简单的问题。
我有一个70gb的大型数据库,其中包含五个表中的四个,每个表包含大约5000万行。这些表包含大约6年的数据。我们的数据库空间限制在80gb,我们将在接下来的6个月左右快速接近。
我们只需要在实时数据库中保留大约两年的数据。在不使实时数据库脱机(它是24/7数据库)的情况下,归档旧数据的最佳方法是什么?
我们使用共享存储使用主动 - 被动设置在群集环境中运行SQL Server 2008 R2 Standard。
感谢。
答案 0 :(得分:9)
当您说存档时,这意味着“需要保留数据供以后使用”。
除此之外,如果数据现在不可用,那么如果您依赖磁带备份,则可能会失去它。此外,您需要有磁盘空间以便将来恢复它。
这些当然不是不可克服的问题,但除非事情是关键的,否则我会将数据保持在线,直到证明不是这样。我的经验表明,当你最不期望的时候,民众想要存档数据......
一个选项(问题标记为SQL Server 2008)是compression of data。例如,您可以压缩联机的归档表。
创建存档表。
SELECT * INTO ANewArchiveTable
FROM CurrentTable
WHERE SomeDateColumn <= DATEADD(year, -2, GETDATE())
或使用partitioning来实现相同的
如果数据在线,您可以进一步减少“当前”表,并且在压缩存档表/分区中的数据也比3个月更早