zoukankan      html  css  js  c++  java
  • MSSQL Server2012备份所有数据库到网络共享盘上面,并自动删除几天前的备份。。

    1备份当前MSQL所有数据库

    --要备份到哪一服务的IP网络位置,要提前打开文件夹共享.这里还要输入用户名和密码,下面这一行是建立共享
    
    exec master..xp_cmdshell 'net use \192.168.8.108DBBak Password /user:192.168.1.108administrator',NO_OUTPUT
    
    go
    
    declare @s nvarchar(200),@del nvarchar(200)
    select @s='',@del=''
    
    --自动备份,并删除4天前的备份。可以随意改数字.
    declare datebak cursor for
    select 
    [bak]='backup database '+quotename(Name)+' to disk =''\192.168.8.108DBBak'+Name+'('+convert(varchar(10),getdate(),120)+')'+'.bak'' with init',
    [del]='exec master..xp_cmdshell '' del \192.168.8.108DBBak'+Name+'('+convert(varchar(10),getdate()-4,120)+')'+'.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 \192.168.8.108DBBak/delete'
    
    go

    2.备份指定的几个数据到网络盘

    declare @DBName nvarchar(max)
    declare @BakName nvarchar(max)
    
    --建立(打开)共享目录
    exec master..xp_cmdshell 'net use \192.168.1.100MSSQLDBBak  Password /user:192.168.1.100administrator'
    
    Declare DBCursor CURSOR 
    FORWARD_ONLY READ_ONLY
    --要删除的指定数据库名称在下面用union select拼接
    For ( select '[DB1]' as DBName
    union select '[DB2]' as DBName ) open DBCursor fetch next from DBCursor into @DBName while (@@fetch_status=0) begin --print @DBName --select @DBName='[LFBMP.PO]' --指定保存路径本地目录 --select @BakName='D:MSSQLDBBakBC_'+REPLACE(@DBName,'.','_')+Convert(char(10),getdate(),120)+'.bak'
       --指定保存到网络共享目录
    select @BakName='\192.168.1.100MSSQLDBBak'+REPLACE(@DBName,'.','_')+Convert(char(10),getdate(),120)+'.bak' declare @BakSQL nvarchar(max) --select @BakSQL='Backup Database '+@DBName+' To disk='''+@BakName+'''' select @BakSQL='Backup Database '+@DBName+' To disk='''+@BakName+''' with init,nounload ' print @BakSQL exec (@BakSQL) fetch next from DBCursor into @DBName end close DBCursor deallocate DBCursor --删除(关闭)共享目录 exec master..xp_cmdshell 'net use \192.168.1.100MSSQLDBBak /delete' --修改密码,重新执行以下代码 --exec master..xp_cmdshell 'net use \192.168.1.100MSSQLDBBak Password /user:192.168.1.100administrator' --删除(关闭)共享目录 --exec master..xp_cmdshell 'net use \192.168.1.100R910MSSQLDBBak /delete'
  • 相关阅读:
    mysql8.0.主从复制搭建
    Saltstack学习(四)-state状态模块及配置管理
    Saltstack学习(三)-远程执行及Return
    Saltstack学习(二)-数据系统
    Saltstack学习(一)-基本理论及配置
    DNS原理及服务器搭建配置
    CentOS6配置Vsftpd基于MySQL虚拟用户验证登录
    Javascript 中 == 和 === 区别
    C语言字符输出格式化
    在线c++编译器(gcc)
  • 原文地址:https://www.cnblogs.com/q149072205/p/9068438.html
Copyright © 2011-2022 走看看