zoukankan      html  css  js  c++  java
  • SQL Server 报错8909(Object ID 0, index ID 1, partition ID 0)

     我们经常用到DBCC CHECKDB来查看有关数据库的错误问题,报错如下:

    Msg 8909, Level 16, State 1, Line 2
    Table error: Object ID 0, index ID -1, partition ID 0, alloc unit ID 72057594045726720 (type Unknown), page ID (16:1330467) contains an incorrect page ID in its page header. The PageId in the page header = (48:93722876).

    具体来说,让人迷惑的部分是“Object ID 0, index ID -1, partition ID 0”。系统中没有对象ID为0,索引怎么会有-1的ID呢?

    这种模式意味着 DBCC 无法确定页面属于哪个对象。

    SQL Server 2005 重写 DBCC CHECKDB 时新增了一种数据结构,称为 DbccCombinedID,它封装了标识页面所属位置的所有相关 ID。对象、索引和分区 ID 的默认值分别为 0、-1 和 0。当 DBCC CHECKDB 读取页面时,根据页头中的 m_objId 和 m_indexId 字段计算分配单元 ID(计算方式见),然后 DBCC CHECKDB 进行所有元数据查找以找出其他 ID .如果页眉损坏,导致计算出的分配单元 ID 无效,则无法填充其他 ID,也无法找到页面的“所有者”。可能还会有其他错误消息引用损坏的页面。

    所以要怎么做?按照处理损坏的常用方法

  • 相关阅读:
    P1082 同余方程
    P2678 跳石头
    P2827 蚯蚓
    P1351 联合权值
    P2822 组合数问题
    P3958 奶酪
    P2296 寻找道路
    P2661 信息传递
    平时问题总结
    平时总结
  • 原文地址:https://www.cnblogs.com/VicLiu/p/15602799.html
Copyright © 2011-2022 走看看