閱讀327 返回首頁    go 阿裏雲 go 技術社區[雲棲]


數據備份還原中排他鎖問題的解決方案

 

問題來由:

在三豐物貿的項目中,有個關鍵的處理就是還原備份數據庫 由於使用JAVA來實現所以必須 運用SQL語句來解決

在備份還原數據庫的時候竟然出現了問題:

在網上找了好久基本上是些沒用的東西!!

還好CSDN上問了專家!一下OK!

我的操作如下:

 

1SQL 語句備份數據庫:

 

BACK DATABASE inOutSell

TO DISK = 'D:/mydatabase.bak'

WITH FORMAT,

NAME = 'FULL BACK OF inOutSell'

go

 

描述:將數據庫inOutSell數據庫備份為D盤目錄下mydatabase.bak文件

 

 

2SQL 語句還原數據庫:

 

 

USE inOutSell

RESTORE DATABASE inOutSell

FROM DISK = 'D:/mydatabase.bak'

WITH REPLACE

GO

描述:

將inOutSell數據庫還原還原的文件在為D盤目錄下的mydatabase.bak文件

 

 

 

 

3:出現這個問題是,怎麼回事?

表示數據庫正在使用,未能獲得對數據庫的排它訪問權。怎麼解決?

 

4:查看手冊沒有找到合適的:

5:上google查沒有結果!!太雜了

=======================================

6: 上CSDN上麵問:10分鍾解決!爽

方式1:

 

  create      proc      killspid      (@dbname      varchar(20))      

   as      

   begin      

   declare      @sql      nvarchar(500)      

   declare      @spid      int      

   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      

   begin      

   exec('kill      '+@spid)      

   fetch      next      from      getspid      into      @spid      

   end      

   close      getspid      

   deallocate      getspid      

   end      

   

   --用法      

   use      master      

   exec      killspid      '數據庫名'   

 

=======================================

方式2:

 

CREATE PROC KillSpid(@DBName varchar)

AS BEGIN

DECLARE @SQL varchar

DECLARE   @SPID int

SET @SQL = 'DECLARE CurrentID CURSOR FOR

SELECT spid from sysprocess where dbid = db_id('''+@DBName+''')'

fetch next from CurrentID INTO @SPID

while @@FETCH_STATUS <> -1

BEGIN

exec('KILL '+@SPID)

FETCH NEXT FROM   CurrentID INTO @SPID

END

CLOSE CurrentID

DEALLOCATE CurrentID

END

=======================================

 

 

方案1 、2都可以用!!

希望整理出來的文章對大家有用!!

最後更新:2017-04-02 00:06:46

  上一篇:go php在線教程
  下一篇:go 非常有用的一些sql server 2005元數據函數