故障排除(数据库引擎)讲解

上传人:最**** 文档编号:116387576 上传时间:2019-11-16 格式:DOC 页数:101 大小:852.50KB
返回 下载 相关 举报
故障排除(数据库引擎)讲解_第1页
第1页 / 共101页
故障排除(数据库引擎)讲解_第2页
第2页 / 共101页
故障排除(数据库引擎)讲解_第3页
第3页 / 共101页
故障排除(数据库引擎)讲解_第4页
第4页 / 共101页
故障排除(数据库引擎)讲解_第5页
第5页 / 共101页
点击查看更多>>
资源描述

《故障排除(数据库引擎)讲解》由会员分享,可在线阅读,更多相关《故障排除(数据库引擎)讲解(101页珍藏版)》请在金锄头文库上搜索。

1、故障排除(数据库引擎)1. 故障排除概念本节包含有关排除 SQL Server 数据库引擎 故障的信息。1.1 数据收集器故障排除 提供有关数据收集器常见问题的疑难解答信息。本主题解决以下类别的疑难问题: 错误情况。此类别包含对象模型和运行时错误。 性能问题。此类别包含一般和特定的性能情况。 系统挂起。此类别包含数据收集过程中发生的子组件挂起。1.1.1 错误情况错误可能会由对象模型或在运行时引发。1.1.1.1 对象模型错误数据收集器对象模型是一种托管 API,它提供一种编程方式来管理数据收集器属性和数据收集组。对象模型是为数据收集器提供配置机制的一组存储过程和视图周围的薄包装。有关详细信息

2、,请参阅数据收集器编程。对象模型错误可能来自对象模型的下列组件之一: Transact-SQL 错误由从其中一个数据收集器存储过程调用的存储过程或 Transact-SQL 代码引发。 Transact-SQL 错误由数据收集器存储过程直接引发。 托管异常由对象模型直接引发。下表说明了对象模型可能引发的错误。错误消息 错误号 说明 无法更新活动收集组 %s 的名称、目标、proxy_id 或 collection_mode。请停止该收集组,然后再次尝试将其更新。14669试图更新活动收集组。必须先停止收集组,然后才能进行任何该类型的更新。当收集组处于活动状态时,只能更改上载计划。无法删除活动收

3、集组 %s。请停止该收集组,然后再次尝试将其删除。14670试图删除正在运行的收集组。无法更新活动收集组 %s 中收集项 %s 的名称或参数。请停止该收集组,然后再次尝试更新该收集项。14671试图更新正在运行的收集组中的收集项。无法删除活动收集组 %s 中的收集项 %s。请停止该收集组,然后再次尝试删除该收集项。14672试图删除正在运行的收集组中的收集项。无法删除收集器类型 %s。请删除与此收集器类型关联的所有收集项,然后再次尝试将其删除。14673试图删除具有关联的收集项的收集器类型。无法上载非活动收集组 %s 的数据。请启动该收集组,然后再次尝试上载数据。14674试图上载由未在运行的

4、收集组收集的数据。无法更新名称、目标、proxy_id、logging_level 或 collection_mode,或者无法向活动收集组 %s 添加收集项。请停止该收集组,然后再次尝试将其更新。14675试图更新正在运行的收集组。该用户无权更改 %s。该用户必须是数据收集器角色 %s 的成员。14676用户试图更新只能由特定数据收集器角色更改的属性。该用户无权执行此操作。该用户必须是数据收集器角色 %s 的成员。14677用户试图执行某操作,但不是所需的数据收集器角色的成员。外部用户已停止并关闭了 ID 为 %d 的 SQL Server 跟踪。SQL Server 跟踪收集器将尝试重新创

5、建该跟踪。14678由数据收集器创建并使用的跟踪已在收集器运行时之外停止和关闭。此数据仓库中指定的 %s (%s) 无效。14679传递给管理数据仓库中某个存储过程的参数的值与仓库中的其他条目不匹配。只能对运行 SQL Server 2005 或更高版本的服务器执行此版本的 instmdw.sql。14680试图在运行 SQL Server 2000 或早期版本的服务器上安装管理数据仓库。禁用收集器时不能执行此过程。请启用收集器,然后重试。14681试图执行与收集器的状态相冲突的操作。收集组的状态已更改,但是只有在启用收集器后,它才能启动或停止。14682试图在未启用收集器时启动或停止收集组。

6、快照中或连续模式下的收集组需要一个计划。14683在快照中或连续模式下创建或更新收集组而未提供计划。捕捉到错误,编号: %d,级别: %d,状态: %d,过程: %s,行: %d,消息: %s14684数据收集器组件中发生一般性错误;在 catch 块中捕获到该错误并再次引发该错误。操作无效。ID 为 %d 的收集组的状态当前为“未运行”。14685针对 is_running 状态为 0 的收集组调用 sp_syscollector_create_set_queue_and_service。配置存储区的 MDWInstance 和 MDWDatabase 参数不能为 Null。14686MDW

7、Instance 或 MDWDatabase 参数的管理数据仓库连接字符串为 Null。cache_window 参数的值 (%d) 无效。允许的值为: -1 (缓存以前上载失败的所有上载数据)、0 (不缓存上载数据)、N (缓存以前 N 次上载失败的数据,其中 N = 1)14687试图将收集器配置存储区的 CacheWindow 参数的值设置为小于 -1 的值。SQL Server 代理停止时收集组无法启动。请启动 SQL Server 代理。14688试图在未启用 SQL Server 代理时启动收集组。如果未配置管理数据仓库,则收集组无法启动。请运行 instmdw.sql 脚本以创建

