zoukankan      html  css  js  c++  java
  • 在64位Win2008 Server 系统上部署SSIS包遇到的问题及解决办法

    前一段时间在项目中使用SSIS做数据抽取,在最后的包部署过程中遇到了一些问题

    包部署服务器环境:Win2008 Server 64bit,SQL Server 2008 R2

    包部署方式:文件方式  + 作业定时执行

    在服务器上过程中包执行总是提示失败,通过查Sql SERVER 帮助文档得知开发环境使用的是Win7 32bit编译,如果在64 bit系统仍以32位版本运行需要在 Integration Services 包的“项目属性”——“调试”页上设置 Run64BitRuntime 属性的值为 False 。(在64位系统上默认为True),修改后,包在Integration Services上执行成功。将包以文件方式部署到服务器上,在部署后使用作业调度执行包时又报错。在SQL Server 帮助文档这样描述:

    64 位计算机上的安装注意事项

    在 64 位计算机上,Integration Services 将安装 64 位版本的 dtexec 实用工具 (dtexec.exe)。如果需要以 32 位模式运行某些包,则必须安装 32 位版本的 dtexec 实用工具。若要安装 32 位版本的 dtexec 实用工具,必须在安装过程中选择“客户端工具”或 Business Intelligence Development Studio。

    默认情况下,同时安装了 64 位和 32 位版本的 Integration Services 命令提示实用工具的 64 位计算机将在命令提示符处运行 32 位版本。运行 32 位版本的原因是:在 PATH 环境变量中,32 位版本的目录路径显示在 64 位版本的目录路径之前。(通常,32 位目录路径是 <驱动器>:\Program Files(x86)\Microsoft SQL Server\100\DTS\Binn,而 64 位目录路径是 <驱动器>:\Program Files\Microsoft SQL Server\100\DTS\Binn。)

    注意:

    如果使用 SQL   Server 代理来运行此实用工具,则 SQL Server 代理会自动使用 64 位版本的实用工具。SQL Server 代理使用注册表(而非 PATH 环境变量)来找到此实用工具的正确可执行文件。

    SQL Server作业在执行SSIS包时默认调用了64bit版本的dtexec工具,所以包执行失败。后来按照帮助文档的说明修改环境变量将32bit版本执行目录提到64bit前,但在使用SqlServer作业调用包时仍然执行失败。帮助文档中已经注明:“如果使用 SQL Server 代理来运行此实用工具,则 SQL Server 代理会自动使用 64 位版本的实用工具。SQL Server 代理使用注册表(而非 PATH 环境变量)来找到此实用工具的正确可执行文件。”为了不修改注册表那么麻烦,所以采用了Windows命令方式执行包,使用dtexec  /f “C:\包文件路径\包名”命令,将此命令保存为bat文件,在作业中将直接调用包文件改为调用已保存的bat文件,运行Sql Server代理,作业执行成功,包执行成功。感觉这是一种变通的做法,不知道官方还有什么方法。

  • 相关阅读:
    困扰几周了,请教啊,android与websevice数据交互很诡异的问题
    最新版本_adt-bundle-windows-x86_64-20140702 无法建立avd
    android向web提交数据,中文乱码
    activity怎么控制fragment中的textview组件
    关于云储存或者百度云的基础问题, 用java/android 实现上传文件到云储存(比如百度云)
    短信列表如何让同一个号码的短信只显示一条,刚刚加载短信列表会加载所有的数据列。求指教
    Android图片上传到服务器的问题
    安卓模拟器这么慢,大家都怎么调试的?
    浏览器前缀-----[译]Autoprefixer:一个以最好的方式处理浏览器前缀的后处理程序
    windows 下安装nodejs及其配置环境
  • 原文地址:https://www.cnblogs.com/jamyxu/p/2849623.html
Copyright © 2011-2022 走看看