0

我继承了在 Windows Server 2003 上运行的 SQL Server 2008 R2 环境。我不知道它是从 SQL Server 2005 升级而来,还是新构建的系统。由于无法虚拟化物理服务器的问题,决定在虚拟服务器上构建一个新的、相同的环境,并将数据库等迁移到新的虚拟服务器。我们确实决定进行一次升级,即在新服务器上安装 Windows Server 2012。我们保持实例名称和服务器名称相同(在我们使旧的物理服务器脱机后修改了这些名称)。我在新服务器上也保持文件路径和文件夹名称相同。我使用集成服务中的导出选项将 SSIS 包从旧服务器迁移到新服务器(右键单击包>导出包)。软件包存储在旧服务器上的 MSDB 中。我将配置文件从旧服务器复制到新服务器,并将它们保存在与存储在旧服务器上相同的文件位置。好的,这是我的问题。当我启动所有 SQL 代理作业时,有几个使用 SSIS 包的作业失败了。在研究了这个问题后,我发现这是由于 SQL 提供程序字符串 (Provider=SQLNCLI) 设置为 Provider=SQLNCLI.1,它适用于 SQL Server 2005。一旦我将其更改为 Provider=SQLNCLI10,一切都很好。需要注意的是,其他使用 Provider=SQLNCLI.1 并且工作正常的包。困扰我的问题是,为什么这些包在运行 SQLNCLI 时运行相同版本 SQL Server 的旧服务器上成功运行。

4

1 回答 1

0

一些包的执行取决于这个文件的结构。这些是在新版本中重新定义的一些任务或一些表达式或一些参数。

于 2015-08-10T19:15:48.487 回答