资源描述:
《如何让sqlserver数据库自动备份并压缩》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、如何让SQLServer数据库自动备份并压缩如果SQLServer代理没有启动,我们先把其启动,然后新建立一个作业,名称命名为“MyDb完全备份”,在分类下面选择“数据库维护”,然后新建立作业第一个步骤,步骤名为“对数据进行完全备份”,然后在命令框中输入如下的SQL代码:DECLARE@strSql VARCHAR(1000) ,@strSqlCmd VARCHAR(1000) ,@timeDateDiff INTSET@timeDateDiff=DATEDIFF(week,0,GETDATE())SET@timeD
2、ateDiff=CASEDATEPART(WEEKDAY,GETDATE()) WHEN1THEN@timeDateDiff-1 ELSE@timeDateDiffENDSET@strSql='D:DataBaseBackDataMyDb_' --备份目录及备份的文件头 +CONVERT(CHAR(8),DATEADD(week,@timeDateDiff,0),112) --完全备份日期 +'_0100' --完全备份时间 +'完全备份'SET@strSqlCmd=@strSql+'.BAK' --
3、备份文件的扩展名BACKUPDATABASE[MyDb] TO DISK=@strSqlCmdWITHINIT ,NOUNLOAD ,NAME=N'MyDb备份' ,NOSKIP ,STATS=10 ,NOFORMAT 操作如图一:然后开始执行对数据库的压缩,在步骤中再新建一个作业,步骤名为“压缩数据库”,然后在命令框中输入如下的SQL代码:DECLARE@strSql VARCHAR(1000) ,@strSqlCmd VARCHAR(1000) ,@timeDateDiff INT ,@strWeekDay V
4、ARCHAR(20)SET@timeDateDiff=DATEDIFF(week,0,GETDATE())SET@timeDateDiff=CASEDATEPART(WEEKDAY,GETDATE()) WHEN1THEN@timeDateDiff-1 ELSE@timeDateDiffENDSET@strSql='D:DataBaseBackDataMyDb_' --备份目录及备份的文件头 +CONVERT(CHAR(8),DATEADD(week,@timeDateDiff,0),112) --完全备份日期
5、 +'_0100' --完全备份时间 +'完全备份'SET@strWeekDay=CASEDATEPART(WEEKDAY,GETDATE())WHEN1THEN'星期天' WHEN2THEN'星期一' WHEN3THEN'星期二' WHEN4THEN'星期三' WHEN5THEN'星期四' WHEN6THEN'星期五' WHEN7THEN'星期六'ENDSET@strSqlCmd='ECHO压缩开始日期:'+CONVERT(VARCHAR(20),GETDATE(),120)+''+@strWeek
6、Day+' >>D:DataBaseBackDataCompressDataBaseMyDb_'+CONVERT(CHAR(6),DATEADD(week,@timeDateDiff,0),112)+'.txt'EXECmaster.dbo.XP_CMDSHELL@strSqlCmd,NO_OUTPUTSET@strSqlCmd='RAR.EXEA-R'+@strSql+'.RAR'+@strSql+'.BAK>>D:DataBaseBackDataCompressDataBaseMyDb__'+CON
7、VERT(CHAR(6),DATEADD(week,@timeDateDiff,0),112)+'.txt'PRINTLEN(@strSqlCmd)PRINT(@strSqlCmd)EXECmaster.dbo.XP_CMDSHELL@strSqlCmd,NO_OUTPUTSET@strSqlCmd='ECHO压缩日期:'+CONVERT(VARCHAR(20),GETDATE(),120)+''+@strWeekDay+' >>D:DataBaseBackDataCompressDataBaseMyDb_'+
8、CONVERT(CHAR(6),DATEADD(week,@timeDateDiff,0),112)+'.txt'EXECmaster.dbo.XP_CMDSHELL@strSqlCmd,NO_OUTPUT 操作如图二:完成后我们可以看到操作步骤的对话框,如图三: 图三数据完全备份的步骤 我们对照上图,注意两点,第一个是步骤