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

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

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

时间: 2024-12-02 10:25:46

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

ms sql server 2005数据库日志文件过大,需要清除或者清空

数据库:ms sql server 2005 任务:ms sql server 2005数据库日志文件过大,需要清除. 方法: backup log [你的数据库名称] WITH NO_LOGbackup log [你的数据库名称] WITH TRUNCATE_ONLYDBCC SHRINKDATABASE([你的数据库名称]) 说明: backup log 指定仅备份事务日志.该日志是从上一次成功执行的 LOG 备份到当前日志的末尾.备份日志之后,可能会截断事务复制或活动事务不再需要的空间.

SQL SERVER 2005数据库镜像(1)

本文对SQL SERVER 2005数据库镜像进行了教程式的讲解,具体内容包括:介绍.动态.可用性场景.实现和高可用性技术,供大家参考! 概述 数据库镜像是SQL SERVER 2005用于提高数据库可用性的新技术.数据库镜像将事务日志记录直接从一台服务器传输到另一台服务器,并且能够在出现故障时快速转移到备用服务器.可以编写客户端程序自动重定向连接信息,这样一旦出现故障转移就可以自动连接到备用服务器和数据库. 自动进行故障转移并且使数据损失最小化通常包括昂贵的硬件和复杂的软件.但是,数据库镜像可

SQL Server 2005日志文件损坏的处理

在实际的工作和学习中,许多人的SQL Server 2005数据库日志文件可能会发生损坏,例如硬件故障. 计算机非正常重启或关机等等. 在SQL Server 2005的日志文件损坏时,你会发现以下的情况: ◆1.在SQL Server Management Studio中显示数据库处于置疑(suspect)状态. ◆2.事件日志可能会出现如下错误信息: Could not redo log record (21737:686:9), for transaction ID (0:2334886)

SQL Server 2005数据库备份与恢复

服务器的迁移,因为业务使用的数据库是SQL Server 2005,所以就要首先对数据库进行备份. 备份可以分为手动备份和自动备份,我们先来介绍手动备份. 打开SQL Server Management Studio, 点击要备份的数据库-"任务"-" 备份",如下图: 在"磁盘"选项中,选择自己要把数据库备份文件存放的磁盘,如下图: 以上操作完毕后,我们点击完成,数据库就开始备份,如下图: 通过上图我们可以看到数据库已经备份完毕,并且备份文件存

SQL SERVER 2005数据库还原的方法_mssql2005

在SQL SERVER 2005下还原数据库 1.新建数据库A,右键还原数据库,此时目标数据库为A,选择备份 文件B_db_201311040200.BAK,还原时提示"备份集中的数据库备份与现有的A数据库不同" 2.google一下,有人说是文件名不同,即B的数据库文件为B.MDF, 要还原到A.MDF上,所以报错 3.删除A库,在根目录[数据库]上右键,还原数据库,先选择源文件, 然后再目标数据库中会自动出现B,选择B之后即可还原成功 相信很多的站长网站的时候需要用到SQL Ser

简述SQL Server 2005数据库镜像相关知识_mssql2005

SQL Server 数据库中,数据库镜像是用于提高数据库可用性的主要软件解决方案.数据库镜像基于每个数据库实现,并且只适用于使用完整恢复模式的数据库.简单恢复模式和大容量日志恢复模式不支持数据库镜像,数据库镜像不能镜像master.msdb.tempdb 或 model 数据库.本文我们主要就介绍一下数据库镜像的相关知识,接在来就让我们来一起了解一下吧! 数据库镜像维护一个数据库的两个副本,这两个副本必须驻留在不同的SQL Server 数据库引擎实例(服务器实例)上.通常,这些服务器实例驻留

SQL Server中数据库文件的存放方式

SQL Server中数据库文件的存放方式 在SQL SERVER中,通过文件组这个逻辑对象对存放数据的文件进行管理. 先来看一张图: 我们看到的逻辑数据库由一个或者多个文件组构成 而文件组管理着磁盘上的文件.而文件中存放着SQL SERVER的实际数据. 为什么通过文件组来管理文件 对于用户角度来说,需对创建的对象指定存储的文件组只有三种数据对象:表,索引和大对象(LOB) 使用文件组可以隔离用户和文件,使得用户针对文件组来建立表和索引,而不是实际磁盘中的文件.当文件移动或修改时,由于用户建立

SQL Server 2005数据库还原错误的经典解决方案_MsSql

在SQL Server 2005数据库还原的过程中出现错误:备份集中的数据库备份与现有的'xxxx'数据库不同,网上找了几个解决方案测试,最终成功还原,特此记录下,提供给需要的人. 第一步: 如果你知道备份数据库名你可以跳过第一步,如果你不知道备份数据库的名称,你可以先执行下面语句: RESTORE FILELISTONLY From disk = 'F:\路径\css_cms1'--备份数据库文件路径名 这样可以列出该文件里的data和log文件名,知道这两个文件名以后可以执行下一步了. 第二

更改SQL Server 2005数据库中tempdb位置的方法_mssql2005

了解SQL Server 2005数据库的朋友可能都知道,tempdb系统数据库是一个全局资源,可供连接到SQL Server 2005实例的所有用户使用.我们有时候为了操作方便,常常会更改一下tempdb数据库的位置,那么该如何操作呢?本文我们就来介绍这一更改的过程. 获得tempdb的原始位置: select [name],[physical_name] from sys.master_files where database_id=db_id(N'tempdb') 更改tempdb数据库位