在应用程序日志中总是有这样的错误:事件类型: 错误
事件来源: MSSQLSERVER
事件种类: (2)
事件 ID: 17055
日期: 2006-8-30
事件: 10:15:04
用户: N/A
计算机: UYING-LXL5A1G17
描述:
17066:
SQL Server 断言: 文件: <SpcAlloc.cpp>,行 = 466
失败的断言 =“0”。
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
数据:
0000: aa 42 00 00 10 00 00 00 ªB......
0008: 10 00 00 00 55 00 59 00 ....U.Y.
0010: 49 00 4e 00 47 00 2d 00 I.N.G.-.
0018: 4c 00 58 00 4c 00 35 00 L.X.L.5.
0020: 41 00 31 00 47 00 31 00 A.1.G.1.
0028: 37 00 00 00 0a 00 00 00 7.......
0030: 64 00 62 00 5f 00 6e 00 d.b._.n.
0038: 65 00 77 00 42 00 42 00 e.w.B.B.
0040: 53 00 00 00 S... ===============================================================事件类型: 错误
事件来源: MSSQLSERVER
事件种类: (2)
事件 ID: 17055
日期: 2006-8-30
事件: 10:14:50
用户: N/A
计算机: UYING-LXL5A1G17
描述:
18052:
错误: 3624,严重度: 20,状态: 1。
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
数据:
0000: 84 46 00 00 10 00 00 00 „F......
0008: 10 00 00 00 55 00 59 00 ....U.Y.
0010: 49 00 4e 00 47 00 2d 00 I.N.G.-.
0018: 4c 00 58 00 4c 00 35 00 L.X.L.5.
0020: 41 00 31 00 47 00 31 00 A.1.G.1.
0028: 37 00 00 00 0a 00 00 00 7.......
0030: 64 00 62 00 5f 00 6e 00 d.b._.n.
0038: 65 00 77 00 42 00 42 00 e.w.B.B.
0040: 53 00 00 00 S... ==============================================================事件类型: 错误
事件来源: MSSQLSERVER
事件种类: (2)
事件 ID: 17052
日期: 2006-8-28
事件: 0:15:07
用户: N/A
计算机: UYING-LXL5A1G17
描述:
错误: 624,严重度: 20,状态: 2
未能从页中按 RID 检索行,因为所请求的 RID 比页中最后一个 RID 的数值还高。Rid pageid is (1:551805) and row num is 0xa。Page pointer = 0x68416000, PageId = (1:551805), flags = 0x8008, objectid = 2034106287, indexid = 0,DBID 10。有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
数据:
0000: 70 02 00 00 14 00 00 00 p.......
0008: 10 00 00 00 55 00 59 00 ....U.Y.
0010: 49 00 4e 00 47 00 2d 00 I.N.G.-.
0018: 4c 00 58 00 4c 00 35 00 L.X.L.5.
0020: 41 00 31 00 47 00 31 00 A.1.G.1.
0028: 37 00 00 00 0a 00 00 00 7.......
0030: 64 00 62 00 5f 00 6e 00 d.b._.n.
0038: 65 00 77 00 42 00 42 00 e.w.B.B.
0040: 53 00 00 00 S...
=================================================================事件类型: 错误
事件来源: MSSQLSERVER
事件种类: (2)
事件 ID: 17052
日期: 2006-8-28
事件: 0:15:07
用户: N/A
计算机: UYING-LXL5A1G17
描述:
错误: 624,严重度: 20,状态: 2
Could not retrieve row from page by RID because the requested RID has a higher number than the last RID on the page. Rid pageid is (1:551805) and row num is 0xa.Page pointer = 0x68416000, PageId = (1:551805), flags = 0x8008, objectid = 2034106287, indexid = 0, DBID 10.有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
数据:
0000: 70 02 00 00 14 00 00 00 p.......
0008: 10 00 00 00 55 00 59 00 ....U.Y.
0010: 49 00 4e 00 47 00 2d 00 I.N.G.-.
0018: 4c 00 58 00 4c 00 35 00 L.X.L.5.
0020: 41 00 31 00 47 00 31 00 A.1.G.1.
0028: 37 00 00 00 0a 00 00 00 7.......
0030: 64 00 62 00 5f 00 6e 00 d.b._.n.
0038: 65 00 77 00 42 00 42 00 e.w.B.B.
0040: 53 00 00 00 S...
事件来源: MSSQLSERVER
事件种类: (2)
事件 ID: 17055
日期: 2006-8-30
事件: 10:15:04
用户: N/A
计算机: UYING-LXL5A1G17
描述:
17066:
SQL Server 断言: 文件: <SpcAlloc.cpp>,行 = 466
失败的断言 =“0”。
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
数据:
0000: aa 42 00 00 10 00 00 00 ªB......
0008: 10 00 00 00 55 00 59 00 ....U.Y.
0010: 49 00 4e 00 47 00 2d 00 I.N.G.-.
0018: 4c 00 58 00 4c 00 35 00 L.X.L.5.
0020: 41 00 31 00 47 00 31 00 A.1.G.1.
0028: 37 00 00 00 0a 00 00 00 7.......
0030: 64 00 62 00 5f 00 6e 00 d.b._.n.
0038: 65 00 77 00 42 00 42 00 e.w.B.B.
0040: 53 00 00 00 S... ===============================================================事件类型: 错误
事件来源: MSSQLSERVER
事件种类: (2)
事件 ID: 17055
日期: 2006-8-30
事件: 10:14:50
用户: N/A
计算机: UYING-LXL5A1G17
描述:
18052:
错误: 3624,严重度: 20,状态: 1。
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
数据:
0000: 84 46 00 00 10 00 00 00 „F......
0008: 10 00 00 00 55 00 59 00 ....U.Y.
0010: 49 00 4e 00 47 00 2d 00 I.N.G.-.
0018: 4c 00 58 00 4c 00 35 00 L.X.L.5.
0020: 41 00 31 00 47 00 31 00 A.1.G.1.
0028: 37 00 00 00 0a 00 00 00 7.......
0030: 64 00 62 00 5f 00 6e 00 d.b._.n.
0038: 65 00 77 00 42 00 42 00 e.w.B.B.
0040: 53 00 00 00 S... ==============================================================事件类型: 错误
事件来源: MSSQLSERVER
事件种类: (2)
事件 ID: 17052
日期: 2006-8-28
事件: 0:15:07
用户: N/A
计算机: UYING-LXL5A1G17
描述:
错误: 624,严重度: 20,状态: 2
未能从页中按 RID 检索行,因为所请求的 RID 比页中最后一个 RID 的数值还高。Rid pageid is (1:551805) and row num is 0xa。Page pointer = 0x68416000, PageId = (1:551805), flags = 0x8008, objectid = 2034106287, indexid = 0,DBID 10。有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
数据:
0000: 70 02 00 00 14 00 00 00 p.......
0008: 10 00 00 00 55 00 59 00 ....U.Y.
0010: 49 00 4e 00 47 00 2d 00 I.N.G.-.
0018: 4c 00 58 00 4c 00 35 00 L.X.L.5.
0020: 41 00 31 00 47 00 31 00 A.1.G.1.
0028: 37 00 00 00 0a 00 00 00 7.......
0030: 64 00 62 00 5f 00 6e 00 d.b._.n.
0038: 65 00 77 00 42 00 42 00 e.w.B.B.
0040: 53 00 00 00 S...
=================================================================事件类型: 错误
事件来源: MSSQLSERVER
事件种类: (2)
事件 ID: 17052
日期: 2006-8-28
事件: 0:15:07
用户: N/A
计算机: UYING-LXL5A1G17
描述:
错误: 624,严重度: 20,状态: 2
Could not retrieve row from page by RID because the requested RID has a higher number than the last RID on the page. Rid pageid is (1:551805) and row num is 0xa.Page pointer = 0x68416000, PageId = (1:551805), flags = 0x8008, objectid = 2034106287, indexid = 0, DBID 10.有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
数据:
0000: 70 02 00 00 14 00 00 00 p.......
0008: 10 00 00 00 55 00 59 00 ....U.Y.
0010: 49 00 4e 00 47 00 2d 00 I.N.G.-.
0018: 4c 00 58 00 4c 00 35 00 L.X.L.5.
0020: 41 00 31 00 47 00 31 00 A.1.G.1.
0028: 37 00 00 00 0a 00 00 00 7.......
0030: 64 00 62 00 5f 00 6e 00 d.b._.n.
0038: 65 00 77 00 42 00 42 00 e.w.B.B.
0040: 53 00 00 00 S...
严重级别 21
消息正文
未能从页中按 RID 检索行,因为所请求的 RID 比页中最后一个 RID 的数值还高。%1!。%2!、Dbid %3!。解释
当试图通过指定行 ID (RID) 来从数据页检索行,因为所请求的 RID 数字比该页的最后一个 RID 大而失败时,发生该错误。如果损坏的非聚集索引的叶级页指向数据页上不正确的或不存在的 RID,则可能在普通处理中发生该错误。 如果当其他用户正在更新系统表(执行 DDL)时,在只读操作中在系统表上发生该错误,则它可能是暂时的 624 错误(而不是索引损坏)。若要确认无损坏,请执行不带修复子句的 DBCC CHECKTABLE。对策
恢复过程视错误发生的时间而定。如果问题仍存在,则下列过程可能不足以清除索引损坏。在这种情况下,请与您的主要支持提供者联系。提供 DBCC CHECKTABLE(如果调查可能的系统表损坏)或 DBCC CHECKDB 的输出以便检查。
执行带有 REPAIR_REBUILD 子句的 DBCC CHECKTABLE。如果执行带有 REPAIR_REBUILD 子句的 DBCC CHECKTABLE 未更正该问题,则除去并重新创建受影响的索引。重要 如果执行带有 REPAIR_REBUILD 子句的 DBCC CHECKDB 未更正索引问题,或不确定带有 REPAIR_REBUILD 子句的 DBCC CHECKDB 对数据有何影响,则请与您的主要支持提供者联系。
索引未知、查询已知
解决该问题的最快方法是执行带有 REPAIR_REBUILD 子句的 DBCC CHECKDB。本操作修复整个数据库中的所有索引损坏。如果数据库太大因而不想运行 DBCC CHECKDB,则使用下列说明以找到要除去并重新创建的特定索引。如果不知道哪个索引导致了问题但知道哪个查询遇到了问题,请遵照下列说明操作。如果索引或查询均未知,请遵照下一节"索引和查询均未知"中的说明操作。 通过读取遇到错误的查询的显示计划输出来确定应除去哪个索引。如果设置 SET SHOWPLAN_TEXT 为 ON、SET NOEXEC 为 ON,然后运行该查询,则输出指出查询使用哪个非聚集索引访问该表。
例如:USE pubs
GO
SET SHOWPLAN_TEXT ON
GO
SET NOEXEC ON
GO
SELECT title
FROM titles
WHERE title > 'Cooking'
GO下面是结果集:StmtText
----------------
SET NOEXEC ON(1 row(s) affected)StmtText
-------------------------------------------------------
SELECT title
FROM titles
WHERE title > 'Cooking'(1 row(s) affected)StmtText
---------------------------------------------------------------------
|--Index Seek(OBJECT:([pubs].[dbo].[titles].[titleind]), SEEK:([titles].[title] > [@1]) ORDERED FORWARD)(1 row(s) affected)再次设置 SET NOEXEC 为 OFF、SET SHOWPLAN_TEXT 为 OFF:
SET NOEXEC OFF
GO
SET SHOWPLAN_TEXT OFF
GO除去并重新创建步骤 1 中标识的索引(本例中为 titleind)。
索引和查询均未知
如果索引和查询均未知,则重建表中的所有非聚集索引,如下所示: 当获得表名时查看使用 DBCC CHECKDB 创建的输出:
如果对象 ID 小于 100,则无法除去可重新创建索引。请不要继续步骤 2 或 3。必须从某个已知的清洁备份还原数据库。
如果对象 ID 为 100 或更大,则继续进行步骤 2。
使用 sp_helpindex 列出表中的所有索引,然后使用下列方法之一重建所有非聚集索引:
除去并重新创建表中的每个非聚集索引。
如果表具有聚集索引,则除去并重新创建该索引。这使得所有非聚集索引自动重建。如果您的表较大,则可能没有进行此操作的空间。通常,可用的空间必须为表大小的 1.2 倍。
在重新创建了适当的索引之后,在表上运行 DBCC CHECKTABLE 以确认问题已解决。