维护计划生成的SSIS包存储在哪

首先理解导入导出包的基本概念:
http://technet.microsoft.com/zh-cn/library/ms141772(v=SQL.110).aspx
包既可以保存在SQL Server msdb数据库的sysssispackages表中,也可以保存在文件系统中。
包存储区是Integration Services服务监视和管理的逻辑存储区,它包括在Integration Services服务的配置文件中指定的msdb数据库和文件系统。
我们创建包含两个子计划的维护计划MaintenancePlanTest,如下图所示:

--与维护计划及作业相关的表

1 --包存储区MSDB下的信息
2 select * from msdb.dbo.sysssispackagefolders
3 select * from msdb.dbo.sysssispackages
4 --记录维护计划的子计划信息
5 select * from msdb.dbo.sysmaintplan_subplans--每一个子计划对应一个job,在一个子计划下添加多个任务并不会在job中表现为多个steps
6 select * from msdb.dbo.sysmaintplan_log--在维护计划运行后,会在此表中进行记录
7 select * from msdb.dbo.sysjobs--相关的作业信息
8 select * from msdb.dbo.sysjobsteps--相关的作业步骤
9 select * from msdb.dbo.sysjobschedules--相关的作业调度

--图例中在MSDB下产生的维护计划及作业信息

 1 select spf.foldername,sp.name,sps.subplan_name,sps.subplan_description
 2       ,sj.job_id,sj.name,sjs.step_name,sjs.subsystem,sjs.command
 3 from msdb.dbo.sysssispackagefolders spf--包存储区MSDB下的信息
 4 INNER JOIN msdb.dbo.sysssispackages sp--包存储区MSDB下的信息
 5 ON spf.folderid=sp.folderid
 6 INNER JOIN msdb.dbo.sysmaintplan_subplans sps--每一个子计划对应一个job
 7 ON sp.id=sps.plan_id
 8 INNER JOIN msdb.dbo.sysjobs sj--相关的作业信息
 9 ON sps.job_id=sj.job_id
10 INNER JOIN msdb.dbo.sysjobsteps sjs--相关的作业步骤
11 ON sj.job_id=sjs.job_id
12 ORDER BY sp.id,sps.subplan_name,sjs.step_id


--删除维护计划涉及的过程

1 execute msdb.dbo.sp_maintplan_delete_plan
2 execute msdb.dbo.sp_maintplan_delete_subplan
3 execute msdb.dbo.sp_maintplan_delete_log
4 execute msdb.dbo.sp_delete_job

SQL Server 的维护计划生成的SSIS包,存储在哪个位置?

使用“维护计划”(“设计”选项卡)可以指定维护计划及其子计划的属性。将任务从工具箱拖到计划设计器中。右键单击任务组以创建分支执行路径。维护计划将另存为 Integration Services包,它们由SQL Server代理作业执行。在“设计”选项卡,每一个子计划对应一个job。通过查看作业属性对应步骤下面包源为SQL Server。
因此推断维护计划生成的SSIS包是保存在msdb库sysssispackages表中,而非文件系统。
可通过在对象资源管理器中连接到Integration Services(服务器名称应该填写计算机名)。然后展开'已存储的包'-->MSDB-->右击对应包-->导出-->包位置选择'文件系统'即可导出后缀为.dtsx形式的SSIS包。当然也可以直接迁移维护计划。
通过查看作业步骤属性:

类型SSIS,包源:SQL Server、文件系统、SSIS包存储区 分别对应的命令行
/SQL "Maintenance Plans\MaintenancePlan" /SERVER "tcp:127.0.0.1,1433" /CHECKPOINTING OFF /SET "\Package\Subplan_1.Disable";false /REPORTING E
/FILE "C:\Documents and Settings\Administrator\My Documents\新建包.dtsx" /CHECKPOINTING OFF /SET "\Package\Subplan_1.Disable";false /REPORTING E
/DTS "\MSDB\Maintenance Plans\MaintenancePlan" /SERVER SERVERNAME /CHECKPOINTING OFF /SET "\Package\Subplan_1.Disable";false /REPORTING E
扩展:
通过'SQLServer导入和导出向导'导数据,选项'保存SSIS包'若选择SQL Server则保存到msdb数据库下(可通过在对象资源管理器中连接到Integration Services查看,右键单击该包并选择“运行包”,即可执行数据导入导出);若选择文件系统则保存到指定路径的.dtsx文件。

posted @ 2013-12-20 13:25  Uest  阅读(2987)  评论(0编辑  收藏  举报