数据库sql2000错误8908及处理

错误8908:表错误:数据库ID34,对象ID3,索引ID0。链的链接不匹配。(1:9342)->next   =   (1:1808),但(1:1808)->prev   =   (1:1351)。   
(在数据库‘UlandSystem’(34)中。

 

解释   
  当   Microsoft®   SQL   Server  在与表关联的一个页链的页链接中检测到不一致时(例如当某页的   next   指针指向一页,而该页的   previous   指针却向回指向另一页时),会出现该错误。表数据具有一个双向链接页链,每个索引级别也具有一个这样的页链。   
    
对策   
  通过检查错误信息中的   current   page   确定损坏的表。执行不带修复子句的   DBCC   CHECKDB   以确定损坏的程度。然后,执行带有适当修复子句的   DBCC   CHECKDB   以修复损坏部分。如果该页与索引相关联,有时除去索引可能解决问题。在多数情况下,必须从已知的干净备份恢复数据库。   
    
  如果错误涉及索引页,请使用   REPAIR_REBUILD   子句。如果错误涉及数据页,可能需要使用   REPAIR_ALLOW_DATA_LOSS   子句。在不允许丢失数据的可能事件中,将需要从已知的干净备份进行还原。如果问题仍然存在,请与您的主要支持提供者联系。使   DBCC   CHECKDB   的输出可查阅。   
       
重要    

如果执行带有修复子句之一的   DBCC   CHECKDB   未更正索引问题,或者您不确定带有修复子句的   DBCC   CHECKDB   对数据的作用,请与您的主要支持提供者联系。   
    
    
  除   SQL   Server   错误日志外,还应检查操作系统错误日志文件,以确定是否是硬件错误造成损坏。   
    
  如果问题仍然存在,请与您的主要支持提供者联系。

 

注:

使用数据库的过程中,由于断电或其他原因,有可能导致数据库出现一些小错误,比如检索某些表特别慢,查询不到符合条件的数据等.
  
  出现这些情况的原因,往往是因为数据库有些损坏,或索引不完整.
  
  在ACCESS中,有个修复数据库的功能可以解决这个问题,在SQL企业管理器,没有这个功能,要用语句来完成,下面就介绍如何用 SQL 语句完成数据库的修复,需要注意的是,在进行下面的操作时,必须断开所有用户的连接:
  
  USE MASTER
  GO
  
  sp_dboption '你的数据库名', 'single user', 'true'
  Go
  
  DBCC CHECKDB('你的数据库名', REPAIR_REBUILD)
  Go
  
  USE 你的数据库名 
  go
  
  exec sp_msforeachtable 'DBCC CHECKTABLE(''?'',REPAIR_REBUILD)'
  go
  
  sp_dboption '你的数据库名', 'single user', 'false'
  Go

 

 

附:

DBCC CHECKDB('数据库名称',REPAIR_ALLOW_DATA_LOSS)

REPAIR_ALLOW_DATA_LOSS:是比较高级的修复方式

REPAIR_FAST:是简单快速的修复方式


REPAIR_ALLOW_DATA_LOSS
  此选项包括REPAIR_REBUILD 选项的所有修复功能而且还包括为纠正分配错误
  结构性行或页错误而进行数据行或数据页的分配和解除分配以及删除被损坏的文本对
  象这些修复易引起数据丢失所以可在事务中使用该DBCC 命令这样用户可以回
  滚所发生的数据变化然后从备份中进行恢复
REPAIR_FAST
  该选项只能实现较简单且耗时少的修复功能例如修复非簇索引中的额外键此选项
  不会导致数据丢失
REPAIR_REBUILD
  此选项包括所有REPAIR_FAST 选项的功能而且能够完成一些耗时的修复操作如
  重建索引此选项不会导致数据丢失

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值