【发布时间】:2014-07-09 10:01:23
【问题描述】:
我需要一些帮助。我有一个 750 GB 的生产数据库。 (是的,是的,这个问题可能会更早解决,但它超出了我的工资等级)该数据库包含多年以来的数据。
目前的要求是
- 将旧数据移动(不仅仅是复制)到单独的存档数据库,以提高生产性能。 IE。这些行将从生产中永久删除。这将定期进行 - 我建议每月一次,滚动进行。我不知道存档数据库是否会在不同的服务器上——它可能会也可能不会。
- 塑造报告环境,使其包含存档和生产数据库的联合。问题是由生产数据组成的部分必须每天至少更新一次。这个环境可能不会在生产服务器上(但我可能错了!)
出于这个问题的目的,我们假设架构在所有地方都是相同的 :) 所有表都有一个主键 - 一个 INT NOT NULL IDENTITY (1,1)。我们确实有能力通过 SAN 制作生产的快照副本。必须保留主键。
到目前为止的考虑
- 我们已经考虑过复制和日志传送,但都不足以使报告数据库成为生产数据库和存档数据库的联合体。
- 我们考虑过分区视图,但主键是 IDENTITY,因此不起作用:(
- 我们已经考虑过分区,但我不赞成需要数百个 I/O 的每日 ETL(我们不能通过这种方法使用 SAN 快照)。
- 最后,我正在考虑一种自定义应用程序方法,该方法将模拟 SQL Server 复制所完成的某些功能,但功能比内置功能更具体。我真的想避免做一些非常习惯的事情。
我在这里缺少什么?这不可能是一个独特的需求。
【问题讨论】:
-
您要解决什么问题?即为什么 750GB 的数据库是个问题?
-
性能开始恶化,一方面。客户端应用程序每周插入数百万行。几年来,它一直以这种方式运行。我们不能限制插入的行数——这只是业务的本质。
-
@codenoire 我对此有一些想法,但它们涉及我们的商业技术,因此不适用于 stackoverflow 答案。如果您想了解更多信息,可以给我发电子邮件,我的电子邮件在我的个人资料中。
-
我猜你现在一定想出了一些解决方案。如果您能在此处添加一个答案来描述您最终做了什么以及它对您的帮助程度,那就太好了。
标签: sql-server database merge replication archive