设置SQL2000定时备份到异机的问题

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

--创建映射
exec master..xp_cmdshell 'net use w: /pc23RoyDatabaseBackup$  "roy123"/user:mainserverRoy.HQ',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)

企业管理器
--管理
--
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--属性--启动类型--选择"自动启动"--确定.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值