8、并配置管理数据仓库。14689试图在未设置管理数据仓库时启动收集组。启用收集器时无法执行此过程。请禁用收集器,然后重试。14690试图执行与收集器的状态相冲突的操作。收集器的状态不能为 Null。这可能表示收集器配置数据发生内部损坏。14691对 sp_syscollector_verify_collector_state 的调用发现 CollectorEnabled 参数的值为 Null。这可能表示收集器的配置数据发生内部损坏。1.1.1.2 运行时错误当收集包或上载包在运行中遇到问题时便会发生运行时错误。这些错误可能来自下列组件之一: SQL Server 2008 Integration

9、 Services (SSIS) 包的数据流。这些错误可能是由于数据转换失败或出现数据截断导致的。数据收集器会记录受错误影响的行号,并将其记录在数据收集器日志表中。 SSIS 包的控制流。这些错误记录在 msdb 数据库的 SSIS 日志表 (msdb.dbo.sysssislog) 中,并冒泡到数据收集器日志表中。 数据收集器运行时组件 (dcexec.exe)。这些错误直接记录在数据收集器日志表中。有关详细信息,请参阅数据收集器日志记录。我们建议采用以下方法之一获取有关运行时错误的状态信息。1.1.1.2.1 Transact-SQL 存储过程和视图若要查看所有当前正在运行和已完成的收集组

10、或包的状态,请运行以下查询:复制代码use msdbselect * from syscollector_execution_log_full上述查询将返回以下结果集。列名 说明 log_id每个收集组执行的唯一 ID。它用于将此视图与其他详细日志联接起来。parent_log_id父包或收集组的 ID。对于收集组而言,此值为 NULL。各个 ID 以父子关系链接在一起,以便可以轻松确定哪个收集组启动了哪个包。此外,此视图将日志条目按其父子链接进行分组并缩进包的名称,从而使调用链清晰可见。name该日志条目所表示的收集组或包的名称。collection_mode记录该条目时的收集组活动,即收集

11、或上载。start_time收集组或包启动的时间。last_iteration_time对于连续运行的包而言,是包上次捕获快照的时间。finish_time对于已完成的包和收集组而言,是运行完成的时间。duration包或收集组已经运行的时间(以毫秒为单位)。operator启动该收集组或包的操作员。status收集组或包的状态。此值可以为: 0 - 正在运行 1 - 已完成 2 - 失败failure_task当收集组或包失败时,导致失败的 SSIS 包中的任务的名称。package_execution_id指向 SSIS 日志表的链接。collection_set_id指向数据收集器配置表

12、的链接。注意:您可以使用 collection_set_id 作为筛选器以专注于日志中的特定收集组。 有关详细信息,请参阅 syscollector_execution_log_full (Transact-SQL)。您可以通过执行数据收集器提供的函数之一获取有关收集组和包执行的其他信息。以下函数将返回有关收集组或包的详细统计信息,包括由包记录的错误行的数目。复制代码select * from fn_syscollector_get_execution_stats(log_id)下一个函数将返回与某个包的 package_execution_id 相匹配的 SSIS 日志 (sysdtslog

13、90) 部分。如果该包失败,则这是找出错误根源的最好方式。复制代码select * from fn_syscollector_get_execution_details(log_id)1.1.1.2.2 数据收集器状态报表您可以通过查看 SQL Server Management Studio 中提供的日志获取与前面的 Transact-SQL 查询返回的信息相同的信息。有关详细信息,请参阅如何查看收集组日志。1.1.2 性能问题有三个主要的数据源可用于检查和诊断性能。首先,上一部分介绍的日志表还提供了可用于解决性能问题的有用信息。fn_syscollector_get_execution_s

14、tats 函数可返回以下信息。列名 说明 avg_row_count_in进入包的数据流任务的平均行数。min_row_count_in进入包的数据流任务的最小行数。max_row_count_in进入包的数据流任务的最大行数。avg_row_count_out退出包的数据流任务的平均行数。min_row_count_out退出包的数据流任务的最小行数。max_row_count_out退出包的数据流任务的最大行数。avg_duration在包的数据流组件中消耗的平均时间(以毫秒为单位)。min_duration在包的数据流组件中消耗的最短时间(以毫秒为单位)。max_duration在包的数

15、据流组件中消耗的最长时间(以毫秒为单位)。第二个性能数据源是 syscollector_execution_log_full 表,该表提供有关已经完成运行或正在运行的收集组所用时间的信息。最后,可以使用性能计数器来帮助评估性能问题。尤其是,数据收集器进程 (dcexec.exe) 实例的标准进程计数器为数据收集器运行时组件使用了多少系统资源提供了非常好的指示器。1.1.2.1 性能问题具体情况运行数据收集器时最有可能出现两种性能问题情况: 数据收集器消耗的系统资源过多。 数据收集器无法承受收集负荷。1.1.2.1.1 系统资源过度消耗如果进程性能计数器的分析表明 dcexec.exe 进程使用的系统资源过多,则需要进行以下调查。首先,确定是否大部分资源都由一个收集组占用。 若要标识该收集组,请将进程 ID 映射到 syscollector_execution_

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号