使用SSIS复制大量非常大的数据库的最佳实践

时间:2013-04-05 14:48:10

标签: sql-server database ssis replication

我的任务是在内部在线获取我们的SQL Server 2005/2008数据库副本,并每天更新它们。每个站点的连接都受到管制,因此不能选择在线访问。现场数据库是工作组许可的。主服务器是Enterprise,有一些淫秽的处理器和RAM。副本的目的有两个:(1)在线备份和(2)ETL到数据仓库的源。

大约有300个数据库,大部分都是相同的模式,遍布美国,加拿大和墨西哥。当前数据库大小介于5 GB和1 TB之间。活动各不相同,但每台服务器上每天约有1,500,000个新行,大多数在2个表中。每个约50个表。每个站点的连接质量和带宽各不相同,但主站点有足够的带宽可以并行执行多个站点。

我在考虑SSIS,但不知道除了逐个表之外如何处理这个任务。任何人都可以提供任何指导吗?

1 个答案:

答案 0 :(得分:0)

老实说,我建议使用SQL复制。我们这样做了很多,它甚至可以通过拨号工作。它基本上最小化了所需的流量,因为只传输了变化。

有几种拓扑结构。我们只使用合并(双向),但事务可能适合您的需求(单向)。

我们的环境是一个单一的中央数据库,可以(使用过滤的复制文章)复制到各种站点数据库。中央数据库是发布者。它很稳健,一旦到位,但对于架构升级是一种麻烦。

但是,如果您的数据库不是同类的,则可能更容易将其设置为远程站点是发布者的位置,并且中央SQL实例具有每个站点数据库,该站点数据库是站点发布者的订阅者。这些文章甚至不需要过滤。然后,您可以集中处理各个站点数据。

请注意,站点数据库需要安装复制组件(在安装程序中它们通常是可选的)。要设置为发布者,他们还需要本地配置(在每个配置上配置分发)。作为工作组版,它可以充当发布者。 SQL Express不能充当发​​布者。

这听起来很复杂,但它实际上只是程序性的,并且是一种内置的机制来做这种事情。