只有mdf文件的恢复技术 (转载)

 

由于种种原因,我们如果当时仅仅备份了mdf文件,那么恢复起来就是一件很麻烦的事情了。

如果您的mdf文件是当前数据库产生的,那么很侥幸,也许你使用sp_attach_db或者sp_attach_single_file_db可以恢复数据库,

但是会出现类似下面的提示信息

设备激活错误。物理文件名 ‘C:\Program Files\Microsoft SQL Server\MSSQL\data\test_Log.LDF‘ 可能有误。

已创建名为 ‘C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.LDF‘ 的新日志文件。

但是,如果您的数据库文件是从其他计算机上复制过来的,那么很不幸,也许上述办法就行不通了。你也许会得到类似下面的错误信息

服务器: 消息 1813,级别 16,状态 2,行 1

未能打开新数据库 ‘test‘Create DATABASE 将终止。

设备激活错误。物理文件名 ‘d:\test_log.LDF‘ 可能有误。

怎么办呢?别着急,下面我们举例说明恢复办法。

A.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager里面建立。

B.停掉数据库服务器。

C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。

D.启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。

E.设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。

use master

go

sp_configure ‘allow updates‘,1

go 

reconfigure with override

go

F.设置test为紧急修复模式

update sysdatabases set status=-32768 where dbid=DB_ID(‘test‘)

此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表

G.下面执行真正的恢复操作,重建数据库日志文件

dbcc rebuild_log(‘test‘,‘C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf‘)

执行过程中,如果遇到下列提示信息:

服务器: 消息 5030,级别 16,状态 1,行 1

未能排它地锁定数据库以执行该操作。

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。[brown][/i]

说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL Server Enterprise Manager打开了test库的系统表,那么退出SQL Server Enterprise Manager就可以了。

正确执行完成的提示应该类似于:

警告: 数据库 ‘test‘ 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。

H.验证数据库一致性(可省略)

dbcc checkdb(‘test‘)

一般执行结果如下:

CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 ‘test‘ 中)。

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

I.设置数据库为正常状态

sp_dboption ‘test‘,‘dbo use only‘,‘false‘

如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。

J.最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager里面恢复,也可以使用如下语句完成

sp_configure ‘allow updates‘,0

go 

reconfigure with override

go

时间: 2024-11-01 14:13:26

只有mdf文件的恢复技术 (转载)的相关文章

SQL Server MDF 文件打开和相关问题图解

为了开发时的方便和不时之需:研究下不需要SQL Server,直接打开MDF数据库文件的软件: 1 SQL MDF Viewer 这是一个好工具:偶不得不说:不错:没有SQL Server的情况下,成功打开了MDF文件: 可以显示记录和数据库结构:不过看不到存储过程的代码,视图的代码能看到: 2 网际数据库浏览器 先安装, 界面: 登录要用户名密码:那么就是需要Sql Server 运行才能打开MDF 文件了: 如下图,原来此软件是用不同开发语言和数据库的连接字符串语法去连接数据库然后查询数据,

转载——服务器误删文件的恢复过程

