- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章SQL Server 监控磁盘IO错误,msdb.dbo.suspect_pages由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
suspect_pages 表位于 msdb 数据库中,是在 SQL Server 2005 中引入的。用于维护有关可疑页的信息的 suspect_pages 。
数据库管理员负责管理表(主要通过删除旧的行实现)。suspect_pages 表有大小限制,如果此表已满,则不会记录新的错误。若要防止此表填满,数据库管理员或系统管理员必须通过删除行来手动清除此表中的旧条目。因此,我们建议您定期删除或存档 event_type 为已还原或已修复的行或具有旧 last_update 值的行.
若要监视对 suspect_pages 表执行的操作,可使用 Database Suspect Data Page 事件类。有时会因存在暂时性的错误向 suspect_pages 表添加行。如果正在向该表添加很多行,则 I/O 子系统可能出了问题。如果您注意到正向该表添加的行数突然增加,我们建议您检查一下 I/O 子系统是不是出现了问题.
下表显示了记录在 suspect_pages 表的 event_type 列中的错误.
。
错误说明 | event_type 值 |
---|---|
由操作系统 CRC 错误造成的 823 错误,或者校验和错误或页撕裂以外的 824 错误(例如,页 ID 错误) 。 |
1 。 |
错误的校验和 。 |
2 。 |
残缺页 。 |
3 。 |
已还原(页在标记为错误后已还原) 。 |
4 。 |
已修复(DBCC 修复了页) 。 |
5 。 |
已由 DBCC 释放 。 |
7 。 |
。
暂时性的错误也会记录在 suspect_pages 表中。暂时性错误的来源包含 I/O 错误(例如电缆断开连接)或暂时未通过重复校验和测试的页.
数据库引擎如何更新 suspect_pages 表 。
数据库引擎对 suspect_pages 表执行下列操作:
如果表未满,则每出现一个 824 错误,该表都会更新以指明出现了错误,且错误计数器也将相应递增。 如果通过修复、还原或释放操作修复后的页仍有错误,则其 number_of_errors 计数将会递增,其 last_update 列也会更新 列出的页通过还原或修复操作修复之后,该操作将更新 suspect_pages 行,以指示此页已修复 (event_type = 5) 或已还原 (event_type = 4).
如果运行 DBCC 检查,则该检查会将所有未出错页标记为已修复 (event_type = 5) 或已释放 (event_type = 7).
自动更新 suspect_pages 表 。
尝试读取数据文件中的某一页由于以下原因之一失败后,数据库镜像伙伴将更新 suspect_pages 表.
由操作系统 CRC 错误导致的 823 错误.
824 错误(像页撕裂这样的逻辑损坏).
以下操作将自动从 suspect_pages 表中删除行.
ALTER DATABASE REMOVE FILE DROP DATABASE DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS 更新 suspect_pages 表,以指示已释放或已修复的各页.
RESTORE 也可更新该列表。完整还原、文件还原或页面还原将页面项标记为已还原.
最后此篇关于SQL Server 监控磁盘IO错误,msdb.dbo.suspect_pages的文章就讲到这里了,如果你想了解更多关于SQL Server 监控磁盘IO错误,msdb.dbo.suspect_pages的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
在查询中写入以下内容有区别吗: SELECT * FROM dbo.Product 相比于: SELECT * FROM [dbo].[Product] 一个比另一个好还是无关紧要? 最佳答案 没有区
这是有效的 dbo.dbo 吗?如果是,那是什么意思?我在别人写的查询中发现了这一点: 从dbo.tmp_BDCode aob inner join dbo.dbo.tmp_BDCode_03 ao
当我创建一个新表时,我知道我可以执行以下操作: CREATE TABLE Users ( [Id] INT NOT NULL PRIMARY KEY ) 但是 [dbo].以下示例中的部分含义
我正在将一个使用 Membership 的现有网络应用程序移植到一个使用 Identity 的新应用程序。我已经更新了所有表定义,在 VS Community Edition 2015 版本 14.0
我正在使用 Entity Framework 5 并执行一个简单的查询以从表中获取一些用户。 SQL 数据库已经创建,所以我使用我的实体作为映射我所拥有的东西的一种方式。 当我运行我的查询时,我检测到
我使用了以下分割函数: CREATE FUNCTION dbo.Splitfn(@String varchar(8000), @Delimiter char(1)) returns @te
我使用的是 sql server 2008 r2。 我想为我的所有作业创建脚本以进行备份。 我需要找到一个作业中存在的所有对象。现在我可以做到了,但是 为了实现这个目标,我得到了这个查询的所有运算符
我有一个带有一些函数和触发器的 SQL 项目。 在 Visual Studio 2010 中,我可以只指定数据库连接字符串并进行部署。这很好用。 但是现在迁移到 Visual Studio 2013
我们的应用程序不需要身份使用的过多“登录”和“声明”功能。如果没有在数据库中创建这些表 simlpy 就好了,但我不想重新实现所有身份类... 我猜是这样的 public ApplicationDbC
我已经设置了正确的 SQL Server 版本并添加了 master 数据库作为数据库引用。 在添加引用之前和之后,master 数据库有几个 Unresolved 引用,所有这些引用都消失了。 只有
我刚刚在 TFS2012 服务器上下载并安装了 Team Foundation Server 2012 Update 1,现在无法配置构建 Controller 或编辑构建定义。 我从这里下载了更新:
我在服务器中发送请求。 $custormerParams = array( "CustomerID" =>123, "CustomerAltID" =>'cus
您好,我在 sqlserver 2008 中创建了一个 udf 函数...当我尝试访问它时出现错误“无效的对象名称 'dbo.Function_Client”我想从表中返回记录数并将其分配给变量以返回
当我扫描我的数据库时,它显示了一个结果,如 VA1143 'dbo' user should not be used for normal service operation in 漏洞评估扫描 他们
我已经尝试用以下 100 种不同的方式编写代码,但无法找出正确的语法。看来无论我怎么写, $loggeduser 都不会传递给 WHERE 用户名。我究竟做错了什么?什么是正确的语法? $query
在我的本地或专用服务器上,当我创建一个表时,我看到表名如下: dbo.Foo 因为我从某个 plesk 环境中获得了一个数据库帐户,所以创建的表的名称为: mydbuser.Foo 前缀对我的代码有何
我从旧的 sql server (2000) 导入了一堆表到我的 2008 数据库。所有导入的表都以我的用户名为前缀,例如:jonathan.MovieData。在表 properties 中,它将
我的一位同事给我一项任务,要确保存储过程中的所有表名和页面都包含相关模式? 例如,如果我在数据库中有一个表是 dbo.table1,那么在查询中如果我有: Select * from table1 他
我收到此错误:[SqlException (0x80131904): Invalid object name 'dbo.UserRoles'.],但我无法捕捉到错误所在。我可以从其他表中检索其他数据,
在此问题上,我的SQL出现问题,我已经从sys.servers中选择了*,以检查是否列出了我的服务器。 我还从sys.servers中执行了查询选择名称,并且列出了我的服务器名称。 这是我的代码
我是一名优秀的程序员,十分优秀!