我有12个数据库,大约总共1.0TB,每个数据库都在运行SQL 2005 Enterprise的不同物理服务器上 - 所有这些数据库都具有相同的模式。我需要将这些数据卸载到一个单独的数据库中,以便我们可以将其用于其他目的(报告,Web服务等),最多延迟1小时。
还应注意,这些服务器都在同一个机架中,通过千兆位连接进行连接,并且数据库的插入最小(平均2500条记录/小时)。 当前的方法非常简单:数据当前正从12个服务器中的每个服务器复制(SQL Server事务复制)到另一个服务器上的数据库(是的,12个不同的员工表从12个不同的服务器到不同的单个员工表)服务器)。
每个表都有一个主键,所有表中的行都是唯一的(每个表中都有一个FacilityID)。
我有什么选择? 必须有一种简单的方法来做到这一点。
答案 0 :(得分:2)
SQL Server事务复制有什么问题,很多地方都使用它?看起来它设置得很好,每个数据库都有一个FacilityID?
答案 1 :(得分:1)
根据您正在处理的表的数量,可能更容易设置一些从每个表移动数据的SSIS ETL包。如果您设置了包配置并且架构相同,那么您应该能够为所有数据库使用相同的包集。如果你有超过10-20个表,我可能要么不做ETL包,要么确保它们的创建是以某种方式自动化的。
答案 2 :(得分:0)
由于您拥有Enterprise Edition并且数据大小与您提到的相同模式一样,一种方法可能是使用Partitoned表,1表示目标服务器上的每个不同源,例如,您可以使用分区键[您提到的FacilityID]列假设这对于每个源都是unqiue,然后只是跟随用于在分区之间移动数据的正常数据移动操作,这将为您提供一个合理的表(分区),您听起来就像在追求。