还原Sql server数据库失败提示“数据库正在使用,无法获得对数据库的独占访问权”的解决办法

[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!

错误详细:

标题: Microsoft SQL Server Management Studio
------------------------------
还原数据库“XXXXXX”时失败。 (Microsoft.SqlServer.Management.RelationalEngineTasks)
------------------------------
其他信息:
System.Data.SqlClient.SqlError: 因为数据库正在使用,所以无法获得对数据库的独占访问权。 (Microsoft.SqlServer.SmoExtended)

原因分析:

在SqlServer2008r2中在还原数据库时,在执行备份操作的时候,如果有正在访问的用户或者没有关闭的数据库链接,则还原失败。

解决方案

解决方案1.

如果你使用管理工具还原数据库并且在Microsoft SQL Server Management Studio 2016或以上版本的话,可以在还原的时候勾选"关闭到目标数据库的现有链接"

解决方案2.

如果你的SqlServer Management Studio的版本比较低,可以设置数据库为单用户模式,执行完还原操作后,恢复为多用户模式

设置方式:选中要还原的数据库-->属性-->选项-->限制访问
该值从MULTI_USER修改为SINGLE_USER,此时该数据库就会显示为单用户模式
这是GUI的模式,语句的办法比较简单

---设置数据库为单用户模式
USE MASTER
GO
ALTER DATABASE eol_tcgroup SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
---设置数据库为多用户模式
USE MASTER
GO
ALTER DATABASE eol_tcgroup SET MULTI_USER WITH ROLLBACK IMMEDIATE;
GO

图文教程:

1.选中无法还原的数据库,右键属性

2.选择选项-状态-限制访问-SINGLE_USER

解决方案3:

完全使用T-Sql的方式,执行备份数据库操作

use master
go
---声明变量
declare @dbName nvarchar(max)='Mvc_HNHZ';
declare @dbFullName nvarchar(max)='E:\NewWork\Web\backup\test1.bak';
--1.1修改为单用模式
exec(N'ALTER DATABASE '+@dbName+' SET SINGLE_USER WITH ROLLBACK IMMEDIATE');
--1.2结束链接进程
DECLARE @kid varchar(max)
SET @kid=''
SELECT @kid=@kid+'KILL '+CAST(spid as Varchar(10)) FROM master..sysprocesses
WHERE dbid=DB_ID(@dbName) ;
EXEC(@kid) ;
--2.执行还原语句
restore database @dbName from disk=@dbFullName
with replace --覆盖现有的数据库
--3.重置数据库为多用户模式
exec(N'ALTER DATABASE '+@dbName+' SET MULTI_USER WITH ROLLBACK IMMEDIATE');

解决方案四:

出现这一问题的原因很可能是因为原始文件的行数据和日志文件没有更改,需要更改。

1.在还原数据库期间,从选项界面修改原始文件的行数据和日志文件。
点击右侧“…”按钮,选择路径。根据界面上显示的路径找到具体位置。
此为博主博主电脑上的路径举例:“C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA”

2.根据数据库对应的名称,选择.mdf文件和.ldf文件

问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信

所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!

支付宝赞助
微信赞助

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如您下载该资源,行为将被视为对《免责声明》全部内容的认可->联系老梁投诉资源
LaoLiang.Net部分资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:service@laoliang.net
意在交流学习,欢迎赞赏评论,如有谬误,请联系指正;转载请注明出处: » 还原Sql server数据库失败提示“数据库正在使用,无法获得对数据库的独占访问权”的解决办法

发表回复

本站承接,网站推广(SEM,SEO);软件安装与调试;服务器或网络推荐及配置;APP开发与维护;网站开发修改及维护; 各财务软件安装调试及注册服务(金蝶,用友,管家婆,速达,星宇等);同时也有客户管理系统,人力资源,超市POS,医药管理等;

立即查看 了解详情