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

时间:2023-03-09 09:38:29
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’—将目标数据库置为多用户状态

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