通过脚本实行备份的

数据库自动备份服务,带配置,还算能够啊

周天抽时间,编写了一个那样的工具,可以让,对数据库不明白或不熟谙的人,直接学会运用备份,省时省力,同样,笔者也将意气风发份,通过脚本进行备份的,也贡献上来,

  1. 透过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 FilesWinRARwinrar.exe" ' +'a -df ' +@rarfile+' '+@bakfile
exec master..xp_cmdshell @rarcmd,NO_OUTPUT;

别问作者代码都以干啥的,无非正是开垦权限,创制变量、时间戳的文件名、备份脚本、运维备份,哈哈。。都讲完了,你也不用问了,

  • 你是或不是要问,那删除文件呢?

    –删除15天在此以前的备份
    set @sql=’del d:DataBasexx’ +rtrim(replace(replace(replace(convert(varchar(20),getdate()-15, 120),’ ‘,”),’-‘,”),’:’,”))+’.rar’

为啥删除15天的?你想删除多少天,自身写, -15 的15,随你填写。

好了,言归正传,下边是作者编写的windows 服务达成,请看:

  1. 通过C#编写制定的windows服务扩充数据库备份

运用办法如下

  • 透过 服务配置工具.bat 配置和装置windows服务

没了,嘎嘎。。上图

图片 1

图1 使用管理员,打开安排脚本

图片 2

图2 依照指令进行计划操作,输入1 是步入配置

图片 3

图3 配置分界面

 图片 4

图4 安装到位后,运行服务

好了,全体操作演示实现,是否说,那么师傅,代码呢?

楼下五步走

↓↓↓↓

↓↓↓↓

↓↓↓↓

↓↓↓↓

↓↓↓↓

CSDN下载地址:

不经常还不曾经过,得等等才通过查处,刚刚上传上

(代码纯手工构建,要点积分,别介怀哈)

代码境遇一个微细bug,当备份数据库宏大时,有的服务器会师世逾期现象,作者将SqlCommand的 CommandTimeout值设置为3600秒了,难题一挥而就,因为数量大小是33个G,裁减日志之后,所以出现了那个主题素材,以解决,各位自行修改代码化解就能够,代码如下:

 

 图片 5

调用处

金镶玉裹福禄双全代码如下:

 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;
        }

完事~!!!啦啦啦。。。

 

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website