我继承了在Windows Server 2003上运行的SQL Server 2008 R2环境。我不知道它是从SQL Server 2005升级还是新建的系统。由于无法对物理服务器进行虚拟化的问题,决定在虚拟服务器上构建新的相同环境,将数据库等迁移到新的虚拟服务器。我们确实做了一次升级,那就是将Windows Server 2012放在新服务器上。我们保持实例名称和服务器名称相同(这些在我们将旧的物理服务器脱机后进行了修改)。我在新服务器上保持文件路径和文件夹名称相同。我使用Integration Services中的“导出”选项将SSIS包从旧服务器迁移到新服务器(右键单击包> Export Package)。这些包存储在旧服务器上的MSDB中。我将配置文件从旧服务器复制到新服务器,并将它们保存在与旧服务器上存储的文件相同的文件位置。好的,所以这是我的问题。当我启动所有SQL代理作业时,使用SSIS包的几个作业失败了。在研究了这个问题后,我 发现它是由于SQL提供程序字符串(Provider = SQLNCLI)设置为Provider = SQLNCLI.1,这是针对SQL Server 2005.一旦我将其更改为Provider = SQLNCLI10,一切都很好。需要注意的是,使用Provider = SQLNCLI.1的其他软件包工作得很好。我正在吃的问题是,当SQLNCLI.1应该是SQL 2005中使用的设置时,为什么这些包在运行相同版本的SQL Server的旧服务器上成功运行?为什么有些包成功运行仍然使用SQLNCLI.1和其他必须改变??
答案 0 :(得分:0)
某些包的执行取决于该文件的结构。 在新版本中重新定义了一些任务或某些表达式或某些参数。