Integration Services Catalogue下无SSIDB如何查找SSIS项目包
SSIS包查找与SSIDB不显示问题解决
从正在运行的SQL代理作业反向溯源是最快的定位方式,无需盲目查找目录:
- 打开SQL Server代理,定位到调用SSIS包的作业,查看对应作业步骤详情:
- 若步骤类型为
SQL Server Integration Services包,打开步骤配置页直接查看「包源」字段:- 包源为
SSIS目录:属于SSIDB加载异常,参考下方排查项处理 - 包源为
文件系统:配置页会直接标注包的完整路径,默认非目录部署的文件系统包常存放在C:\Program Files\Microsoft SQL Server\<对应SQL版本号>\DTS\Packages路径下,也可能存放在配置指定的自定义共享文件夹 - 包源为
SSIS包存储区:为旧版SSIS的默认存储模式,包分别存放在MSDB系统库和上述默认文件系统路径中 - 包源为
SQL Server:包直接存储在msdb系统库的系统表中
- 包源为
- 若步骤类型为
SSIDB文件夹不显示的排查点
- 权限问题:SSIS目录的权限独立配置,即便是sysadmin角色账号,未被单独授予
ssis_admin角色或对应文件夹的浏览权限时,不会显示目录下的内容,右键点击Integration Services目录节点给当前登录账号分配对应权限即可 - 目录未创建:在对象资源管理器的「数据库」节点下检查是否存在
SSISDB数据库,如果不存在,说明当前实例从未初始化过Integration Services目录,所有运行的SSIS包均为非目录模式部署,不需要在这个节点下查找 - 服务异常:打开系统服务列表,找到对应实例的
SQL Server Integration Services服务,确认服务处于正常运行状态,服务未启动时目录节点会加载失败
全量检索实例上所有SSIS包的方法
- 查询MSDB系统库存储的包:在对应实例执行如下T-SQL,可列出所有存放在MSDB中的SSIS包信息
USE msdb GO SELECT f.foldername AS 存储文件夹名, p.name AS SSIS包名, p.description AS 包描述, CASE p.packagetype WHEN 6 THEN 'SSIS 2012及以上版本包' ELSE 'SQL 2008R2及更早版本SSIS包' END AS 包版本类型 FROM sysssispackages p INNER JOIN sysssispackagefolders f ON p.folderid = f.folderid
- 检索文件系统中的包:按SQL版本找到对应DTS默认存储目录,或直接在服务器盘符搜索后缀为
.dtsx的文件,可扫到所有存放在文件系统中的SSIS包 - 作业脚本溯源:右键SQL Server代理节点,选择「生成脚本」导出所有作业的定义,搜索
dtsx、/ISSERVER、/FILE等SSIS调用关键字,可直接定位每个作业调用的包的实际存储位置,不受部署模式限制

内容的提问来源于stack exchange,提问作者vicky
相关产品推荐
相关产品推荐

