SqlServer显示“正在还原...”

时间:2024-08-21 21:33:56

还原数据库时,提示还原成功,但是数据库一直显示“正在还原...”的状态。

可以通过执行以下命令即可

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