C# 编写的SqlServer 数据库自动备份服务,带配置,功能强大
数据库自动备份服务,带配置,还算可以吧
周末抽时间,编写了一个这样的工具,可以让,对数据库不了解或不熟悉的人,直接学会使用备份,省时省力,同样,我也将一份,通过脚本进行备份的,也奉献上来,
- 通过sql脚本进行数据库备份
通过脚本备份数据库,同样也支持压缩,但是需要安装winrar来实现,整体来说也还行,在服务器上创建一个 维护计划,就可以实现,也是很方便的,脚本如下:
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
declare @prefix nvarchar(100),
@datefile nvarchar(100),
@bakfile nvarchar(100),
@rarfile nvarchar(100),
@rarcmd nvarchar(150),
@str_date nvarchar(100),
@sql nvarchar(100) --设置备份的目录
set @prefix='D:/DataBase/'
set @str_date = replace(replace(replace(convert(varchar(20),getdate(), 120),' ',''),'-',''),':','')
set @datefile = 'xx' +@str_date
set @bakfile = @prefix+@datefile+'.bak'
set @rarfile = @prefix+@datefile+'.rar'
--备份
BACKUP Database mpe_db_Data TO DISK = @bakfile WITH NOFORMAT, NOINIT, NAME = N'xx-完整 数据库 备份', SKIP, NOREWIND, NOUNLOAD, STATS = 10
--压缩rar
set @rarcmd ='"c:\Program Files\WinRAR\winrar.exe" ' +'a -df ' +@rarfile+' '+@bakfile
exec master..xp_cmdshell @rarcmd,NO_OUTPUT;
别问我代码都是干啥的,无非就是打开权限,创建变量、时间戳的文件名、备份脚本、启动备份,哈哈。。都说完了,你也不用问了,
- 你是不是要问,那删除文件呢?
--删除15天之前的备份
set @sql='del d:\DataBase\xx' +rtrim(replace(replace(replace(convert(varchar(20),getdate()-15, 120),' ',''),'-',''),':',''))+'.rar'
为啥删除15天的?你想删除多少天,自己写, -15 的15,随你填写。
好了,言归正传,下面是我编写的windows 服务实现,请看:
- 通过C#编写的windows服务进行数据库备份
使用方法如下
- 通过 服务部署工具.bat 配置和安装windows服务
没了,嘎嘎。。上图

图1 使用管理员,打开部署脚本

图2 根据指示进行配置操作,输入1 是进入配置

图3 配置界面

图4 安装完成后,启动服务
好了,全部操作演示完毕,是不是说,那么师傅,代码呢?
楼下五步走
↓↓↓↓
↓↓↓↓
↓↓↓↓
↓↓↓↓
↓↓↓↓
CSDN下载地址:https://download.csdn.net/download/l9861226/10585437
暂时还没有通过,得等等才通过审核,刚刚上传上
(代码纯手工打造,要点积分,别介意哈)
代码遇到一个小小的bug,当备份数据库巨大时,有的服务器会出现超时现象,我将SqlCommand的 CommandTimeout值设置为3600秒了,问题解决,因为数据大小是32个G,收缩日志之后,所以出现了这个问题,以解决,各位自行修改代码解决即可,代码如下:

调用处
实现代码如下:
public static int ExecuteSqlSetTimeOut(string cmdText, int timeOut)
{
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, connection, null, CommandType.Text, cmdText, null);
cmd.CommandTimeout = timeOut;
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
完事~!!!啦啦啦。。。
C# 编写的SqlServer 数据库自动备份服务,带配置,功能强大的更多相关文章
- C#编写强大的SQL Server数据库自动备份服务
数据库自动备份服务,带配置,还算可以吧 周末抽时间,编写了一个这样的工具,可以让,对数据库不了解或不熟悉的人,直接学会使用备份,省时省力,同样,我也将一份,通过脚本进行备份的,也奉献上来, 通过sql ...
- 好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面)
转载:http://www.cnblogs.com/lyhabc/p/3322437.html 挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面) 这个工具主要就是 ...
- 挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面)
原文:挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面) 挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面) 这个工具主要就是自 ...
- SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面)
挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面) 这个工具主要就是自动备份数据库,一键还原数据库,发送备份数据库日志报告到邮箱,自动压缩备份好的数据库 定期执行数 ...
- 进阶宝典一|SqlServer数据库自动备份设置
很多人都没机会接触到数据库备份,经常操作的要么是数据库管理员,要么是项目负责人.那是不是说数据库备份就不用学了? 不,其实作为开发人员应该要了解数据备份,数据备份的手段有很多:软件备份.脚本备份.其他 ...
- sql server数据库自动备份
SqlServer 数据库自动备份的两种解决方案 SQL Server中的角色(服务器级别和数据库级别角色) SqlServer服务器角色和数据库角色相关操作
- MVC5中Model层开发数据注解 EF Code First Migrations数据库迁移 C# 常用对象的的修饰符 C# 静态构造函数 MSSQL2005数据库自动备份问题(到同一个局域网上的另一台电脑上) MVC 的HTTP请求
MVC5中Model层开发数据注解 ASP.NET MVC5中Model层开发,使用的数据注解有三个作用: 数据映射(把Model层的类用EntityFramework映射成对应的表) 数据验证( ...
- SQL Server2008数据库自动备份步骤
一, 在电脑开始菜单中选择“SQL Server Management Studio”双击.在出现的界面中点击“连接”按钮. 二, 在出现的“ Microsoft SQL Server Manag ...
- Windows下Oracle数据库自动备份批处理脚本
expdb命令版本 @echo off REM ########################################################### REM # Windows Se ...
随机推荐
- delphi IOS 后台状态保存
FormSaveState procedure TFrm.FormSaveState(Sender: TObject);begin end; http://stackoverflow.com/ques ...
- HTML 空白
HTML <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...
- dclcommon200.bpl
xe6 dclcommon200.bpl xe7 dclcommon210.bpl xe8 dclcommon220.bpl xe7,xe8都有对应的文件,xe6为何没有?
- jquery中绑定click事件重复执行问题
jquery中单击事件重复多次执行的问题使用如下方式: $('#sub').unbind('click').click(function () { ... });
- CGAffineTransformMake 矩阵变换 的运算原理(转)
1.矩阵的基本知识: struct CGAffineTransform { CGFloat a, b, c, d; CGFloat tx, ty; }; CGAffineTransform CGAff ...
- linux系统chkconfig使用方法及服务开机启动
一.基础知识 有关linux系统开机过程.运行等级,执行权限请看另一篇:linux系统启动过程及运行等级详解. 本篇文章实践的系统:centos6.5 二.创建服务 通过之前的说明,我们知道了如果需要 ...
- idea升级maven工程jar包版本和解决jar包冲突
原来用过eclipse的都知道,想要升级maven工程的jar包版本或者解决jar包冲突,直接在pom文件下的dependency hierarchy视图下右击冲突的jar包,将其exclude掉,然 ...
- Linux安装设置VNC远程桌面
1,先检查一下服务器是否已经安装了VNC服务,没有安装,检查服务器的是否安装VNC的命令如下[root@linuxidc rpms]# ps -eaf|grep vncroot 1789 ...
- Openssl gendsa命令
一.简介 gendsa命令能够根据DSA密钥参数生成DSA密钥 二.语法 openssl gendsa [-out filename] [-passout out] [-rand file(s)] [ ...
- [C++] inline function
trap #define GET3(N) N*N*N GET3(1+2) : 1+2*1+2*1+2 = 7