because the database is in use数据库正在使用 看看又没有别的进程使用该数据库 如果没有 use master restore database dbName from disk=fileName with norecovery
use master use master go update sysdatabases set status=0 where name='库名' go 可以解决报错的语句,至于能不能预期的恢复,很难说, 要看你的备份数据了,如果跟你delete前的不一致,估计无解.你的解决步骤都是错误的.在不小心用的delete之后,不能急着从别的地方导库,应该对误操作后的数据和日志再做一次备份,然后才能尝试log explorer, 或从其它数据源恢复或导入数据, 即所摆谓的保存现场. 误操作之后,进行的其它错误操作越多,数据恢复的可能性就越小.就像磁盘上进行误操作,用一些数据操作软件恢复一样.纯个人看法.
但当我执行第2步:restore database dbName from disk=fileName with norecovery,提示出错: ... Exclusive access could not be obtained because the database is in use. Server: Msg 3013, Level 16, State 1, Line 1 RESTORE DATABASE is terminating abnormally. --------------------------- 提示说你的数据库正在使用,楼主可以先停止服务器,再启用。再按以上三步操作
如果没有
use master
restore database dbName from disk=fileName with norecovery
use master
go
update sysdatabases set status=0 where name='库名'
go
可以解决报错的语句,至于能不能预期的恢复,很难说, 要看你的备份数据了,如果跟你delete前的不一致,估计无解.你的解决步骤都是错误的.在不小心用的delete之后,不能急着从别的地方导库,应该对误操作后的数据和日志再做一次备份,然后才能尝试log explorer, 或从其它数据源恢复或导入数据, 即所摆谓的保存现场. 误操作之后,进行的其它错误操作越多,数据恢复的可能性就越小.就像磁盘上进行误操作,用一些数据操作软件恢复一样.纯个人看法.
... Exclusive access could not be obtained because the database is in use.
Server: Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.
---------------------------
提示说你的数据库正在使用,楼主可以先停止服务器,再启用。再按以上三步操作
同时最好加 replease 选项, 因为你的库已经存在
所以日志已经被截断, log explorer 这类工具用不上, 否则的话, 可能用 log explorer 更保险一些因为用还原的方法要求你的日志在完全备份(或者最后一次差异备份)之后没有做过截断操作, 如果你不确定这点, 则还原的方法有一定风险
另外, 还原方法要求你能比较准确地找到时间点
那是不是就说明我可以用log explorer来试一下?另外:
如邹建大哥所说:
=============================
因为你的数据库有人在用, 你需要先断开所有用户连接, 并且你的还原需要在其他数据库(例如)master下进行
同时最好加 replease 选项, 因为你的库已经存在
=============================
我试了试,他做出这样的提示:
...
Server: Msg 3201, Level 16, State 2, Line 1
Cannot open backup device 'D:\Microsoft SQL Server\MSSQL\Data\CSA_log.ldf'. Device error or device off-line. See the SQL Server error log for more details.
Server: Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.
我的SQL语句是(在master下进行的)
restore database CSA from disk='D:\Microsoft SQL Server\MSSQL\Data\CSA_log.ldf' with norecovery
是我哪里操作还有问题哇?
或者是在还原的时候, 使用 move 子句指定文件的位置, 具体的参考联机帮助上的语法说明