用代码还原数据库,操作界面已经提示完成,但是数据库处一直是“正在还原”

Posted 晴天MM

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用代码还原数据库,操作界面已经提示完成,但是数据库处一直是“正在还原”相关的知识,希望对你有一定的参考价值。

在网上搜的资料并实践,可以用以下代码来还原备份的数据库
RESTORE DATABASE [new_ttttt] --新库名字
FROM  DISK = N‘E:\DBBackup\tttt_1\tttt_1_Full_2016_06_04_155332.bak‘ --备份文件
WITH  FILE = 1,  
MOVE N‘tttt_1‘ TO N‘E:\test\new_tttt.mdf‘,  --原始数据库名字 新的附加位置
MOVE N‘tttt_1_log‘ TO N‘E:\test\new_tttt_1.LDF‘, --原始数据库名字 新的附加位置
NORECOVERY,  
NOUNLOAD,  STATS = 10
GO --完整备份还原


RESTORE DATABASE [new_ttttt] --新库名字
FROM  DISK = N‘E:\DBBackup\tttt_1\tttt_1_Diff_2016_06_04_160529.bak‘  --备份文件
WITH  FILE = 1,
MOVE N‘tttt_1‘ TO N‘E:\test\new_tttt.mdf‘,  --原始数据库名字 新的附加位置
MOVE N‘tttt_1_log‘ TO N‘E:\test\new_tttt_1.LDF‘, --原始数据库名字 新的附加位置
NOUNLOAD,  STATS = 10
GO--差异备份还原

但是还原的过程中遇到个问题,就是题目所说的“正在还原”的问题

找了资料实践以后发现可行

具体方法是

原因分析 (转自http://www.111cn.net/database/mssqlserver/50360.htm)

1)管理器不会主动刷新,需要手工刷新一下才能看到最新状态(性能方面的考虑)

2)很少情况下,恢复进程被挂起了。这个时候假设你要恢复并且回到可访问状态,要执行:

 

RESTORE database   dbname with recovery

这使得恢复过程能完全结束。

3)如果你要不断恢复后面的日志文件,的确需要使数据库处于“正在还原状态”,

这通常是执行下面命令:

RESTORE database dbname with norecovery

 

以上是关于用代码还原数据库,操作界面已经提示完成,但是数据库处一直是“正在还原”的主要内容,如果未能解决你的问题,请参考以下文章

MS SQL执行大脚本文件时,提示“未能完成操作,存储空间不足,无法处理此命令”的解决办法

sql2005用查询分析器还原数据库时出错提示超时

opengl程序代码在别人的机器是很好,但是在我的机器上一运行就提示内存错误

200分 Java Swing 刷新问题

怎么把sql server 2008 备份文件bak还原?

sql server 还原数据库时提示数据库正在使用,无法进行操作的解决方法