当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 如何恢复/修复MS SQL数据库的MDF文件

MSSQL
最簡便的備份MySql資料庫方法
MS SQL 数据库备份和还原的几种方法
深入浅出SQL系列教程之SQL语言简介
Asp备份与恢复SQL Server
实战MSSQL 2000数据库之MSSQL Server安装
五种提高SQL Server性能的方法
SQL Server数据库备份和恢复措施
INSERT语法使用技巧一例
sql注入防范方法
操作数据库结构Sql语句
精妙SQL语句介绍
SQL Server常见连接错误
SQL如何备份并压缩备份文件?
Access数据库升迁SQLServer
SQL Server中如何计算农历
SQL SERVER Agent服务使用技巧小结
SQL SERVER使用嵌套触发器
“SQL Server不存在或访问被拒绝”问题的解决
SQL Server 管理常用的SQL和T-SQL(二)
谈SQL Server 2005中的T-SQL增强

MSSQL 中的 如何恢复/修复MS SQL数据库的MDF文件


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 94 ::
收藏到网摘: n/a

如果备份的数据库有2个文件,分别是.LDF 和 .MDF,打开企业管理器,在实例上右击---所有任务--附加数据库,然后选择那个.MDF文件,就可以了。

  或者在查询分析器中输入:

  sp_attach_db "数据库名称","路径\文件名.ldf","路径\文件名.MDF"

  SQL Server数据库备份有两种方式,一种是使用BACKUP DATABASE将数据库文件备份出去,另外一种就是直接拷贝数据库文件mdf和日志文件ldf的方式。下面将主要讨论一下后者的备份与恢复。本文假定您能熟练使用SQL Server Enterprise Manager(SQL Server企业管理器)和SQL Server Quwey Analyser(SQL Server查询分析器)

  1、正常的备份、恢复方式

  正常方式下,我们要备份一个数据库,首先要先将该数据库从运行的数据服务器中断开,或者停掉整个数据库服务器,然后复制文件。

  卸下数据库的命令:Sp_detach_db 数据库名

  连接数据库的命令:Sp_attach_db或者sp_attach_single_file_db

  s_attach_db [@dbname =] 'dbname', [@filename1 =] 'filename_n' [,...16]

  sp_attach_single_file_db [@dbname =] 'dbname', [@physname =] 'physical_name'

  使用此方法可以正确恢复SQL Sever7.0和SQL Server 2000的数据库文件,要点是备份的时候一定要将mdf和ldf两个文件都备份下来,mdf文件是数据库数据文件,ldf是数据库日志文件。

  例子:

  假设数据库为test,其数据文件为test_data.mdf,日志文件为test_log.ldf。下面我们讨论一下如何备份、恢复该数据库。

  卸下数据库:sp_detach_db 'test'

  连接数据库:sp_attach_db 'test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_data.mdf','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf'

  sp_attach_single_file_db 'test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_data.mdf'

  // 本文转自 C++Builder 研究 - http://www.ccrun.com/article.asp?i=986&d=oxit07

  2、只有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' 可能有误。