【问题标题】:SQL Server - Archiving Data (Strategy/Stored Procedure)SQL Server - 归档数据(策略/存储过程)
【发布时间】:2013-05-25 04:33:56
【问题描述】:

目前我们有 100 多个数据库,其中一些大小约为 10GB,包含数百万条记录,并且它们正以惊人的速度增长。我们需要评估我们的归档策略。

有没有人有任何建议和示例脚本可以遍历所有表并将数据存档到 ARCHIVED 数据库中 - 一切都经过审计(关于导入的记录数量等),如果失败,它会回滚一切?

问候

【问题讨论】:

  • 100+?桌子?千字节?记录?长颈鹿?
  • 主要是归档对于 10 多个数据库至关重要 - 大小:978 GB 记录数:所有数据库上已经有数百万。每个数据库中的表数:15-25
  • 数据结构?是否有任何现有的数据冗余方法?像镜像或复制?还有,什么版本的sql-server?
  • SQL Server 版本:2005。没有镜像或复制。对于所有表格 - 我们有一个公共字段 (ImportDate) - 我们可以将其用于归档。没有数据冗余方法。
  • 你有什么版本的 SQL Server 2005?标准?企业?如果您有企业,您可以使用分区交换进行研究。按日期字段之类的方式进行分区,然后将旧分区从表换出到表的存档版本。 Here 是一篇关于分区的好文章,以防你有 Enterprise 并且你感兴趣。

标签: sql sql-server


【解决方案1】:

分区对于在单个数据库中归档有很大帮助。滑动窗口场景是一个特殊的工具。

让我建议设置一个管理员数据库。它将处理有关归档的所有设置和信息。

可能有 2 个 SQL Server 实例:当前服务器和存档服务器。它们将具有相同的结构。

进程使用 Admin DB 中的设置将数据从远程服务器复制到存档服务器。可能需要编写动态 SQL。检查Sp_MSForEachDB

【讨论】:

    【解决方案2】:

    +1 分区的想法。添加 - 如果您有开发者版,我认为您也可以使用它

    【讨论】:

    • 您应该将此作为对 Stoleg 回答的评论
    • 我没有看到将 cmets 添加到主题的方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-18
    • 1970-01-01
    • 2010-12-24
    相关资源
    最近更新 更多