sql-server 2005数据库文件恢复:检测到基于一致性的逻辑 I/O错误 - 面向对象网,数据库,mssql,学习,对象 - 面向对象技术开发

面向对象技术开发

会员投稿 投稿指南 站长资讯通告:
您的位置: 首页 > 数据库 > MSSQL > 正文

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

来源: www.bianceng.cn 阅读:

今天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’—将目标数据库置为多用户状态

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

查看本栏目更多精彩内容:http://www.bianceng.cn/database/SQLServer/

Tags:
相关文章列表: