SQL Server数据库远程备份方法

摘自flystone的博客:http://blog.csdn.net/happyflystone/archive/2008/01/18/2051325.aspx


企业管理器
--管理
--SQL Server代理
--右键作业
--新建作业
--"常规"项中输入作业名称
--"步骤"项
--新建
--"步骤名"中输入步骤名
--"类型"中选择"Transact-SQL 脚本(TSQL)"
--"数据库"选择执行命令的数据库
--"命令"中输入要执行的语句:
                      declare @strsql varchar(1000)
                      declare @strdirname varchar(50)
                      declare @strcmd varchar(50)
                      declare @strsend varchar(1000)
                      declare @strdate varchar(50)
                      exec master..xp_cmdshell 'net use //192.168.0.151/d$ Password /user:192.168.0.151/administrator'
                      set @strsql='backup database new_his to disk=''//192.168.0.151/d$/serverd/'
                      set @strdirname=replace(substring(convert(varchar(20),getdate(),120),1,10),'-','')+'12'
                      set @strcmd='md //192.168.0.151/d$/serverd/'
                      set @strcmd=@strcmd+@strdirname
                      exec master..xp_cmdshell @strcmd
                      --print @strsql
                      set @strsql=@strsql+@strdirname+'/new_hisbackup.dat'' with init,nounload,noskip,noformat'
                      --print @strsql
                      exec (@strsql)

                     ----其中写的IP地址及共享目录,网友自行修改,Password一定要正确

--确定
--"调度"项
--新建调度
--"名称"中输入调度名称
--"调度类型"中选择你的作业执行安排
--如果选择"反复出现"
--点"更改"来设置你的时间安排


然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行

设置方法:
我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.


以下是命令解释,摘自roy_88的博客:http://blog.csdn.net/roy_88/archive/2007/08/25/1758497.aspx

-- 以下代码放在作业里做调度,自动备份、自动删除4天前备份

-- 创建映射
exec  master..xp_cmdshell  ' net use w: /DatabaseBackup$  "password"/user:Roy ' ,NO_OUTPUT
go
-- ---2000用游标:
declare   @s   nvarchar ( 200 ), @del   nvarchar ( 200 )
select    @s = '' , @del = ''

declare  datebak  cursor   for
select  
    
[ bak ] = ' backup database   ' + quotename (Name) + '   to disk = '' w: ' + Name + ' _ ' + convert ( varchar ( 8 ), getdate (), 112 ) + ' .bak ''   with init ' ,
    
[ del ] = ' exec master..xp_cmdshell  ''  del w: ' + Name + ' _ ' + convert ( varchar ( 8 ), getdate () - 4 , 112 ) + ' .bak '' , no_output '  
from  master..sysdatabases  where  dbid > 4   -- 不备份系统数据库
open  datebak

fetch   next   from  datebak  into   @s , @del
while   @@fetch_status = 0
    
begin
        
exec  ( @del )
        
exec ( @s )
        
fetch   next   from  datebak  into   @s , @del
    
end
close  datebak
deallocate  datebak
go
-- 删除映射
exec  master..xp_cmdshell  ' net use w: /delete '

go


-- 2005用max支持2G的字符串
declare   @s   nvarchar ( max ), @del   nvarchar ( max )
select    @s = '' , @del = ''

select  
    
@s = @s +
        
char ( 13 ) + ' backup database   ' + quotename (Name) + '   to disk = '' w: ' + Name + ' _ ' + convert ( varchar ( 8 ), getdate (), 112 ) + ' .bak ''   with init ' ,
    
@del = @del +
        
char ( 13 ) + ' exec master..xp_cmdshell  ''  del w: ' + Name + ' _ ' + convert ( varchar ( 8 ), getdate () - 4 , 112 ) + ' .bak '' , no_output '  

from  master..sysdatabases  where  dbid > 4   order   by  dbid  asc

exec  ( @del )

exec ( @s )


最后在此感谢
flystone和 roy_88
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值