SqlServer数据库同时备份到两台服务器上(并自动删除过期文件)
数据库同时备份到两台服务器上(并自动删除过期文件)
举例 :(本地)服务器A: IP :192.168.1.1
(远程)服务器B: IP :192.168.1.2
数据库版本:SqlServer2008R2
一. 两台服务器分别创建共享文件夹(能互相访问,同属一个局域网)
A: E: IWFSBACKUP(文件夹)
B: E: IWFSBACKUP(文件夹)
二. 在master数据库下建立存储过程 dbo.iwfsbackup
USE [master] GO /****** Object: StoredProcedure [dbo].[iwfsbackup] Script Date: 07/17/2018 09:57:27 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE proc [dbo].[iwfsbackup] as Declare @strPsw varchar(50) Declare @strUsr varchar(50) Declare @strCmdShell varchar(300) Declare @strDataBaseName varchar(20) Declare @FullFileName Varchar(200) Declare @FullFileName1 Varchar(200) Declare @FullFileName2 Varchar(200) Declare @FileFlag varchar(50) Declare @FileFlag2 varchar(50) DECLARE @FileFlag3 varchar(50) Declare @ToFileName varchar(200) Declare @SQLStr varchar(500) Declare @SQLStr2 varchar(500) Declare @SQLStr3 varchar(500) Declare @FlagDel varchar(20) --定义备份的数据库名称 Set @strDataBaseName='db_iwfs' --定义本地备份文件的名称 Set @FileFlag=@strDataBaseName + '_db_' + replace(convert(char(20),getdate(),112),' ','') --定义本地3天前的备份文件名称 Set @FileFlag3=@strDataBaseName + '_db_' + replace(convert(char(20),getdate()-3,112),' ','') --定义远程服务器3天前的备份文件名称 Set @FileFlag2=@strDataBaseName + '_db_' + replace(convert(char(20),getdate()-3,112),' ','') --设置远程服务器的登录域和用户名 Set @strUsr='B\administrator' --设置远程服务器登录密码 Set @strPsw='' --设置远程服务器连接 Set @strCmdShell= 'net use \\192.168.1.2\e$ ' + @strPsw + ' /user:' +@strUsr --设置本地备份文件名称 Set @FullFileName='E:\IWFSBACKUP\'+@FileFlag+'.BAK' --设置本地3天前的备份文件名称 set @FullFileName1='E:\IWFSBACKUP\'+@FileFlag3+'.BAK' --设置远程服务器3天前的备份文件名称 set @FullFileName2='\\192.168.1.2\e$\IWFSBACKUP\'+@FileFlag2+'.BAK' --设置远程服务器保存备份文件目录 Set @ToFileName='\\192.168.1.2\e$\IWFSBACKUP\' --设置为True时,即删除备份,设置为False时,即不删除备份文件 Set @FlagDel='True' --设置从本地复制备份文件至远程服务器的语句 Set @SQLStr='copy '+@FullFileName+' '+@ToFileName --设置删除本地3天前的备份文件 Set @SQLStr2='del ' +@FullFileName1 --设置删除远程服务器3天前的备份文件 Set @SQLStr3='del ' +@FullFileName2 --备份EliteUC数据库 BackUp DataBase @strDataBaseName To Disk= @FullFileName with init --连接远程服务器 exec master..xp_cmdshell @strCmdShell --复制备份文件至远程服务器 exec Master..xp_cmdshell @SQLStr --删除3天前本地的备份文件 if (@FlagDel ='True') exec master.. xp_cmdshell @SQLStr2 --删除3天前远程服务器备份文件 if (@FlagDel ='True') exec master.. xp_cmdshell @SQLStr3
--作业调用该存储过程
execute master.dbo.iwfsbackup
--DOS拷贝文件到别的服务器
copy E:\IWFS\.txt \\192.168.1.2\IWFSBACKUP
三. 新建SqlServer作业,调用存储过程,执行备份作业
1.新建作业

2.新建步骤


3.新建计划


若执行存储过程报错:execute master.dbo.iwfsbackup
“消息 15281,级别 16,状态 1,过程 xp_cmdshell,第 1 行
SQL Server 阻止了对组件 'xp_cmdshell' 的 过程'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用
'xp_cmdshell'。有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器". ”
解决办法:
在master 数据库下执行以下语句:
sp_configure 'show advanced options',1 reconfigure go sp_configure 'xp_cmdshell',1 reconfigure go
SqlServer数据库同时备份到两台服务器上(并自动删除过期文件)的更多相关文章
- SQL Server2005 两台服务器上的数据库互相同步(转载)
1.1测试环境 Item 发布机 A 订阅机 B OS Windows 2003 Server Windows 2003 Server SQL SQL Server 2005 企业版 SQL Serv ...
- SQL Server2005 两台服务器上的数据库同步(转载)
1.1测试环境 Item 发布机 A 订阅机 B OS Windows 2003 Server Windows 2003 Server SQL SQL Server 2005 企业版 SQL Serv ...
- rsync 实现文件同步 (重要数据通过rsyncr把数据同步到不同的两台服务器上,这样可以防止服务器的硬盘故障导致数据丢失) 客户端同步时如果要排某个目录
rsync是unix系统下的数据镜像 备份工具,一般linux系统都 自带: # rpm -qa|grep rsync rsync-3.0.9-17.el7.x86_64 服务器端:10.100.0. ...
- Linux两台服务器上互传文件
主服务器:192.168.100.30: 文件所在服务器:192.168.100.31: 1. 在主服务上拷贝文件: #scp root@192.168.100.31:/home/a.txt /hom ...
- SQLServer自动备份和自动删除过期文件
以下为转载的文章: 点击下一步: 自定义名称和说明,点击更改: 点击确定,下一步 1.备份: 选择备份,下一步,再下一步,选择需要备份的数据库: 选择备份文件存放的路径: 点击下一步,选择系统产生的报 ...
- 记sql server 2008R2 两台服务器 使用非默认端口的发布订阅
最近研究数据库的复制.因为要在两台服务器上,当使用数据库的默认1433端口时,订阅发布没有任何问题,考虑到数据库的安全性问题,需要改用其他端口.这里以10010为例. 有A.B两台服务器:A作为发布服 ...
- 将Oracle数据库数据每天备份恢复一次数据到另一台服务器上两份数据
1.创建用户,授权,创建测试数据 创建用户 CREATE USER test identified by 123; 授权 grant dba to test; 创建测试数据 create table ...
- mysql 忘记密码,赋予用户权限,两台服务器的数据库之间快速导入
mysql 忘记密码: 1.首先service mysql stop mysqld --skip-grant-tables & 开启数据库 然后就可以mysql -uroot 直接进数据库, ...
- 如何在一台服务器上安装两个mysql或者更多
如何在一台服务器上安装两个mysql 1 前言 上篇写了在一台机器上源码编译安装一个mysql,那么如何在一台机器上源码编译安装两个mysql或者更多呢? 2 环境 mysql ...
随机推荐
- Excel Sheet Column Title (STRING - TYPE CONVERTION)
QUESTION Given a positive integer, return its corresponding column title as appear in an Excel sheet ...
- 【校招面试 之 C/C++】第17题 C 中的malloc相关
1.malloc (1)原型:extern void *malloc(unsigned int num_bytes); 头文件:#include <malloc.h> 或 #include ...
- iPhone iPad 各种控件默认高度
iPhone和iPad下各种常见控件的宽度和标准是一样的,所以这里就用iPhone说明. 以下是常见的几种控件的高度.Statusbar,Navigationbar和Tabbar的宽度极其图标大小. ...
- appcache的一个特殊用法
Application Cache是HTML5里出现的用来实现离线应用的技术方案.在使用了appcache的页面会被缓存,同时浏览器检查manifest文件有没有变化,如果有变化,只有当用户下次进行访 ...
- 不使用if switch 各种大于 小于 判断2个数的大小
哥们写的代码: dword big; __asm { mov eax,a mov ebx,b cmp eax,ebx jle HOHO big =ebx HOHO: big = eax } 网上搜了一 ...
- (转载)我的java问题排查工具单
原文地址:https://yq.aliyun.com/articles/69520 我的问题排查工具箱 前言 平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在 ...
- OpenGLES.APPLE_texture_format_BGRA8888
OpenGL ES的扩展: APPLE_texture_format_BGRA8888 http://www.khronos.org/registry/gles/extensions/APPLE/AP ...
- 复制文件描述符---dup
函数功能:复制文件描述符 头文件:#include<unistd.h> 函数原型:int dup(int oldfd) 参数说明:oldfd:旧的文件描述符 返回值:成功返回-个新的文件描 ...
- 关于使用smsx.cab控件做web打印使用方法(转)
注意:在使用之前先告诉下我的痛苦经历 在做WEB项目是我的JSP页面在jsp文件夹里,我把smsx.cab放在js文件夹里(jsp和js是用级别目录) 在本机上测试可以正确下载控件,但是部署到测试服务 ...
- java常用设计模式一:单例模式
1.饿汉式 package singleton.demo; /** * @author Administrator * @date 2019/01/07 */ public class Single ...