还原数据库时,提示还原成功,可是数据库列表中该数据库显示正在还原中:

0520f0838aa40ccca61c8e097321a6e0.png

f09f23b3dcab5423296ae8afe59b2439.png

执行此命令即可:

RESTORE DATABASE EnterPriseBuilding WITH RECOVERY

db6665864aa6e6224394abc80b310ff1.png

1. 至少有一个误删除之前的数据库完全备份。

2. 数据库的恢复模式(Recovery mode)是“完整(Full)”。

一、还原需要的条件设置

使用命令,是通过sqlserver的事务日志以及一个误删除前的数据库的完整备份进行还原,所以在sqlserver2012的维护计划向导中,要建立完整备份,差异备份和事务日志,具体如下

f790e28fc7fbf6778e80dff9071b7605.png

以及在数据库属性,选项设置中,设置为完整备份,具体如下图

d474931840ec3db1074e6d64db159a42.png

做好如上两个设置,数据库误删后找回数据就会非常轻松,现在说一下如何还原sqlserver数据到故障点。

二、还原命令

还原主要分为四步走:

1、出现故障后,首先执行备份事务日志命令,这里以AdventureWorks作为数据库名。命令如下:BACKUP LOG AdventureWorks TO DISK = 'C:\SQLServerBackups\AdventureWorks_transcationlog.bak'

WITH NORECOVERY;

2、从完整备份还原数据RESTORE DATABASE [QASupervision] FROM DISK='M:\Database\OA\AdventureWorks_Fullbackup_2014_03_18_010002_0155764.bak'

WITH NORECOVERY, REPLACE

3、从差异备份还原数据RESTORE DATABASE [QASupervision] FROM DISK='M:\Database\OA\AdventureWorks_diffbackup_2014_03_18_020002_0155764.bak' WITH NORECOVERY, REPLACE

4、从事务日志还原数据,还原到某个时间点之前DECLARE @dt datetime

SELECT @dt=DATEADD(HOUR,-16,GETDATE())

select @dt

RESTORE LOG [QASupervision] FROM DISK='C:\SQLServerBackups\AdventureWorks_transcationlog.bak' WITH STOPAT=@dt,RECOVERY

5、还原数据库,如果数据库提示正在还原中,则执行此命令即可。RESTORE DATABASE AdventureWorks WITH RECOVERY

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