经历了两天不懈努力,终于恢复了一次误操作删除的生产服务器数据.对本次事故过程和解决办法记录在此,警醒自己,也提示别人莫犯此错.也希望遇到问题的朋友能找到一丝灵感解决问题. 事故背景 安排一个妹子在一台生产服务器上安装Oracle,妹子边研究边安装,感觉装的不对,准备卸载重新安装.从网上找到卸载方法,其中要执行一行命令删除Oracle的安装目录,命令如下: rm -rf $ORACLE_BASE/* 如果ORACLE_BASE这个变量没有赋值,那命令就变成了 rm -rf /* ==||,妹子使用

SQL SERVER 2008数据库MDF文件0字节数据恢复

SQL SERVER 2008数据库文件碎片恢复软件, 不管是MDF文件自然损坏后变0字节,还是经过删除后使用数据恢复软件找到后变成0字节均有良好的效果! 案例分析: 山东某政府机构的OA管理系统使用了SQLSERVER 2008数据库,有一天数据库置疑并无法拷贝,技术人员使用了CHKDSK/F 命令尝试修复,修复结束后17GB的MDF文件变成了0字节,经过百度搜索,联系到我们.本来使用自主开发的软件可以远程恢复,但由于用户是涉密单位,不能连外网,后来我们的工程师亲自上门去现场恢复,最终结果修复

.net环境下的缓存技术-转载!

摘要: 介绍缓存的基本概念和常用的缓存技术,给出了各种技术的实现机制的简单介绍和适用范围说明,以及设计缓存方案应该考虑的问题(共17页) 1         概念 1.1   缓存能解决的问题 · 性能--将相应数据存储起来以避免数据的重复创建.处理和传输,可有效提高性能.比如将不改变的数据缓存起来,例如国家列表等,这样能明显提高web程序的反应速度: · 稳定性--同一个应用中,对同一数据.逻辑功能和用户界面的多次请求时经常发生的.当用户基数很大时,如果每次请求都进行处理,消耗的资源是很大的浪

数据库的完整性和恢复技术

一.数据库的完整性 1实体完整性 主码不能为空,且唯一 2参照完整性 被参照表如student表 参照表如sc表 违约处理 可能破坏参照完整性                    ← 插入元组 拒绝(not action) 可能破坏参照完整性                     ← 修改外码值→ 拒绝 删除元组                                   → 可能破坏参照完整性 拒绝.级联删除(cascade).设置为空 修改主码值                

数据库 chapter 10 数据库恢复技术

第十章 数据库恢复技术 介绍事务的基本概念和事务的性质,讲解数据库系统遇到故障后进行恢复技术和方法. 事务是一系列的数据库操作,是数据库应用程序的基本逻辑单元,是一个不可分割的工作单位. 事务和程序是两个概念,一般来说,一个程序里面包含多个事务. 事务处理技术主要包括数据库恢复技术和并发控制技术. 事务具有四个特性:原子性(Atomicity).一致性(Consistency).隔离性(Isolation)和持续性(Durability),这四个特性简称为ACID特性. 原子性:事务时数据库的逻

误删除VMware虚拟机vmdk文件的恢复方法

Dell R710系列服务器(用于VMware虚拟主机),Dell MD 3200系列存储(用于存放虚拟机文件),VMware ESXi 5.5版本,因意外断电,导致某台虚拟机不能正常启动,查看虚拟机的配置文件时发现此虚拟机的配置文件除了磁盘文件以外其他配置文件全部丢失.此时xxx-flat.vmdk磁盘文件和xxx-000001-delta.vmdk快照文件还存在.找VMware工程师诊断后,尝试新建一个虚拟机来解决故障,但发现ESXi存储空间不足.因此就将故障虚拟机下的xxx-flat.vm

解剖SQLSERVER 第十六篇 OrcaMDF RawDatabase --MDF文件的瑞士军刀(译)

解剖SQLSERVER 第十六篇 OrcaMDF RawDatabase --MDF文件的瑞士军刀(译) http://improve.dk/orcamdf-rawdatabase-a-swiss-army-knife-for-mdf-files/ 当我最初开始开发OrcaMDF的时候我只有一个目标,比市面上大部分的书要获取MDF文件内部的更深层次的知识 随着时间的推移,OrcaMDF确实做到了.在我当初没有计划的时候,OrcaMDF 已经可以解析系统表,元数据,甚至DMVs.我还做了一个简单U

在Linux环境下使用OpenSSL对消息和文件进行加密(转载)

转自:http://netsecurity.51cto.com/art/201301/378513.htm 1.简介 OpenSSL是一款功能强大的加密工具包.我们当中许多人已经在使用OpenSSL,用于创建RSA私匙或证书签名请求(CSR).不过,你可曾 知道可以使用OpenSSL来测试计算机速度?或者还可以用它来对文件或消息进行加密?本文将介绍几个简单易学的技巧,教你如何使用OpenSSL对消息 和文件进行加密. [相关推荐]:网络安全工具百宝箱 2.对消息进行加密和解密 首先,我们不妨对简