Sql server还原失败(数据库正在使用,无法获得对数据库的独占访问权)

分享到:

2014-12-07 22:36:12

该问题主要是你在还原的时候还有其他进程连在上面,导致无法获得独占造成的。
解决思路:
删除连在上面的进程,回滚未提交的事务,然后还原。
步骤
1.查询要还原的数据库ID
Select * from master..sysdatabases where name = '';

2.获取该数据库的进程
Select * from sys.sysprocesses a where a.dbid = '';

3.杀掉连接在上面的进程
Kill @spid;

此时去还原一般就可以了。但是今天的问题比较麻烦一点,删完进程马上有新的进程连进来,导致一直失败。分析了下,是还有应用程序一直尝试连进来的。一开始想到的办法是暂时断掉与应用的网络,后来想到另一个更简单的办法,使用数据库的单用户模式。尝试了下,可以在单用户下还原。
设置方式:选中要还原的数据库-->属性-->选项-->限制访问
该值从MULTI_USER修改为SINGLE_USER,此时该数据库就会显示为单用户模式

这是GUI的模式,语句的办法比较简单
USE MASTER
GO
ALTER DATABASE eol_tcgroup SET SINGLE_USER WITH ROLLBACK IMMEDIATE;   
GO
当然了,设置单用户数据库必须要超级用户

声明:此篇为用友服务中心文章,转载请标明出处链接:
  • 相关文章
  • 热门下载
  • 数据修复
  • 热门标签
合作伙伴