sql_server只有.mdf文件如何恢复数据

只有mdf文件时,应当如何进行恢复

1、新建一个同名数据库,指定数据库存储位置(ps:如果你之前的数据库位于 D:\数据 这个目录,这次也要建一个相同的目录,避免在还原数据时候,读取到旧目录导致报错)。

2、停止数据库服务,删除新建数据库的log跟数据文件 
     将老的数据库文件丢进来(考虑到磁盘读写的速度,放在一个磁盘内数据拷贝比较快一点)
 
3、启动数据库服务
数据库变为置疑或可疑状态。然后在查询分析器中运行:
alter database 无日志文件的数据库名称 set emergency
设置为紧急状态。
 
4、再运行:
alter database 无日志文件的数据库名称 set single_user
或者:
Sp_dboption '无日志文件的数据库名称', 'single user', 'true'
设置为单用户模式。
 
5、检查并重建日志文件,运行:
dbcc checkdb('无日志文件的数据库名称',REPAIR_ALLOW_DATA_LOSS)
这个时间比较长。耐心等待!期间会有报错:--is_broker_enabled停止,断开数据库连接之类报错,然后再运行:
 dbcc checkdb('无日志文件的数据库名称',REPAIR_REBUILD)
进行修复。如果没有错误,可以跳过。
 
6、恢复成多用户模式
alter database 无日志文件的数据库名称 set multi_user(报错的话  将sql_server重新打开一次,然后再次执行就好了)
或者:
Sp_dboption '无日志文件的数据库名称', 'single user', 'false'
刷新数据库,你就可以看到已经修复好的数据库了。
posted @ 2020-03-20 16:22  天宇星空  阅读(2332)  评论(0编辑  收藏  举报