SSISDB8:使用SSISDB记录的消息Troubleshoot packages
SSISDB 系列随笔汇总:
- SSISDB1:使用SSISDB管理Package
- SSISDB2:SSIS工程的操作实例
- SSISDB3:Package的执行实例
- SSISDB4:当前正在运行的Package及其Executable
- SSISDB5:使用TSQL脚本执行Package
- SSISDB6:参数和环境变量
Package的每一次执行(Execution),集成服务引擎都会在SSISDB中创建唯一的操作实例(Operation) 和 执行实例(Execution),实例都有唯一的ID进行标识。跟SSIS工程操作相关的是操作实例,跟Package的运行相关的是执行实例。Package的每次执行都会生成一个唯一的ExecutionID,并记录执行实例运行的结果和状态。在每个Execution Instance中,Package都会执行Task或Container,每一个Task或Container都是一个Executable,SSISDB会记录每个Executable执行的状态。
一,创建转存文件
转存文件(dump file)主要用于Package的开发阶段,用于对Package进行测试和故障排除。转存文件默认存储在ErrorDumps文件夹下:C:\Program Files\Microsoft SQL Server\110\Shared\ErrorDumps,扩展名是.tmp和 .mdmp,前者是以文本格式存储,该文件会记录Package执行实例的最近的消息,后者是而二进制文件。
创建转存文件,有两种方式:
- 第一种方式:使用特殊的执行参数,配置执行实例,当Package在运行过程中出现错误,或者错误事件被触发时,集成服务引起自动创建转存文件。
- 第二种方式:在Package正在运行(running)时,调用 catalog.create_execution_dump 存储,暂停当前的执行实例,创建转存文件。
1,为正在运行的Package创建转存文件
调用存储过程:catalog.create_execution_dump,暂停正在执行的Package,创建转存文件。一旦成功创建转存文件,那么package将会终止运行。
exec catalog.create_execution_dump [ @execution_id = ] execution_id
2,在执行Package之前,设置执行参数
通过设置Package执行实例的配置参数:DUMP_ON_ERROR,在Package运行出现错误时,自动创建转存文件。
exec catalog.set_execution_parameter_value
@execution_id = @package_execution_id
, @object_type = 50
, @parameter_name = 'DUMP_ON_ERROR'
, @parameter_value = 1
二,查询执行实例
执行实例都会对应一个操作实例,执行实例是Package的一次执行,该Package可能会调用其他Package。每个Package都会执行其包含的可执行组件(Executable),处理数据;集成服务引擎会记录Package和可执行组件的状态。
1,查询执行实例
select e.execution_id,
e.folder_name,
e.object_type,
obt.object_type_descr,
e.project_name,
e.package_name,
opt.operation_type_descr,
e.created_time,
ops.operation_status_descr as execution_status,
e.caller_name,
e.start_time,
e.end_time
from catalog.executions e
inner join helper.OperationType opt
on e.operation_type=opt.operation_type
inner join helper.ObjectType obt
on e.object_type=obt.object_type
inner join helper.OperationStatus ops
on e.status=ops.operation_status
order by e.start_time desc
2,查询Executable
select e.executable_id,
e.package_name,
e.package_path,
e.executable_name,
--e.executable_guid,
er.execution_result_descr,
es.execution_duration/1000/60 as execution_duration_m,
cast(es.start_time as datetime) as start_time,
cast(es.end_time as datetime) as end_time,
es.execution_value
from catalog.executables e
inner join catalog.executable_statistics es
on e.executable_id=es.executable_id
and e.execution_id=es.execution_id
inner join helper.ExecutionResult er
on es.execution_result=er.execution_result
where e.execution_id=23537
order by es.end_time desc
三,查看Execution的资源消耗
如果一个 执行实例正在运行,处于running 状态,可以通过函数 catalog.dm_execution_performance_counters(@execution_id) 查看资源利用情况,该函数返回12个performance counter,统计该running execution自开始执行到现在为止的信息。
select e.execution_id,
e.folder_name,
e.project_name,
e.package_name,
e.start_time,
epc.counter_name,
epc.counter_value
from catalog.executions e
cross apply catalog.dm_execution_performance_counters(e.execution_id) as epc
where e.status=2 --running
order by e.execution_id,
epc.counter_name
四,在package执行错误时,查看失败的Executable
select e.folder_name,
e.project_name,
opt.operation_type_descr as operation,
obt.object_type_descr as object_type,
ops.operation_status_descr as operation_status,
et.package_name,
et.package_path as executable_path,--relative path
--es.execution_path as executable_full_path,
et.executable_name,
cast(es.execution_duration/1000/60.0 as decimal(10,1))as duration_m,
er.execution_result_descr as execution_result,
es.start_time
--,es.end_time
from catalog.executions e
inner join helper.OperationType opt
on e.operation_type=opt.operation_type
inner join helper.ObjectType obt
on e.object_type=obt.object_type
inner join helper.OperationStatus ops
on e.status=ops.operation_status
inner join catalog.executables et
on e.execution_id=et.execution_id
inner join catalog.executable_statistics es
on et.executable_id=es.executable_id
and et.execution_id=es.execution_id
inner join helper.ExecutionResult er
on es.execution_result=er.execution_result
where e.execution_id=23537 --Specified ExecutionID
and es.execution_result=1 -- 1 (Failure)
--and et.package_name=N'PackageName.dtsx'
order by et.package_name
,es.start_time desc;
附,helper 辅助表
关于helper 辅助表,请参考《SSISDB2:Operation》的“Appendix”
参考文档:
Views (Integration Services Catalog)
catalog.set_execution_parameter_value (SSISDB Database)
SSISDB8:使用SSISDB记录的消息Troubleshoot packages的更多相关文章
- SSISDB8:查看SSISDB记录Package执行的消息
在执行Package时,SSISDB都会创建唯一的OperationID 和 ExecutionID,标识对package执行的操作和执行实例(Execution Instance),并记录opera ...
- 【RabbitMQ学习记录】- 消息队列存储机制源码分析
本文来自 网易云社区 . RabbitMQ在金融系统,OpenStack内部组件通信和通信领域应用广泛,它部署简单,管理界面内容丰富使用十分方便.笔者最近在研究RabbitMQ部署运维和代码架构,本篇 ...
- 使用.net的跟踪诊断来记录wcf消息
首先在项目的config文件中定义以下结点: <system.diagnostics> <sources> <source name="System.Servi ...
- 使用rosbag记录openni2_launch消息
首先看教程 http://wiki.ros.org/openni_launch/Tutorials/BagRecordingPlayback http://wiki.ros.org/Bags http ...
- SSISDB7:查看当前正在运行的Package
在项目组中做ETL开发时,经常会被问到:“现在ETL跑到哪一个Package了?” 为了缩短ETL运行的时间,在ETL的设计上,经常会使用并发执行模式:Task 并发执行,Package并发执行.对于 ...
- SSISDB4:当前正在运行的Package及其Executable
SSISDB 系列随笔汇总: SSISDB1:使用SSISDB管理Package SSISDB2:SSIS工程的操作实例 SSISDB3:Package的执行实例 SSISDB4:当前正在运行的Pac ...
- SSISDB7:当前正在运行的Package及其Executable
PM问:“Vic,现在ETL Job跑到哪一个Package了,正在执行哪个Task?”,第一次遇到这个问题时,一下就懵逼了,只能硬着头皮说:“我看看”. 在做项目开发时,这个问题很常见,但是,被很多 ...
- 【.net 深呼吸】记录WCF的通信消息
前面老周给大伙伴们介绍了把跟踪信息写入日志文件的方法,今天咱们换个类似的话题来扯一下,对了,咱们就说说怎么把WCF的往来消息log下来吧. 尽管在现实生活中,我们不主张偷窥他人信息,不过,偷窥程序信息 ...
- SSISDB1:使用SSISDB管理Package
SSISDB 系列随笔汇总: SSISDB1:使用SSISDB管理Package SSISDB2:SSIS工程的操作实例 SSISDB3:Package的执行实例 SSISDB4:当前正在运行的Pac ...
随机推荐
- iOS SQLite3的使用
1.创建可修改的数据库文件 //应用包内的内容是不可写的,所以需要把应用包内的数据库拷贝一个副本到资源路径去 - (void)createEditableDatabase{ BOOL success; ...
- HDU5800 To My Girlfriend(DP)
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5800 Description Dear Guo I never forget the mom ...
- 【SRM】518 Nim
题意 \(K(1 \le K \le 10^9)\)堆石子,每堆石子个数不超过\(L(2 \le 50000)\),问Nim游戏中先手必败局面的数量,答案对\(10^9+7\)取模. 分析 容易得到\ ...
- Android RecyclerView 的简单使用
Android L SDK发布的,新API中最有意思的就是RecyclerView (后面为RV) 和 CardView了, 按照官方的说法, RV 是一个ListView 的一个更高级更灵活的一个版 ...
- iOS tableview自定义cell上添加按钮实现删除功能
在删除的时候,先删除数据源,再删除cell 但是,会发现一直崩: numberOfRowsInSection 解决方案:
- 创建Chrome启动器
今天清理垃圾时不知怎么把chrome启动器删除了,现在要重新创建一个 1.在桌面创建一个chrome.exe的快捷键方式,属性更改目标为: "C:\Program Files (x86)\G ...
- js中字符串相关知识点总结
有引号就是字符串类型 空格也算长度 字符串的length不可写 typeof 判断数据类型 var s="a bcadde你好" // alert(typeof s) ...
- [IOS]使用了cocoapods 抱错Pods was rejected as an implicit dependency for ‘libPods.a’ because its architectures ......
Pods was rejected as an implicit dependency for ‘libPods.a’ because its architectures ‘i386’ didn’t ...
- Kafka设计解析(四)- Kafka Consumer设计解析
本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/08/09/KafkaColumn4 摘要 本文主要介绍了Kafka High Level Con ...
- 理解MVC,MVP和MVVM设计模式
有3个非常受欢迎的MV-*系列设计模式:MVC,MVP,MVVM.他们被广泛应用于不多种结束.这篇文章我回阐述我自己对这3个设计模式的看法. MVC模式: MVC即Model-VIew-Control ...