今天公司數(shù)據(jù)庫又被注入,我¥……——(……¥……——*%……(*%……——¥%……
還原的時候又出現(xiàn)了那個問題““數(shù)據(jù)庫正在使用,所以無法獲得對數(shù)據(jù)庫的獨占訪問權(quán)”。”,忘記第一次被注入的時候還原是怎么被解決的話,又花了一個上午的時間搜索解決方法,現(xiàn)已解決,做下記錄,以備后用。
14.6.1? 恢復中的單用戶模式問題
1.故障現(xiàn)象
在在線恢復數(shù)據(jù)庫時,出現(xiàn)如圖14-31所示界面,提示“數(shù)據(jù)庫正在使用,所以無法獲得對數(shù)據(jù)庫的獨占訪問權(quán)”。
圖14-31?
故障現(xiàn)象
2.原因分析
這是因為在還原數(shù)據(jù)庫時,有其他用戶正在使用數(shù)據(jù)庫。還原數(shù)據(jù)庫要求數(shù)據(jù)庫工作在單用戶模式。
通常就是DBA在操作時,不允許其他用戶連接數(shù)據(jù)庫。
3.解決方法
配置數(shù)據(jù)庫的屬性,在如圖14-32所示的【選項】選項卡中,設(shè)置【限制訪問】參數(shù)為“Single”即可。
圖14-32 【選項】選項卡
設(shè)置完畢查看數(shù)據(jù)庫的狀態(tài)如圖14-33所示,表明成功將數(shù)據(jù)庫設(shè)置為單用戶模式。
圖14-33? 成功設(shè)置數(shù)據(jù)庫為單用戶模式
另也搜索出另一解決方案,好像記得我第一次被注入時還原數(shù)據(jù)庫就是用這種方法的吧。
在還原數(shù)據(jù)庫時,有時會提示因為數(shù)據(jù)庫正在使用,所以無法獲得對數(shù)據(jù)庫的獨占訪問權(quán)!!
這時需要在還原數(shù)據(jù)庫前先殺死正在使用數(shù)據(jù)庫得線程.
如以下殺死正在使用'Calendar3'數(shù)據(jù)庫的線程:
declare @dbname varchar(20)
set @dbname='Calendar3'
declare @sql nvarchar(500)
declare @spid int--SPID 值是當用戶進行連接時指派給該連接的一個唯一的整數(shù)
set @sql='declare getspid cursor for
select spid from sysprocesses where dbid=db_id('''+@dbname+''')'
exec (@sql)
open getspid
fetch next from getspid into @spid
while @@fetch_status<>-1--如果FETCH 語句沒有執(zhí)行失敗或此行不在結(jié)果集中。
begin
exec('kill '+@spid)--終止正常連接
fetch next from getspid into @spid
end
close getspid
deallocate getspid
還原的時候又出現(xiàn)了那個問題““數(shù)據(jù)庫正在使用,所以無法獲得對數(shù)據(jù)庫的獨占訪問權(quán)”。”,忘記第一次被注入的時候還原是怎么被解決的話,又花了一個上午的時間搜索解決方法,現(xiàn)已解決,做下記錄,以備后用。
引用
14.6.1? 恢復中的單用戶模式問題
1.故障現(xiàn)象
在在線恢復數(shù)據(jù)庫時,出現(xiàn)如圖14-31所示界面,提示“數(shù)據(jù)庫正在使用,所以無法獲得對數(shù)據(jù)庫的獨占訪問權(quán)”。

圖14-31?
故障現(xiàn)象
2.原因分析
這是因為在還原數(shù)據(jù)庫時,有其他用戶正在使用數(shù)據(jù)庫。還原數(shù)據(jù)庫要求數(shù)據(jù)庫工作在單用戶模式。
通常就是DBA在操作時,不允許其他用戶連接數(shù)據(jù)庫。
3.解決方法
配置數(shù)據(jù)庫的屬性,在如圖14-32所示的【選項】選項卡中,設(shè)置【限制訪問】參數(shù)為“Single”即可。

圖14-32 【選項】選項卡
設(shè)置完畢查看數(shù)據(jù)庫的狀態(tài)如圖14-33所示,表明成功將數(shù)據(jù)庫設(shè)置為單用戶模式。
圖14-33? 成功設(shè)置數(shù)據(jù)庫為單用戶模式
另也搜索出另一解決方案,好像記得我第一次被注入時還原數(shù)據(jù)庫就是用這種方法的吧。
引用
在還原數(shù)據(jù)庫時,有時會提示因為數(shù)據(jù)庫正在使用,所以無法獲得對數(shù)據(jù)庫的獨占訪問權(quán)!!
這時需要在還原數(shù)據(jù)庫前先殺死正在使用數(shù)據(jù)庫得線程.
如以下殺死正在使用'Calendar3'數(shù)據(jù)庫的線程:
declare @dbname varchar(20)
set @dbname='Calendar3'
declare @sql nvarchar(500)
declare @spid int--SPID 值是當用戶進行連接時指派給該連接的一個唯一的整數(shù)
set @sql='declare getspid cursor for
select spid from sysprocesses where dbid=db_id('''+@dbname+''')'
exec (@sql)
open getspid
fetch next from getspid into @spid
while @@fetch_status<>-1--如果FETCH 語句沒有執(zhí)行失敗或此行不在結(jié)果集中。
begin
exec('kill '+@spid)--終止正常連接
fetch next from getspid into @spid
end
close getspid
deallocate getspid
更多文章、技術(shù)交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
