1.找到备份出来的 mdf。 2.在企业管理器里新建一个同样名字的数据库。 注意:我们软件创建的数据库名称为:abc.mdf,在企业管理器里创建的名字会默认为:abc_data.mdf,在企业管理器里创建时一定要把 _data去掉,不然不会成功,要报错。 3.停掉sql服务器,然后把新建的 mdf和log 文件删除掉,用原来文件替换新建的数 据库文件,log文件不要。 4.启动数据库,并在企业管理器的数据库服务器上点右键找到属性,把其中服务器设置中允许对系统目 录直接进行修改选中。 5.把数据库改成紧急模式,查询分析器中执行: sp_configure 'allow', 1 reconfigure with override update sysdatabases set status = 32768 where name = '数据库名' . . . ### 只有mdf文件或数据损坏的修复方法 #### 背景介绍 在数据库管理过程中,可能会遇到由于各种原因导致的数据库文件丢失或损坏的情况。特别是在使用SQL Server这样的数据库管理系统时,如果只保留了主数据文件(.mdf)而没有相应的事务日志文件(.ldf),或者主数据文件本身出现了问题,那么如何有效地恢复数据库就显得尤为重要。本文将详细介绍一种用于修复只拥有mdf文件或数据已损坏情况下的具体步骤。 #### 修复步骤详解 **第一步:找到备份出来的mdf文件** 需要确保你能够访问到该mdf文件。通常情况下,这些文件会被保存在一个安全的位置,如备份服务器或本地硬盘的某个文件夹内。请仔细检查所有可能的存储位置,以确保可以获取到正确的mdf文件。 **第二步:在企业管理器里新建一个同名的数据库** 打开SQL Server的企业管理器,并按照以下步骤创建一个与原数据库同名的新数据库: - 在“对象”树中展开“数据库”,右键单击并选择“新建数据库”。 - 在“新建数据库”对话框中输入新数据库的名称,注意这里需要输入的是原数据库的名称(例如:abc.mdf),而不是默认添加的后缀_data(即不要命名为abc_data.mdf)。 - 设置其他必要的参数,如文件组、初始大小等,并完成创建过程。 **第三步:停掉SQL服务器,并替换数据库文件** 接下来需要停止SQL Server服务,以便能够安全地替换数据库文件: - 通过“服务管理器”或其他方式停止SQL Server服务。 - 删除在第二步中创建的mdf文件以及任何相关的事务日志文件(ldf)。 - 将原有的mdf文件复制到数据库文件所在的目录下,覆盖掉新创建的mdf文件。注意这里不需要包含事务日志文件。 **第四步:启动数据库,并允许对系统目录直接修改** 重新启动SQL Server服务后,还需要做一些额外的配置来确保数据库能够正常工作: - 在企业管理器中找到目标数据库服务器,并右键选择“属性”。 - 在弹出的对话框中选择“服务器设置”选项卡。 - 勾选“允许对系统目录直接进行修改”选项,这样可以在后续步骤中更方便地更改数据库状态。 **第五步:将数据库改为紧急模式** 接下来需要使用T-SQL命令将数据库切换到紧急模式,以便进行更进一步的操作: ```sql -- 允许对系统目录直接进行修改 sp_configure 'allow', 1; GO RECONFIGURE WITH OVERRIDE; GO -- 将数据库的状态更改为紧急模式 UPDATE sysdatabases SET status = 32768 WHERE name = '数据库名'; GO ``` **第六步:重建事务日志文件** 如果原来的事务日志文件丢失或不可用,可以使用`DBCC REBUILD_LOG`命令来重建一个新的事务日志文件: ```sql DBCC REBUILD_LOG('数据库名', '新的事务日志文件路径'); GO ``` 例如,假设新的事务日志文件路径为`C:\Program Files\Microsoft SQL Server\MSSQL\Data\abc_Log.LDF`,则命令如下: ```sql DBCC REBUILD_LOG('abc', 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\abc_Log.LDF'); GO ``` **第七步:将数据库状态改回正常** 完成以上操作后,还需要将数据库的状态恢复为正常状态: ```sql UPDATE sysdatabases SET status = 0 WHERE name = '数据库名'; GO ``` **第八步:验证数据库完整性** 最后一步是使用`DBCC CHECKDB`命令来验证数据库是否完整无误: ```sql DBCC CHECKDB('数据库名'); GO ``` 如果命令执行后返回的结果显示数据库完整无损,则表示数据库修复成功;反之,则需要根据错误提示进一步排查问题。 #### 总结 通过以上步骤,即使在只有mdf文件或数据已损坏的情况下,也能够较为有效地恢复数据库至可用状态。需要注意的是,在执行这些操作之前,请务必做好充分的数据备份,以防止意外情况的发生。此外,建议定期对数据库进行全面的备份及维护,以减少数据丢失的风险。














2.在企业管理器里新建一个同样名字的数据库。
注意:我们软件创建的数据库名称为:abc.mdf,在企业管理器里创建的名字会默认为:abc_data.mdf,在企业管理器里创建时一定要把 _data去掉,不然不会成功,要报错。
3.停掉sql服务器,然后把新建的 mdf和log 文件删除掉,用原来文件替换新建的数
据库文件,log文件不要。
4.启动数据库,并在企业管理器的数据库服务器上点右键找到属性,把其中服务器设置中允许对系统目
录直接进行修改选中。
5.把数据库改成紧急模式,查询分析器中执行:
sp_configure 'allow', 1
reconfigure with override
update sysdatabases set status = 32768 where name = '数据库名'
6.重建log文件:
DBCC REBUILD_LOG ('数据库名', 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\数据库名_Log.LDF' )
7.恢复数据库紧急模式
update sysdatabases set status = 0 where name = '数据库名'
8.把服务器设置中允许对系统目录直接进行修改取消。至此已完成。
9.然后用
DBCC CHECKDB ('数据库名')

- 做数据对接的新垣结衣2014-03-24终于找到了,感谢 非常有用。。。
- 忘北向南2018-09-26坑人的,这种方法一搜一大把

- 粉丝: 2
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- Python习题word程序填空阅读填空程序试题(1).doc
- 大数据下医院统计信息管理论文(1).doc
- FPGA实现AM包络检调制解调技术_Vivado源码解析及应用 · MATLAB
- 完整word版操作系统实验银行家算法(1).doc
- 软件项目验收报告-模板全(1).doc
- 某服装企业ERP企业信息化系统建设方案(1).pptx
- 美食网站策划书3(1).doc
- 电子商务交易安全培训课程(1).pptx
- KOBELCOPC故障诊断软件安装及应用(1).ppt
- 基于单片机的室内空气质量检测系统设计(1).doc
- 2022年大数据专业培养能力总结范本(1).doc
- 计算机专业毕业生个人简历【三篇】(20211125200140)------(1).pdf
- 通信管道间隔(1).doc
- Unit6Developingideas&Presentingideas练习题-学年高(1).pdf
- 2025年春计算机网络本科形成性作业册(1).pdf
- C语言全部题目及答案(1).docx


