我需要一些帮助。我有一个750GB的生产数据库。(是的,是的,这个问题可能解决得更快,但它高于我的工资等级)数据库包含了数年来的数据。
目前的要求是
将较旧的数据移动(而不仅仅是复制)到单独的存档数据库以提高生产性能。也就是说,这些行将从生产中永久删除。这将定期进行-我建议每月滚动一次。我不知道存档数据库是否会在另一台服务器上—它可能在,也可能不在。
设计一个报告环境,使其包含归档和生产数据库的联合。关键在于,由生产数据组成的部分必须每天至少更新一次。此环境可能不在生产服务器上(但我可能错了!)
为了解决这个问题,我们假设模式在任何地方都是相同的:)所有表都有一个主键-一个int非空标识(1,1)。我们确实能够通过SAN制作生产的快照拷贝。必须保留主键。
到目前为止所考虑的
我们已经考虑了复制和日志传送,但这两种方法都不足以使报表数据库成为生产和归档数据库的联合体。
我们考虑过分区视图,但主键是标识,因此不起作用:(
我们已经考虑过分区,但我不赞成每天都需要数百Gig I/O的ETL(我们不能用这种方法利用SAN快照)。
最后,我正在考虑一种定制的应用程序方法,它将模拟sql server复制所完成的一些功能,但功能比框中的功能更具体。我真的想避免做一些非常习惯的事情。
我错过了什么?这不可能是唯一的需要。

最佳答案

正如@adriamn所问,我也有同样的问题。
您有一个大表,其中有很多行不能按您的目的进行缩放,例如,由于锁定、索引等原因?
由于历史数据似乎是只读的,所以您可以很容易地将它们分为不同的表,例如按月份,这无关紧要。关键是,您可以将这些只读数据移动到不同的服务器,使用只读副本扩展它们,等等。
重要的是,您在运行时将数据划分到不同的表中,并且从数据库模式的角度来看,没有单点故障(或争用)。

07-25 21:10
查看更多