sql server 還原資料庫時提示資料庫正在使用,無法進行操作的解決方案_MsSql

來源:互聯網
上載者:User

這個問題的原因在於有使用者串連了當前要做還原的資料庫,這裡的使用者甚至包括當前要做還原的使用者。解決辦法就是關閉與要還原資料庫的所有串連。

雲棲社區小編推薦的一個方法:到服務裡面重啟下sqlserver服務即可。

問題一描述:SQL ServerDatabase Backup還原後,在資料庫名稱後會出現“受限制訪問”字樣

問題二描述:在對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資料庫下面執行。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.