找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 199|回复: 0

SQL Server 还原数据库,数据库提示正在还原中的处理办法.

[复制链接]

142

主题

17

回帖

530

积分

超级版主

积分
530
发表于 2024-1-7 18:57:43 | 显示全部楼层 |阅读模式
还原数据库时,提示还原成功,可是数据库列表中该数据库显示正在还原中:
执行此命令即可:
RESTORE DATABASE EnterPriseBuilding WITH RECOVERY

了解SQLServer脚本之数据库误删数据找回:http://www.cnblogs.com/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、从差异备份还原数据
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 @dtRESTORE LOG [QASupervision] FROM DISK='C:\SQLServerBackups\AdventureWorks_transcationlog.bak'  WITH  STOPAT=@dt,RECOVERY

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

6、选择不回滚未提交的事物时会有个现象就是数据库右边一直显示正在还原,并不可用:

解决方法:

restore database Test2 with recovery


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|333cm ( 京ICP备16037542号 )

GMT+8, 2024-5-14 03:13 , Processed in 0.084911 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表