sql-server 2005数据库文件恢复(检測到基于一致性的逻辑 I/O 错误)

今天sql-server数据库突然报错:

SQL Server 检測到基于一致性的逻辑 I/O 错误 校验和不对(应为: 0x7c781313,但实际为: 0x67a313c9)。

在文件 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\E_BLOCK_DB.mdf' 中、偏移量为 0x00000000a34000 的位置对数据库 ID 5 中的页 (1:1306) 运行 读取 期间,发生了该错误。

SQL Server 错误日志或系统事件日志中的其它消息可能提供了更具体信息。

这是一个威胁数据库完整性的严重错误条件。必须马上纠正。请运行完整的数据库一致性检查(DBCC CHECKDB)。此错误能够由很多因素导致。有关具体信息,请參阅 SQL Server 联机丛书。

 

折腾了许久,解决方式例如以下:

第一步:先建立一个同名数据库,停止SQL SERVER2005。将不能打开的.mdf数据库文件和.ldf文件覆盖刚新建的f数据库的两个文件

第二步:又一次启动数据库

第三步:在查询分析器中执行例如以下代码:

alter database 数据库名   set emergency   —将数据库设置为紧急状态

use master 

declare @databasename varchar(255) 

set @databasename=‘数据库名’         —你的.mdf文件文件名称

exec sp_dboption @databasename, N’single‘, N’true’ —将目标数据库置为单用户状态 

dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS) 

dbcc checkdb(@databasename,REPAIR_REBUILD) 

exec sp_dboption @databasename, N’single‘, N’false’—将目标数据库置为多用户状态

 

第四步:运行出现“数据库其它多个文件与数据库主文件不匹配….”错误,再运行一次就可以。


posted on 2017-07-09 18:26  yjbjingcha  阅读(276)  评论(0编辑  收藏  举报

导航