0

我需要对生产 SQL Server 2008 数据库进行故障排除,因此我只想导出/备份其中包含的最近 3 个月的数据,以便将其导入测试 SQL 框并尝试解决那里的问题。生产和测试 SQL Server 位于两个不同的林/域中。你能告诉我什么是更好的方法吗?

提前非常感谢!

4

2 回答 2

2

你问的不可能

除非您在每个单独的表中都有时间戳,否则不可能识别“最近 3 个月的数据”。

即使您确实有时间戳,仅尝试从时间戳在过去 3 个月内的所有表中提取所有行也可能导致状态不一致。例如,您可以有一个 Customer 表和一个 Orders 表。给定客户可能已有 5 个月大,但该客户可能有 1 天前的订单。拉 1 天订单但不拉它引用的 5 个月大的客户将导致没有客户的订单。

简而言之,在一般情况下,我看不出如何从实时数据库中执行此操作。如果您有一个相当简单的架构,请分享它。也许有针对您的具体情况的解决方案。

替代

如果无法对数据进行切片,并且您关心的是数据量,请考虑以不同的方式对数据进行切片。也许为 10% 的客户或类似的东西提取数据。如果您共享您的架构(假设它不是太复杂),我可以提出更具体的建议。

于 2012-07-30T18:56:17.210 回答
0

您需要使用时间戳,编写自己的迁移代码,遍历每个表并获取最近 3 个月的数据并转储到新数据库中。

于 2012-07-30T18:59:06.543 回答