sqlserver通过储存过程备份到远程机器

一、在master数据库中创建储存过程sql_backup

--Full BackUp 
--Use Master 
CREATE proc sql_backup
as 
Declare @strPsw varchar(50) 
Declare @strUsr varchar(50) 
Declare @strCmdShell varchar(300) 
Declare @strDataBaseName varchar(20) 
Declare @FullFileName Varchar(200) 
Declare @FileFlag varchar(50) 
Declare @ToFileName varchar(200) 
Declare @SQLStr varchar(500) 
Declare @SQLStr2 varchar(500) 
Declare @FlagDel varchar(20) 
Set 
@FileFlag=replace(replace(convert(char(20),getdate(),20),':','') ,' ','-') --备份的文件命名规则:日期-时间.bak 
Set @strUsr='SOFMTI_TD\administrator' --需填写域名\用户名(目标机器的Windows 登陆名) 
Set @strPsw='pass'--需填写Windows 登陆密码(如:Soondy) 
Set @strCmdShell= 'net use \\192.168.0.19\e$' + @strPsw + ' /user:' +@strUsr --需填写IP(目标机器的IP 地址,如:192.168.2.178) 
Set @strDataBaseName='fashion'--填写数据库名称(如:Soondy) 
Set @FullFileName='E:\sqlbackup\'+'fashion_backup_'+@FileFlag+'.BAK' 
--需填写本地备份临时文件的目录,因为需要先备份到本地再 copy 到目标机器(如:保存目录为 E:\SoondyTest\) 
Set @ToFileName='\\192.168.0.19\e$\sqlbackup\' --需填写IP(目标机器的IP 地址)以及保存的目录(如:\\192.168.2.178\c$\Test\) 
Set @FlagDel='False'--填写True 表示删除本地的备份临时文件,填写False 或其他字符表示保留该文件 
Set @SQLStr='copy '+@FullFileName+' '+@ToFileName 
Set @SQLStr2='del ' +@FullFileName 
BackUp DataBase @strDataBaseName To Disk= @FullFileName with init 
exec master..xp_cmdshell @strCmdShell--尝试连接到目标机器 
exec Master..xp_cmdshell @SQLStr --拷贝到目标机器上 
if (@FlagDel ='True') exec master.. xp_cmdshell @SQLStr2--删除本地的备份临时文件 

 

二、创建作业调度

SQL Server代理
--右键作业
--新建作业
--"常规"项中输入作业名称
--"步骤"项
--新建
--"步骤名"中输入步骤名
--"类型"中选择"Transact-SQL 脚本(TSQL)"
--"数据库"选择执行命令的数据库
--"命令"中输入要执行的语句: exec sql_backup
--确定
--"计划"项
--新建
--"名称"中输入调度名称
--"调度类型"中选择你的作业执行安排
--如果选择"反复出现"
--点"更改"来设置你的时间安排

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值