【问题标题】:Quickly changing SSIS-packages data source parameters for easy migration快速更改 SSIS 包数据源参数以便于迁移
【发布时间】:2014-02-09 06:35:13
【问题描述】:

我需要将 SQL 数据库从 Sybase 迁移到 MS SQL Server。在生产服务器上进行实际迁移之前,我首先使用 SQL Server Management Studio 的导入/导出向导创建了一个 SSIS 包,用于测试其他数据库。测试迁移成功,我现在想将我的 SSIS 包部署到真实服务器。

但是,我似乎不能简单地在 Management Studio 中运行该包,为其选择不同的数据源 - 它只能在为其创建它的相同数据库上运行。现在,它可以在称为 SQL Server 商业智能开发工作室(或简称 BIDS)的东西中进行编辑(我使用的是 SQL Server 2008 版本),但是要通过每个数据流任务手动更改目标源,每个 ~ 150我正在移动的表无效,并且还引入了出错的可能性。

我有没有办法快速更改 SSIS 包的所有流任务中的所有目标源要使用的数据源?如果没有,有什么简单的方法可以先用测试数据库测试迁移,然后在部署时简单地更改数据源?

我使用的是 ODBC 数据源,但对于某些包,它会在 BIDS 中显示 OLE 源。

我希望我已经足够清楚了。如果您还有其他问题,请询问!谢谢!

【问题讨论】:

  • 您是否尝试过对数据库连接字符串使用表达式?可以通过变量来设置。
  • 更改数据库连接字符串至少在源类型保持不变的情况下有效。切换到生产时,我还将从 OLE 数据源切换到 ODBC 数据源。我不知道更改连接字符串是否就足够了。我真的不知道不同的源类型有什么不同。
  • 您需要动态更改连接管理器的提供程序吗?您在测试中的 Provider 类型是什么?您需要在生产中使用什么类型?示例可以是(测试)“Native OLE\DB SQL Server Native Client 10.0”和(产品)“.Net\Providers\Odbc Data Provider”

标签: sql-server ssis odbc bids


【解决方案1】:

我会为连接管理器的 ConnectionString 属性使用一个变量。包级配置对于完成此任务非常有用。有几种方法可以做到这一点。我更喜欢在 SQL Server 中使用包含所有包的所有配置的表。如果您有多个包并且需要跨多个包动态更改一组连接管理器,这将特别有效。

基本步骤是:

  1. 在您的 SSIS 设计图面上单击反向并选择“Package Configurations...”
  2. 创建配置类型“SQL Server”的包级配置
  3. 将连接存储在 SQL Server 的配置表中
  4. 更改您的 Connection Manager 以使用 ConnectionString 属性的变量
  5. 通过包级别配置从配置表中填充该变量
  6. 当需要从测试切换到生产时,只需更新配置表中的连接字符串

这些屏幕截图可以帮助...

这是我使用本书实现的一个更大的包管理框架的一部分:

Microsoft SQL Server 2008 Integration Services: Problem, Design, Solution

我强烈推荐它。应该用不到一天的时间来设置它。本书有分步说明。

This question and its associated answers also helpful.

【讨论】:

  • 我注意到,当我使用向导创建一个新的 SSIS 包时,它现在在 BIDS 中显示为我想要的 ODBC 源。以类似的方式,您和@Gowdhaman008 建议我通过变量更改配置,我可以通过右键单击连接管理器窗口中的源并选择编辑来简单地测试包。由于某种原因,不能将 OLE 源更改为 ODBC 源,反之亦然。我会接受你的回答。尽管这不是我所做的,但它在此过程中对我有所帮助,并且可能对将来发现此问题的任何人都有效。 (而且制作精良!)
  • 祝您好运,感谢您发布您为回答问题所做的实际工作。很多时候人们没有做到这一点,这使得圈子不完整。
猜你喜欢
  • 1970-01-01
  • 2017-12-30
  • 2017-05-26
  • 1970-01-01
  • 2017-05-06
  • 2017-08-24
  • 2012-07-26
  • 1970-01-01
  • 2013-07-27
相关资源
最近更新 更多