检测和解决 SQL Server 2000 SP 4 中的延迟和阻塞 I/O 问题
2007-05-17 09:37:02 来源:WEB开发网其中,Microsoft SQL Server 技术支持部门遇到的一种情况是,涉及到用于备份处理(该过程能够备份在备份时处于打开状态的文件)的筛选器驱动程序。系统管理员错误地在文件备份选择中包括了 SQL Server 数据文件目录。当备份发生时,它试图收集备份开始时文件的一致镜像。在完成该操作时,它将延迟后续的 I/O 请求,使它们能够在软件处理它们时逐个完成。
当备份开始时,SQL Server 的性能会急剧下降,因为针对 SQL Server 的 I/O 被强迫逐个完成。使该问题变得更为复杂的是,单 I/O 逻辑的特点使得 I/O 通常无法异步执行,因此当 SQL Server 期望发送 I/O 请求并继续工作时,UMS 辅助进程却在 I/O 完成之前一直阻塞在读或写调用中。SQL Server 预读功能实际上被筛选器驱动程序的操作禁用了。而且,即使当备份完成时,筛选器驱动程序中的另一个程序错误仍然使单 I/O 行为保持不变。恢复 SQL Server 性能的唯一方法是关闭数据库并重新打开它或者重新启动 SQL Server,以便在当前筛选器驱动程序交互未就绪的情况下释放并重新获取文件句柄。
解决办法:将 SQL Server 的数据文件从文件备份过程中排除,并且解决筛选器驱动程序中的导致文件被置于单 I/O 模式的程序错误。
这时,如果我们已经具有了 SQL Server 2000 SP4 对延迟 I/O 操作进行报告的功能,那么我们在疑难解答过程中就可以很快知道基本问题是什么。
示例 3 — 隐藏的错误
很多高端系统具有用于处理负载平衡的多通道 I/O 路径以及类似的工具。Microsoft SQL Server 技术支持部门已经见过使用此类软件的情况,其中,尽管 I/O 请求失败,但软件确实正确地处理了错误状况,并且执行了无数次重试。I/O 被阻塞,并且 SQL Server 无法完成指定的操作。与上面描述的日志写状况非常类似,在这样的状况对系统产生了消极影响之后,发生了很多糟糕的系统行为。
- ››解决Zimbra邮件服务器证书过期办法
- ››解决ios的UITableView内容无法刷新的方法
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››解决dedeCMS后台验证码不显示
- ››解决“您尝试打开的文件*.xls的格式与文件扩展名指...
- ››解决Word2010中加入打印全屏预览按钮
- ››sqlserver安装和简单的使用
- ››解决win7右下角音量控制图标、电池图标消失的脚本...
- ››解决MYSQL导入脚本数据中文乱码
- ››解决linux下SVN迁移时忘记了用户名和密码的办法
更多精彩
赞助商链接