SQL Server置疑的出现的原因,现象与破解

2010-12-19  王钧澜 

  此文讲述的是SQL Server置疑的出现的原因,现象,以及对其的正确解决方案的描述,如果你对SQL Server置疑的出现的原因,现象,以及对其的正确解决方案这些相关内容心存好奇的话,以下的文章将会揭开它的神秘面纱。

  原因:通常这个问题是由于硬盘空间不够或硬盘读写错误造成的。

  现象:数据库后面有“SQL Server置疑”字样,查看系统事务日记出现以下错误:

  错误1---------------------------------------------

  错误: 823,严重度: 24,状态: 2

  I/O error 23(数据错误 (循环冗余检查)。) detected during read at offset 0x00000000200000 in file 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\Jiapei_Data.MDF'.

  错误2---------------------------------------------

  错误: 3313,严重度: 21,状态: 2

  恢复数据库 'Jiapei' 的日志中记录的操作时出错。出错位置在日志记录 ID (274:377:2)。

  错误3---------------------------------------------

  错误: 3313,严重度: 21,状态: 2

  Error while redoing logged operation in database 'Jiapei'. Error at log record ID (274:377:2).

  数据库可以分离,但分离后无法附加,附加时出现“823”号错误。

  程序突然连接不数据库了,开企业管理器发现SQL Server置疑!!!重启数据库后该数据库又找不到了。

  解决方法:

  1.新建一个同名的数据库

  2.再停掉SQL Server

  3.用suspect数据库的文件覆盖掉这个新建的同名数据库

  4.再重启SQL Server

  5.此时打开企业管理器时新建的同名数据库会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)

USE MASTER
GO
SP_CONFIGURE 'ALLOW UpdateS',1 RECONFIGURE WITH OVERRIDE
GO
Update SYSDATABASES SET STATUS =32768 Where NAME='置疑的同名数据库名'
Go
sp_dboption 'SQL Server置疑的同名数据库名', 'single user', 'true'
Go
DBCC CHECKDB('置疑的同名数据库名')
Go
update sysdatabases set status =28 where name='置疑的同名数据库名'
Go
sp_configure 'allow updates', 0 reconfigure with override
Go
sp_dboption 'SQL Server置疑的同名数据库名', 'single user', 'true'
Go

  6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行了。

321°/3218 人阅读/0 条评论 发表评论

登录 后发表评论