今天sql-server数据库突然报错:
SQL Server 检測到基于一致性的逻辑 I/O 错误 校验和不对(应为: 0x7c781313,但实际为: 0x67a313c9)。
在文件 'C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDATAE_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’—将目标数据库置为多用户状态
第四步:运行出现“数据库其它多个文件与数据库主文件不匹配….”错误,再运行一次就可以。