标数据库文件dbcc报错:为已在GAM中分配,但没有任何SGAM或IAM分配该区

分享到:

2021-02-06 21:34:26

我们知道SQL Server在8K 的页里存储数据。分区就是物理上连续的8个页。当我们创建一个数据库,数据文件会被逻辑分为页和区,当用户对象创建时,页会分配给它用来存储数据。GAM(Global Allocation Map)和SGAM(Shared Global Allocation Map)页用来跟踪SQL Server里空间分配情况。这里我们会一起讨论下SQL Server的空间分配,还有GAM和SGAM怎么帮助我们分配空间。

在SQL Server里有2类区:

统一区(Uniform Extent) :区属于一个用户对象。这些区的所有8页归一个对象所有。

混合区(Mixed Extent) :区属于各个用户对象。即区里的每个页都可以属于不同用户对象。

为了更好的管理空间分配,如果一个表或索引大小小于8页(即64k),SQL Server会分配混合区的页,而不是统一区的页。
 

故 障 检测 未知原因导致的 凭证表无法访问,提示 消息 8992,级别 16,状态 1,第 1 行
 
请检查目录消息 3853,状态 1: sys.columns 中的行(object_id=1044914794,column_id=27)的属性
 
(default_object_id=-16777216)在 sys.objects 中没有匹配的行(object_id=-16777216)。
 
CHECKDB 发现有 0 个分配错误和 1 个一致性错误与任何单个的对象都没有关联。
 
 
客 户 要 求 恢复好 直接使用.
 
修 复 结 果 经过分析 是 default_object_id=-16777216 值不正确,修正为 正确值后,表可以正常访问, 整个数据库检测无误。
 
客户满 意 是  修复时间 10分钟
 
友情提醒:重要数据一定要勤备份,遇到数据丢失 数据损坏 等问题,要第一时间联系专业人士。
声明:此篇为用友服务中心文章,转载请标明出处链接:
  • 相关文章
  • 热门下载
  • 数据修复
  • 热门标签
合作伙伴