数据备份还原中排他锁问题的解决方案

简介:

 

问题来由:

在三丰物贸的项目中,有个关键的处理就是还原备份数据库 由于使用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都可以用!!

希望整理出来的文章对大家有用!!

目录
相关文章
|
机器学习/深度学习 算法 数据可视化
可解释性机器学习:基于随机森林和Ceteris-paribus的乳腺癌早期诊断研究
可解释性机器学习:基于随机森林和Ceteris-paribus的乳腺癌早期诊断研究
518 1
|
持续交付
2分钟教你部署2048小游戏到云服务器上
2分钟教你部署2048小游戏到云服务器上
464 0
2分钟教你部署2048小游戏到云服务器上
|
监控 安全 关系型数据库
OceanBase数据库完整版和商业版
OceanBase数据库完整版和商业版
323 1
|
机器学习/深度学习 人工智能 Cloud Native
软件开发的未来已来:大数据、AI和云原生的终极融合如何引爆市场
大数据、人工智能(AI)和云原生技术的终极融合正在软件开发领域引发巨大的变革和市场机遇。这个融合的未来已经来临,并将引爆市场的原因如下
353 0
|
算法
【一文搞懂】—带霍尔编码器的直流有刷减速电机
本文详细介绍了直流有刷电机的工作原理,为什么要有减速电机,减速比是什么,什么是编码器,编码器的作用。针对霍尔编码器介绍了一些相关概念以及检测电机转速和转向的原理。最后,给出了详细的测速程序设计思路和代码实现。
1108 0
|
Linux Windows
嵌入式Linux系列第13篇:USB摄像头拍照
嵌入式Linux系列第13篇:USB摄像头拍照
|
Web App开发 存储 缓存
前端性能优化系列 | 加载优化(下)
1. 资源加载优先级 在浏览器发起网络请求时,并非每个字节都具有相同的优先级,所以,浏览器通常会对所要加载的内容进行推测,将相对重要的信息先呈现给用户。比如浏览器一般会先加载CSS,再去加载JavaScript脚本和图像文件。当然,浏览器的判断并不一定都是准确的,下面就来看看如何影响浏览器对资源加载的优先级。
752 0
|
Web App开发 安全 应用服务中间件
针对Chrome 80和 Chrome 91对Cookie SameSite限制的解决方案
针对Chrome 80和 Chrome 91对Cookie SameSite限制的解决方案
1295 0
针对Chrome 80和 Chrome 91对Cookie SameSite限制的解决方案
|
机器学习/深度学习 城市大脑 人工智能
产品百科 |城市大脑是什么?
本文是对城市大脑的介绍,城市大脑的“三突破”是什么,城市大脑的整体架构以及城市大脑相关的解决方案的介绍。
产品百科 |城市大脑是什么?
|
编解码 算法 数据安全/隐私保护
dwt嵌入水印与提取水印
dwt嵌入水印与提取水印
684 0
dwt嵌入水印与提取水印