3

我有 12 个数据库,总计大约 1.0TB,每个数据库都位于运行 SQL 2005 Enterprise 的不同物理服务器上——所有数据库都具有完全相同的架构。我需要将这些数据卸载到单独的单个数据库中,以便我们可以将其用于其他目的(报告、Web 服务等),延迟时间最长为 1 小时。

还应该注意的是,这些服务器都在同一个机架中,通过千兆连接进行连接,并且对数据库的插入最少(平均 2500 条记录/小时)。当前方法非常不稳定:当前正在将数据从 12 台服务器中的每台复制(SQL Server 事务复制)到另一台服务器上的数据库(是的,来自 12 台不同服务器的 12 个不同员工表复制到不同服务器上的单个员工表中)服务器)。

每个表都有一个主键,并且所有表中的行都是唯一的(每个表中都有一个 FacilityID)。

我有哪些选择?必须有一个简单的方法来做到这一点。

4

3 回答 3

2

SQL Server Transactional Replication 有什么问题,很多地方都在用?看起来它设置得很好,每个数据库中都有一个 FacilityID?

于 2010-03-29T13:04:46.927 回答
1

根据您要处理的表的数量,设置一些从每个表中移动数据的 SSIS ETL 包可能会更容易。如果您设置了包配置并且架构相同,那么您应该能够为所有数据库使用相同的包集。如果你有超过 10-20 个表,我可能不会做 ETL 包,或者我会确保它们的创建以某种方式自动化。

于 2010-03-29T20:46:04.033 回答
0

由于您拥有 Enterprise Edition 并且具有数据大小和您提到的相同架构,一种方法可能是使用分区表,目标服务器上的每个不同源 1 个,您可以将 [FacilityID] 列用于分区键的示例您提到假设这对于每个源都是唯一的,然后只需遵循用于在分区之间移动数据的正常数据移动操作,这将为您提供一个合并表(分区),您听起来像是在追求。

于 2010-03-29T13:16:03.147 回答