還原Sql server數(shù)據(jù)庫(kù)失敗提示“數(shù)據(jù)庫(kù)正在使用,無法獲得對(duì)數(shù)據(jù)庫(kù)的獨(dú)占訪問權(quán)”的解決辦法
[重要通告]如您遇疑難雜癥,本站支持知識(shí)付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時(shí)間哦!
錯(cuò)誤詳細(xì):
標(biāo)題: Microsoft SQL Server Management Studio
------------------------------
還原數(shù)據(jù)庫(kù)“XXXXXX”時(shí)失敗。 (Microsoft.SqlServer.Management.RelationalEngineTasks)
------------------------------
其他信息:
System.Data.SqlClient.SqlError: 因?yàn)閿?shù)據(jù)庫(kù)正在使用,所以無法獲得對(duì)數(shù)據(jù)庫(kù)的獨(dú)占訪問權(quán)。 (Microsoft.SqlServer.SmoExtended)
原因分析:
在SqlServer2008r2中在還原數(shù)據(jù)庫(kù)時(shí),在執(zhí)行備份操作的時(shí)候,如果有正在訪問的用戶或者沒有關(guān)閉的數(shù)據(jù)庫(kù)鏈接,則還原失敗。
解決方案
解決方案1.
如果你使用管理工具還原數(shù)據(jù)庫(kù)并且在Microsoft SQL Server Management Studio 2016或以上版本的話,可以在還原的時(shí)候勾選"關(guān)閉到目標(biāo)數(shù)據(jù)庫(kù)的現(xiàn)有鏈接"
解決方案2.
如果你的SqlServer Management Studio的版本比較低,可以設(shè)置數(shù)據(jù)庫(kù)為單用戶模式,執(zhí)行完還原操作后,恢復(fù)為多用戶模式
設(shè)置方式:選中要還原的數(shù)據(jù)庫(kù)-->屬性-->選項(xiàng)-->限制訪問
該值從MULTI_USER修改為SINGLE_USER,此時(shí)該數(shù)據(jù)庫(kù)就會(huì)顯示為單用戶模式
這是GUI的模式,語(yǔ)句的辦法比較簡(jiǎn)單
---設(shè)置數(shù)據(jù)庫(kù)為單用戶模式
USE MASTER
GO
ALTER DATABASE eol_tcgroup SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
---設(shè)置數(shù)據(jù)庫(kù)為多用戶模式
USE MASTER
GO
ALTER DATABASE eol_tcgroup SET MULTI_USER WITH ROLLBACK IMMEDIATE;
GO
圖文教程:
1.選中無法還原的數(shù)據(jù)庫(kù),右鍵屬性
2.選擇選項(xiàng)-狀態(tài)-限制訪問-SINGLE_USER
解決方案3:
完全使用T-Sql的方式,執(zhí)行備份數(shù)據(jù)庫(kù)操作
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結(jié)束鏈接進(jìn)程
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.執(zhí)行還原語(yǔ)句
restore database @dbName from disk=@dbFullName
with replace --覆蓋現(xiàn)有的數(shù)據(jù)庫(kù)
--3.重置數(shù)據(jù)庫(kù)為多用戶模式
exec(N'ALTER DATABASE '+@dbName+' SET MULTI_USER WITH ROLLBACK IMMEDIATE');
解決方案四:
出現(xiàn)這一問題的原因很可能是因?yàn)樵嘉募男袛?shù)據(jù)和日志文件沒有更改,需要更改。
1.在還原數(shù)據(jù)庫(kù)期間,從選項(xiàng)界面修改原始文件的行數(shù)據(jù)和日志文件。
點(diǎn)擊右側(cè)“…”按鈕,選擇路徑。根據(jù)界面上顯示的路徑找到具體位置。
此為博主博主電腦上的路徑舉例:“C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA”
2.根據(jù)數(shù)據(jù)庫(kù)對(duì)應(yīng)的名稱,選擇.mdf文件和.ldf文件
問題未解決?付費(fèi)解決問題加Q或微信 2589053300 (即Q號(hào)又微信號(hào))右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當(dāng)無敷衍,落筆求簡(jiǎn)潔。 以所舍,求所獲;有所依,方所成!