[译]通过存储在 64bit 环境中执行32 bit的SSIS包

最近碰到了一个众所周知的32bit的 SSIS 包在64bit的SQL Server环境的执行问题. 我看了一些解决方案,比如修改在SSDT里面修改 debug 选项(Run64BitRuntime = false) 或者建立一个job执行的时候强制以32bit方式运行. 不过我发现这些方式并不合适大型的自动化环境. 你可能在测试SSIS包的候会用这些方法 ,但是你部署到SSIS服务器的时候不一定想要这么做. 我想还有一个方法就是建立一个job, 强制包为32bit执行模式.然后建立一个脚本更改job step 来执行特定的SSIS包. 不过在我看来太麻烦,而且不够完美.

我最近还见到一个解决方案,有个客户的数据仓库管理员被要求修改一个环境变量来强制所有的SSIS包执行在32bit模式下 (官方的管理指导手册有说明)

我试过这个方法,根本没用(相信我..我已经尝试所有办法啦,没搞定) .另外你只有一个或者小部分 32bit的包,为什么要把所有的64bit包强制运行在32bit模式下. 这会影响性能.

好了,接下来说说我的处理方法.不过,对我的方法可不要深信不疑了. 看到我这篇文章的朋友们,如果有更好的更方便的方法请告诉我.

如果你用我的方案的过程中碰到任何问题请告诉我. 我们一起处理.

问题: 在64Bit的SQL server使用32Bit的包.

解决方案: 用存储过程执行SSIS包 (32 & 64 bit).

看起来还不错吧?

快速说明:

在更进一步之前,我们先来看下 syssubsystems 里面有什么.

select agent_exe, * from msdb.dbo.syssubsystems where subsystem = ‘ssis‘

Step 1: 这个存储的参数是@PackageName  , 可以传入服务器里面一个SSIS包名  – line 2

Step 2: 获得 DTExec.exe 的位置 (select * from msdb.dbo.syssubsystems where subsystem = ‘ssis’) – line 16

Step 3: 设置 SSIS 包位置 – line 24

Step 4: 检查SSIS是否是64bit – line 25.

Step 5: 验证包.  – line 27

Step 6: 如果 error message = 0 那么就是 64 bit 包,@cmd 进行64bit的设置 – line 31

Step 7: 如果 error message = 1 那么就是 32 bit 包,@cmd 进行32bit的设置 – line 33

我意识到,可能有其他情况也会导致报错. 这样的话无论包是64bit还是32bit 都会按照32bit 执行 . 不过这个没关系,反正32bit也一样执行.

Step 8: 使用 xp_cmdshell 执行包.

在一些系统执行 powershell (xp_cmdshell) 可能有些问题.我不知道你能不能用. 如果不行可以把之前的存储插入到下面代码中.

下面代码作用是执行存储时候临时开启xp_cmdshell,结束后关闭 :

资源:

脚本点这里

原文: http://www.sqlservercentral.com/articles/Integration+Services+(SSIS)/102544/

[译]通过存储在 64bit 环境中执行32 bit的SSIS包

时间: 2024-08-05 18:34:02

[译]通过存储在 64bit 环境中执行32 bit的SSIS包的相关文章

linux环境中执行Mysql脚本

1.首先进入shell~ 2.进入服务器后,输入mysql -h localhost -u root -p,进入MySql: 3.输入MySql密码: 4.将脚本复制到服务器,具体怎么做,可以用Xftp; 5.例如,我执行的test.sql,在/usr/local/test.sql目录下,在shell中输入source /usr/local/test.sql linux环境中执行Mysql脚本,布布扣,bubuko.com

Python学习教程(Python学习路线):教你如何在交互式环境中执行Python程序

Python学习教程(Python学习路线):教你如何在交互式环境中执行Python程序 相信接触过Python的伙伴们都知道运行Python脚本程序的方式有多种,目前主要的方式有:交互式环境运行.命令行窗口运行.开发工具上运行等,其中在不同的操作平台上还互不相同.今天,小编讲些Python基础的内容,以Windows下交互式环境为依托,演示Python程序的运行. 一般来说,顺利安装Python之后,有两种方式可以进入Python交互性环境.一种是在Python自带的IDLE中直接打开交互式窗

Eclipse中执行Hbase所需jar包

Eclipse中执行Hbase程序需要导入的jar包如下: 1 Hadoop全部jar包 2 Hbase部分jar包 Hbasejar包不能多也不能少,多了会冲突,少了会提醒找不到相应类,Hbase这些jar包整理了一下如下图所示:

PHP在Linux下Apache环境中执行exec,system,passthru等服务器命令函数

若在服务器中使用php test.php运行exec,system,passthru等命令相关的脚本能成功运行,在web页面却没反应,则 查看下apache的error_log日志,一般是这几个函数 system() has been disabled for security reasons in /var/www/html/test.php on line 34 报错了. 看下php.ini中的disable_functions 有没有禁用了这些函数,删除禁用后保存. 重启下php和Apac

在生产环境中安全执行更新删除SQL脚本的技巧

今天在生产环境上解决问题,由于广发银行的管理制度是开发公司是不允许确生产环境的,所以我们只能把要更新的语句发给运营中心,由运营中心的投产人员执行,我们则在旁边看着:在他执行的时候发现了一个很有趣的技巧,现在分享出来. 我们知道每一次在生产环境中执行中执行更新删除语句的时候都要格外小心,要做好数据备份,但是即便这样对于一个做了分库分表设计,有十几个G的库来说更新一句SQL后发现忘记写WHERE语句或是语句写错了,恢复备份的成本都是相当高的. 我注意到运营中心的人在拿到我的SQL语句后,把它放到MS

Gnome Terminal,Xshell等终端模拟器中执行命令出现乱码问题解决

一.前言 Xshell跟Gnome Terminal相比,两者都是终端模拟器(在Xshell中也可以执行简单的内置命令,如"cd","ls"等),地位相同. 二.原理分析 涉及到乱码,那么需要了解编码解码过程.在终端模拟器中执行命令,通信过程示意图如图1所示. 图1 在以上通信过程中,在"命令执行单元"处发生了一系列的编码解码过程,在"终端模拟器"处也发生了一系列的编码解码过程,此外,我们常常创建SSH连接,从而建立一个远端S

Linux中执行shell脚本命令的4种方法总结

bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: 复制代码 代码如下: cd /data/shell ./hello.sh ./的意思是说在当前的工作目录下执行hello.sh.如果不加上./,bash可能会响应找到不到hello.sh的错误信息.因为目前的工作目录(/data/shell)可能不在

Linux中执行shell脚本的4种方法总结

bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: 复制代码 代码如下: cd /data/shell ./hello.sh ./的意思是说在当前的工作目录下执行hello.sh.如果不加上./,bash可能会响应找到不到hello.sh的错误信息.因为目前的工作目录(/data/shell)可能不在

Linux中执行shell脚本的4种方法

这篇文章主要介绍了Linux中执行shell脚本的4种方法总结,即在Linux中运行shell脚本的4种方法,需要的朋友可以参考下. bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/root/bin目录中并已有执行权限(添加权限的方法:chmod +x hello.sh). 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: ./ 的意思是说在当前的工作目录下执行hello.sh.如果不加上