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