sql server 復原數據庫時提醒數據庫正在應用,沒法停止操作的處理辦法。本站提示廣大學習愛好者:(sql server 復原數據庫時提醒數據庫正在應用,沒法停止操作的處理辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是sql server 復原數據庫時提醒數據庫正在應用,沒法停止操作的處理辦法正文
這個成績的緣由在於有效戶銜接了以後要做復原的數據庫,這裡的用戶乃至包含以後要做復原的用戶。處理方法就是封閉與要復原數據庫的一切銜接。
小編推舉的一個辦法:到辦事外面重啟下sqlserver辦事便可。
成績一描寫:SQL Server數據庫備份復原後,在數據庫稱號後會湧現“受限制拜訪”字樣
成績二描寫:在對SQL Server數據庫停止復原時,提醒:System.Data.SqlClient.SqlError:由於數據庫正在應用,所以沒法取得對數據庫的獨有拜訪權。(Microsoft.SqlServer.Smo)。湧現此成績的緣由是在復原數據庫時,有其他用戶正在應用數據庫。復原數據庫請求數據庫任務在單用戶形式。平日就是DBA在操作時,不許可其他用戶銜接數據庫。
成績一處理方法:
右鍵點擊數據庫 -> 屬性 -> 選項 -> 狀況 -> 限制拜訪 -> 選擇Multiple -> 肯定。
成績二處理方法:
辦法一(最便利):右鍵點擊數據庫 -> 屬性 -> 選項 -> 狀況 -> 限制拜訪 -> 選擇Single-> 肯定。然後復原。
辦法二(最直接):斷開數據庫銜接
辦法三(最暴力):刊出/重啟數據庫辦事器
辦法四(最費事):寫代碼修正數據庫相干屬性,固然費事,有的時刻照樣要用到,那就用到的時刻再研討。
①先切換數據庫到master數據庫。履行語句
select * from master..sysprocesses where dbid=db_id( '數據庫稱號')
②然後慢慢運轉語句 exec kill spid(上一步成果集中的數據),
成績就處理了。哈哈
明天在復原數據庫的時刻,提醒"由於數據庫正在應用,所以沒法取得對數據庫的獨有拜訪權",不管我是重啟數據庫,照樣重啟盤算機,都不克不及處理成績,多番測驗考試後,終究處理了該成績。現將激發該成績的緣由與處理計劃寫出來,有纰謬的處所迎接年夜家提出來。
激發緣由:是由於我在復原數據庫的時刻,還有其他的用戶正在應用數據庫,所以就會湧現以上提醒。
處理辦法:
1,設置數據庫在單用戶形式下任務。
設置辦法:在須要復原的數據庫上右擊,在右鍵菜單敕令上選擇"屬性"- >"選項"- >"狀況"- >"限制拜訪"- >"Single"。這是SQLSERVER2005的菜單敕令,其它版本請本身查找。
2,應用SQL語句,殺逝世正在應用該數據庫的一切過程,本身之前在做一個SQL SERVER操作小對象的時刻有寫過該功效的SQL,貼出來供年夜家參考:
declare @dbname varchar(50)
set @dbname='數據庫稱號'
declare @sql varchar(50)
declare cs_result cursor local for select 'kill '+cast(spid as varchar(50)) from sys.sysprocesses where db_name(dbid)=@dbname
open cs_result
fetch next from cs_result into @sql
while @@fetch_status=0
begin
execute(@sql)
fetch next from cs_result into @sql
end
close cs_result
deallocate cs_result
該SQL語句應用游標輪回一切正在應用該數據庫的過程,並經由過程kill敕令殺逝世過程。
3,應用SQL語句,斷開一切用戶鏈接,並回滾一切事務,詳細SQL語句以下:
ALTER DATABASE [數據庫稱號]
SET OFFLINE WITH ROLLBACK IMMEDIATE
留意:在應用辦法2與3時,不要在須要的復原的數據庫下履行,建議在master數據庫上面履行。