sqlserver还原数据库,数据库提⽰正在还原中的处理办法
还原数据库时,提⽰还原成功,可是数据库列表中该数据库显⽰正在还原中:
执⾏此命令即可:
RESTORE DATABASE EnterPriseBuilding WITH RECOVERY
了解SQLServer脚本之数据库误删数据回:wwwblogs/Leo_wl/p/3614804.html
1. ⾄少有⼀个误删除之前的数据库完全备份。
2. 数据库的恢复模式(Recovery mode)是“完整(Full)”。
⼀、还原需要的条件设置
使⽤命令,是通过sqlserver的事务⽇志以及⼀个误删除前的数据库的完整备份进⾏还原,所以在sqlserver2012的维护计划向导中,要建⽴完整备份,差异备份和事务⽇志,具体如下
以及在数据库属性,选项设置中,设置为完整备份,具体如下图
做好如上两个设置,数据库误删后回数据就会⾮常轻松,现在说⼀下如何还原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、从差异备份还原数据
sqlserver2012数据库还原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