zoukankan      html  css  js  c++  java
  • SqlServer 自动备份、自动删除7天前备份

    -----sqlserver 数据异地备份   默认删除 七天前的数据
    -----该代码可配置成SQLServer作业里做调度,或者配置成任务计划进行执行
    ----挂载异地盘符
    exec master..xp_cmdshell 
    'net use w: "\172.16.30.34D$"  "726" "/user:172.16.30.34administrator"', no_output
    /*--说明: 
    w: 是映射网络路径对应本机的盘符,与下面的备份对应 
    \172.16.30.34D$    是要映射的网络路径 
    172.16.30.34administrator    
    172.16.30.34是远程的计算机名,administrator是登陆的用户名 
    726 上面指定的administrator用户的密码 
    --*/ 
    go
     
    go
    
    -----用游标:
    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()-7,112)+'.bak'', no_output' 
    from master..sysdatabases where dbid=37 --这里查询出需要备份的数据库,可以一次性备份多个数据库
    open datebak
    
    fetch next from datebak into @s,@del
    while @@fetch_status=0
        begin 
            ----对于要删除的备份文件进行一场捕获(解决第一次部分的时候,执行失败的情况)
            begin try
                exec (@del)
            end try
            begin catch
            if @@TRANCOUNT >0
                BEGIN
                    print @del
                END 
            end catch 
            exec(@s)
            fetch next from datebak into @s,@del
        end
    close datebak
    deallocate datebak
    go
    --删除映射
    exec master..xp_cmdshell 'net use w: /delete'
    
    go
      
  • 相关阅读:
    LoadRunner利用ODBC编写MySql脚本(转)
    未在本地计算机上注册 microsoft.jet.oledb.4.0 提供程序
    趣文:舌尖上的程序猿
    Hadoop之我见
    C语言的经典排序算法源码
    Oracle自学笔记(一)
    log4j.properties 详解与配置步骤总结
    修改oracle用户密码永不过期
    Android 发送短信总结
    CEF禁止右键菜单
  • 原文地址:https://www.cnblogs.com/xiaotao726/p/5711566.html
Copyright © 2011-2022 走看看