现在的位置: 首页 > 综合 > 正文

还原数据库XXX 对于服务器XXX 因为数据库正在使用的问题解决

2013年12月07日 ⁄ 综合 ⁄ 共 521字 ⁄ 字号 评论关闭

解决方案如下:

执行该方案,必须首先定位到master数据库,然后在分析查询器中执行以下语句:
ALTER DATABASE [数据库名] SET OFFLINE WITH ROLLBACK IMMEDIATE
这样就关闭了当前数据库链接线程,并且回滚正在操作的事物。接下来就可以正常还原了!!

System.Data.SqlClient.SqlError: 尚未备份数据库 "***" 的日志尾部。如果该日志包含您不希望丢失的工作,请使用 BACKUP LOG WITH NORECOVERY 备份该日志。请使用 RESTORE 语句的 WITH REPLACE 或 WITH STOPAT 子句来只覆盖该日志的内容。 (Microsoft.SqlServer.Smo)

原因分析
    这是因为在线还原的数据库在最后备份后又产生了新的日志,所以按照默认设置的备份选项,系统将提示备份日志尾部以免造成事务中断。
    解决方法
    如果需要备份尾部日志则进行备份。如果不需要,则可以在还原数据库的的选项卡中选择【覆盖现有数据库】复选框。

另一种解决方式就是使用备份进行日志备份,然后在备份选项里选中备份日志尾部,将数据库置为还原状态,这样就不用在还原的时候选覆盖数据选项了,不过数据库在还原状态下不可用。

抱歉!评论已关闭.