检查数据库完整性失败

我每晚的维护计划都失败了两个数据库。 我甚至不确定这是什么意思。 任何想法如何解决?

这是维修计划中的错误:

Executing the query "DBCC CHECKDB(N'Site_DB') WITH NO_INFOMSGS " failed with the following error: "The Index Allocation Map (IAM) page (0:0) is pointed to by the previous pointer of IAM page (1:747) in object ID 0, index ID -1, partition ID 0, alloc unit ID 72057597046816768 (type Unknown), but it was not detected in the scan. CHECKDB found 1 allocation errors and 0 consistency errors not associated with any single object. CHECKDB found 1 allocation errors and 0 consistency errors in database 'Site_DB'. repair_allow_data_loss is the minimum repair level for the errors found by DBCC CHECKDB (Site_DB).". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly. 

有趣的部分是,2个不同的数据库报告与完全相同的页面ID。 不知道这是为什么。

我碰到一篇文章 ,提供了一些关于如何解决问题的提示。
所以我跑了以下几点:

 DBCC TRACEON(3604,-1) GO DBCC PAGE('Site_DB', 1, 747, 3) 

元数据:IndexId值结果是-1。 文章说,如果它大于1,然后删除并重新创build非聚集索引。 如果是0或1,则从备份中恢复或尝试修复。 不幸的是,这些情况都不包括-1值。

所以我继续跑了

 DBCC CHECKDB('Site_DB', REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS, ALL_ERRORMSGS 

这回来说,如果发现分配错误,并修复它们。 只是为了确保我再次运行了带有NO_INFOMSGS的DBCC CHECKDB('SiteDB'),并且清楚地显示出来了。