SQL远程恢复

原文:SQL远程恢复

-- =============================================

-- Author: dcrenl

-- Create date: 2013-9-5 14:08:35

-- Description: WEB服务器远程恢复数据库,远程恢复和远程备份的思路是一样的。

--不过恢复的时候有个释放连接的问题,所以多加了一个释放连接的存储过程。

--本来可以整合到一个里面但是考虑到其它地方也会用到释放连接所以把它单独拿出来了。

-- =============================================

ALTER PROCEDURE [dbo].[RemoteRestore]

@DataDisk nvarchar(max),--需要在数据库服务器上映射的盘符

@WEBAddr nvarchar(max),--WEB服务器地址

@WEBDisk nvarchar(max),--WEB服务器共享目录(例如:D$ 或 C$\Windows)

@Password nvarchar(max),--WEB服务器密码

@UserName nvarchar(max),--WEB服务器用户名

@DataName nvarchar(max),--需要恢复的数据库名

@BackName nvarchar(max)--需要恢复的数据库名

AS

BEGIN

SET NOCOUNT ON;

 

--打开高级设置

exec sp_configure 'show advanced options',1

reconfigure

--开启xp_cmdshell

exec sp_configure 'xp_cmdshell',1

reconfigure

--将WEB服务器路径映射到数据库服务器

exec ('master..xp_cmdshell ''net use ' + @DataDisk + ': \\' +
@WEBAddr + '\' + @WEBDisk + ' "' + @Password + '" /user:' +
@WEBAddr + '\' + @UserName + '''')

--开始备份并复制到WEB服务器的映射路径

declare  @DataBaseName varchar(50)

set @DataBaseName = 'KF_Reg_' + @BackName

exec p_killspid @DataBaseName

exec ('RESTORE DATABASE [' + @DataName + '] FROM DISK =
N'''+@DataDisk+':\' +@BackName+'.bak'' WITH REPLACE')

--关闭映射路径

exec ('master..xp_cmdshell ''net use ' + @DataDisk + ':
/delete''')

--关闭xp_cmdshell

exec sp_configure 'xp_cmdshell',0

reconfigure

--关闭高级设置

exec sp_configure 'show advanced options',0

reconfigure

END

 

 

-------------------------------------------------------------------------------------------------

 

 

--断开所有用户连接的存储过和

ALTER proc [dbo].[p_killspid] (@dbname varchar(100))
  

as   

begin   

declare @sql nvarchar(500)
  

declare @spid int   

set @sql='declare getspid cursor for  
 

select spid from master.sys.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   

 

 

时间: 2024-10-30 03:12:23

SQL远程恢复的相关文章

pl sql连不上数据库-pl sql远程连不上数据库

问题描述 pl sql远程连不上数据库 以前在家用pl sql可以连接数据库.自从公司改了用户之后,在公司可以连接数据库,但是在家连不上数据库了.但是别人在家都可以pl sql连接上数据库.哪位大神知道是怎么回事啊?在公司可以连接,只是在家连不上,所以可以排除不是连接配置的问题.

服务器-sql远程连接数据库失败

问题描述 sql远程连接数据库失败 有一台服务器是数据库,在别的服务器上远程连接这个数据库是可以连接的,但是唯独这一台不可以.闹不明白咋回事.还麻烦下哥哥姐姐们帮想想办法.看下是哪里有问题了.不胜感激! 解决方案 ping一下看看是不是网络问题,再检查下本地安装的数据库软件是否可用. 解决方案二: 1.确认网关正常 2.链接中用的是主机名还是IP,如果是主机名,确认主机名得到正确解析.可以换为IP连接试试 解决方案三: 网络问题,看是数据库进程运行正常 解决方案四: 还有是否有防火墙拦截请求 解

SQL入侵恢复xp_cmdshell方法总结_MsSql

1433 SQL入侵恢复xp_cmdshell方法总结 sql server 2005下开启xp_cmdshell的办法 EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE; SQL2005开启'OPENROWSET'支持的方法: exec sp_configure 'show advanced options', 1;RECONFIGURE

SQL远程备份

原文:SQL远程备份 set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go   -- ============================================= -- Author: dcrenl -- Create date: 2013-9-5 9:54:46 -- Description: WEB服务器远程备份数据库, --此方法需要打开WEB服务器的共享功能. --验证方法同一局域网其它机器里在运行里输入 \\IP\C$ 要求输入用户名

SQL入侵恢复xp_cmdshell方法总结

1433 SQL入侵恢复xp_cmdshell方法总结 sql server 2005下开启xp_cmdshell的办法 EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE; SQL2005开启'OPENROWSET'支持的方法: exec sp_configure 'show advanced options', 1;RECONFIGURE

PL/SQL远程备份和恢复Oracle数据库_oracle

在客户端远程备份的文件保存在数据库所在主机上,不会直接拷贝到客户端.------------------------------------------  首先无论你的Oracle服务器是Linux还是windows操作系统,Oracle的备份和恢复操作都是使用DBMS_DUMP来实现导入(备份)和导出(恢复).首先你要安装好PL/SQL,用PL/SQL来执行我下面提供的JOB就可以实现了.  一.Oracle的导出(备份) 1.用PLSQL连接Oracle数据库服务器,使用你需要导出的用户连接

选择SQL Server恢复模型确保正确备份

问题 在管理SQL Server时首先要做的一件事是建立一个合适的备份计划以便将失败事件中任何数据的丢失 可能最小化.建立备份计划之后当然要做些数据库配置,这些配置是建立以确保你可以正确地备份数据库.在这篇文章里我们将看看SQL Server所提供的不同恢复模型以及怎样为你的数据库选择恢复模型. 专家解答 对于SQL Server 2000和2005,Microsoft为你的数据库提供了三个不同的恢复模型.在你的服务器上 ,每个数据库可以建立得各不相同,而且你还可以根据需要改变恢复模型,所以这个

VFP与SQL远程异构数据库

数据|数据库 <P> </P>熟悉 VFP的朋友都知道,在 VFP 里我们可以使用远程视图 (Remote View) 和 SPT(SQL Pass Through) 技术控制远程异构数据库.这些技术其实是 VFP 对 ODBC 的 API 的封装,所以对于用户来说访问远程数据库就像操作传统的DBF一样简单.关于这两种技术的使用,完全可以洋洋洒洒地写下一本书,鉴于本文主题及篇幅,这里仅枚举 SPT 技术访问远程数据的应用. 很多人认为有了远程视图这样直观.简单的工具,为什么还需要

从一个目录的备份文件中自动产生SQL Server恢复脚本

问题 数据库管理员眼下的一个挑战是备份和恢复数据库.备份在自动调度表中完成,但是恢复可以采取很多不同的版本,你可能需要恢复一个产品数据库,恢复一个发展包,或者测试数据库,或者只在另外的地方创建数据库副本.有一些自动执行恢复过程和创建脚本的方法,但是这个方法显示了一种方式,那就是只读取存在于备份文件中的目录的内容. 专家解答 以下是读取目录中的内容和创建需要通过执行来恢复数据库的恢复命令的一种简单方法.这个脚本可以用于全部备份,差异备份和事务日志备份. 在我们开始之前,下面的脚本假设情况如下: 1