SSIS 包是否可以在一个 SQL Server 实例上运行但处理位于另一个 SQL Server 实例上的数据?在尝试安装 SSIS 并可能需要在另一台服务器上重新启动之前,我想知道这一点。
我想这样做是因为 Microsoft 建议不要在群集环境中运行 SSIS。为了避免出现问题,我安装了另一个带有 SSIS 的 SQL Server 2005 实例来运行为我们的会计系统提供的包。
答案1
是的,这是完全有可能的。您可以在 SSIS 包中定义与大量外部数据源的连接。SQL Server、Oracle、Excel、平面文件等。
刚刚想起在 64 位环境中通过 SSIS 连接 Excel 时遇到的一个问题。您需要在 64 位 SQL 框上安装 32 位客户端工具才能与 Excel 交互。这对我们来说有点痛苦...
以下是MSDN 文章描述了如何将连接管理器添加到您的 SSIS 包中,并提供了各种类型的受支持的连接管理器的链接。
答案2
由于 SSIS 是一个提取、转换和加载工具,您希望它可以访问另一台服务器上的数据!
看看 Kirk Hasselden 的 SSIS 书。里面有一个很棒的演练。你也许可以在网上找到一些其他教程。
掌握基础知识后,请查看这个包,它非常棒:
http://www.sqlmag.com/Articles/ArticleID/95385/pg/3/3.html
微软在哪说不要在群集服务器上运行 SSIS?它说不要群集服务,但我没有看到反对它的建议。
答案3
Phill,我认为你错了,微软不建议在集群环境中运行 SSIS。事实上,他们不建议将其配置为集群资源,但在多个集群节点上运行多个单独的 SSIS 实例是可以的
http://msdn.microsoft.com/en-us/library/ms345193.aspx
Integration Services 服务不是群集或群集感知服务,并且不支持从一个群集节点到另一个群集节点的故障转移。因此,在群集环境中,Integration Services 应作为独立服务安装在群集中的每个节点上并启动。
...
但是,如果高可用性是您建立群集硬件环境的目标,则无需将 Integration Services 服务配置为群集资源即可实现此目标。要从群集中的任何其他节点管理群集中任何节点上的包,请修改群集中每个节点上的 Integration Services 服务的配置文件。您可以修改每个配置文件以指向存储包的所有可用 SQL Server 实例。此解决方案提供了大多数客户所需的高可用性,而不会出现将 Integration Services 服务配置为群集资源时遇到的潜在问题。
因此对于您的问题,答案是肯定的,您当然可以这样做,但是您还有更好的选择,即在集群节点上安装独立服务,这样您就不需要额外的盒子(以及备份、监控、更新的额外管理费用,如果您已经在集群上建立了所有这些程序)
答案4
我认为,如果您要做的只是使用它来存储 SSIS 包,那么安装另一个版本的 SQL Server 就太过分了。
您可以“连接”到 SQL Server 环境,也就是说,可以运行利用其他数据库作为其进程一部分的包。
您可以将您的 SSIS 实例连接到任何通过修改配置文件文件。默认情况下,它配置为指向本地实例。
您可以在集群环境中安装 SSIS。MS 建议不要将其作为集群资源运行。在集群数据库上运行 SSIS 的技巧是您需要<ServerName>.</ServerName>
在上述配置文件中指向您的虚拟 SQL Server 名称。