DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS 失败时的下一步

DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS 失败时的下一步

我遇到的情况是,数据库 (MSSQL2016 - 13.0.5081.1) 的几个表已损坏(选择数据在某些时候失败)没有可用的有效备份(错误似乎在数据库中存在很长时间)但是,我最终通过执行带有选项DBCC CHECKDB的命令REPAIR_ALLOW_DATA_LOSS。但这也失败了。输出返回如下消息几次:

编号 8909,红色 16,状态 1,编号 2 表项:对象 ID 0,索引 ID -1,分区 ID 0,初始状态 ID -7451885722783318016(未知类型),页面 ID(1:290902)包含一个页面标题中的错误页面 ID。页面标题中的 PageId 值 = (9978:208048830)。在遭受这些损失之前,必须先遭受其他损失。

用英语来说,这个信息应该是这样的......

表错误:对象 ID 0、索引 ID -1、分区 ID 0、分配单元 ID -7451885722783318016(未知类型),页面 ID(1:290902)在页眉中包含不正确的页面 ID。页眉中的 PageId 值 = (9978: 208048830)。在解决此错误之前,必须先解决其他错误。

但是,这是什么意思:

 Before resolving this error, other errors must be resolved first.

其他错误有哪些?- 此消息针对不同的页面返回几次,但没有提示其他错误。我知道整个情况最终会导致数据丢失。我必须忍受这一点。

有人知道该如何进一步吗?

更新:

正如在评论中提到的,我尝试使用traceflag 3604启用功能来评估页面信息:

页面:(9978:208048830)

缓冲:

缓冲区@0x000001D69F08F000

bpage = 0x000001D440C64000 bhash = 0x0000000000000000
bpageno = (1:290902) bdbid = 12 breferences = 0 bcputicks = 0 bsampleCount = 0
bUse1 = 16138 bstat = 0x809 blog = 0x1215a
bnext = 0x0000000000000000 bDirtyContext = 0x0000000000000000 bstat2 = 0x0

页眉:

页面 @0x000001D440C64000

m_pageId = (9978:208048830) m_headerVersion = 202
m_type = 214 m_typeFlagBits = 0x86 m_level = 148
m_flagBits = 0xe010 m_objId (AllocUnitId.idObj) = -1788167502
m_indexId (AllocUnitId.idInd) = 39061 元数据:AllocUnitId = -7451885722783318016 元数据:PartitionId = 0 元数据:IndexId = -1 元数据:ObjectId = 0 m_prevPage = (54490:-85112207) m_nextPage = (63487:2133407350)
pminlen = 44485 m_slotCnt = 15506 m_freeCnt = 40634 m_freeData = 52980
m_reservedCnt = 43709 m_lsn = (-1571835192:-1449823006:20555)
m_xactReserved = 12100 m_xdesId = (60082:-2118893827)
m_ghostRecCnt = 18723 m_tornBits = -1316355089 DB Frag ID = 1

分配状态

GAM(1:2)= 已分配 SGAM(1:3)= 未分配
PFS(1:283080)= 0x40 已分配 0_PCT_FULL
DIFF(1:6)= 未更改 ML(1:7)= 未 MIN_LOGGED

返回m_type一个可疑值214- 我无法将其与以下有效页面类型之一匹配:

1 – data page
2 – index page
3 and 4 – text pages
8 – GAM page
9 – SGAM page
10 – IAM page
11 – PFS page
13 - Boot page
15 - File header page
16 - diff map apge
17 - ML map page
18 - deallocated page
19 - Temp page
20 - Pre-Allocated page für bulk operations

相关内容