跨多个独立的dtsx软件包共享公共远程数据库连接

时间:2013-02-27 15:13:57

标签: ssis global-variables remote-access synonym

后台: Server1 包含4个表的源数据库。 Server2 是具有4到5个表(以及一些额外字段)的目标数据库。在将数据从Server1移动到Server2之前,我们进行了字段映射和一些额外的处理(即截断,连接,...)。我们有4个独立的dtsx软件包 - 每个软件包一个,并且有一个SQL作业,它按顺序逐个调用每个dtsx软件包。

平台:SQL 2005& SSIS 2005

  

现在,您可能会猜测每个dtsx包都会复制一个“源”   和连接管理器中的“目标”数据库连接。当我们改变   我们要更改连接的远程目标数据库中的任何设置   每个dtsx - 保持远程数据库连接的选项有哪些   信息在一个地方?

这是我知道的一些 -

  1. 创建一个父dtsx ,它将按顺序调用每个4个dtsx(与在job中完成的相同)并传递在此(父)包中定义的连接变量({{3} })。但这意味着工作中的单个dtsx包步骤将来不易调试(目前我们可以轻松识别哪个步骤失败 - 因此哪个表/ dtsx有问题)

  2. 有点传统但有效 - 使用数据库同义词。我们已经在数据比较SP中使用了一些远程表的同义词。如果我创建4个新的同义词 - 每个远程表一个。我可以通过它们的同义词直接在dtsx中引用这些表。稍后如果发生任何变化 - 我需要更改并重新运行将删除并重新创建同义词的脚本(我也可以远程执行此操作!)

  3. 我做简单的dtsx设计和编程,所以请原谅我的知识,让我知道最好的方法。

1 个答案:

答案 0 :(得分:1)

您要找的是Package Configurations

基本上,配置值只是SSIS中某些属性的存储键/值对(例如,连接管理器的连接字符串。)

您可以将其存储为多种格式(请参阅链接) - 我个人使用XML文件,因为我有一个支持团队来处理部署并且他们“获取”文件。

然后每个包只在自己的配置中引用该XML文件。当程序包运行时,它将使用该连接的连接字符串的值,因此每个程序包将使用XML文件中的任何内容(或您选择的任何配置格式。)

基本步骤:

  1. 在包中创建连接。
  2. 在SSIS下 - >在Package Configurations中,选择“Enable package configuration”,选择“Add ..”,选择你想要的格式,选择连接的连接字符串属性,保存配置。
  3. 在其他3个软件包中,转到同一区域,选择“添加..”,这次浏览到您创建的配置,它会要求您使用软件包中的内容覆盖该配置中的值或重用现有(意味着保留您已创建的值) - 选择“重用现有”。命名,保存。
  4. 查看上面的链接了解更多信息,这就是你想要的。