我在本地开发环境做好的包,假如数据源设置的是A服务器,以sa帐号进行登录,也保存了sa密码,这个包在我本地是可以正常执行的,但我把包部署到B服务器的SSIS目录下,执行包时就报错提示sa登录失败。也就是说我现在的包只能跟数据源在同一台sqlserver服务器,没法分开部署了。
有遇到过类似问题或知道解决方案吗?
不用传统的包部署(Package Deployment)方式,你使用项目部署,管理和部署都十分方便,
我是直接双击的bin\Developmen\Integration Services 项目1.ispac,然后一步步的安装的。这种方式属于项目部署吧
SSIS包肯定能和数据源所在服务器分开部署的。
首先你可在B服务器上pingA服务器。如果网络没问题那可能就是A服务器上的Sql Server访问权限问题,可以找你们公司的WebMaster处理下这个权限问题。就说在B服务器上无法访问A服务器上的Sql Server。
网络都没问题,直接在A服务器的sqlserver上用sa帐号连接B服务器的SqlServer也是没问题的。
@BruceGoGo: 嗯嗯,你的SSIS包不是部署在B服务器上吗?那你得看B服务器上有没有权限访问A服务器上的Sql Server! A服务器能访问B服务器上的DB,不代表B服务器能访问A服务器上的DB。
@~扎克伯格: 试过了,都可以互相访问。
@BruceGoGo: 那就是你的连接字符串有问题
@~扎克伯格: 在VS的开发环境下也是用的这个链接参数,都可以访问的,但部署成包就不行。
@BruceGoGo: 知道,我以前也遇到过,用那个自动生成的链接参数有问题,你到网上找下看能不能找到正确的链接字符串
@~扎克伯格: 昨天折腾了一整个下午加晚上,百度无果才来这的。今天还是想把这个问题消灭掉。感觉这个部署工具好坑
@~扎克伯格: 另外请教下你,我把ETL配置到Job里,每天定时某个时间点执行1次,如何保证从OLEDB源每次同步的数据不会重复同步到OLEDB目标?在OLEDB源上写delete from 目标表?
@BruceGoGo: 请教不敢当,同步无非就是插入和更新两个操作,可以根据条件加个判断,如果目标表存在此条数据就update,否则就insert。不需要去delete 目标表