SqlServer显示“正在还原...”
还原数据库时,提示还原成功,但是数据库一直显示“正在还原...”的状态。
可以通过执行以下命令即可
RESTORE DATABASE DB_NAME WITH RECOVERY
原因:
关于recover 和 norecover:
举个例子,比如1 是全备份,2是差异备份,3,4,5是日志备份,如果现在要恢复到5的时间,首先要恢复1,然后2,然后3,4,5从1--4期间都要指定为norecovery,为什么呢?可以设想一下如果是recovery的话,此时数据库已经可以应用,比如如果在2--3之前用了recovery,则进行2以后数据库就可以应用,此时如果有人进行数据库操作,那么3就不能恢复了。再有在2--3之间中间段的事物将会回滚,此时如果再一次恢复后面序列备份就会出错。 |
https://docs.microsoft.com/zh-cn/sql/t-sql/statements/restore-statements-arguments-transact-sql