- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的服务器维护,企业网站维护,网站维护服务
- (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
 
  
    
| 作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0 | 
    我们通常在维护数据库的时候,都会建立一个备份的机制,在SQL Server中,我们就可以通过如下的方法来实现: 
  如果SQL Server代理没有启动,我们先把其启动,然后新建立一个作业,名称命名为“MyDb完全备份”,在分类下面选择“数据库维护”,然后新建立作业第一个步骤,步骤名为“对数据进行完全备份”,然后在命令框中输入如下的SQL代码:
DECLARE @strSql   VARCHAR(1000)
 ,@strSqlCmd VARCHAR(1000)
 ,@timeDateDiff INT
SET @timeDateDiff = DATEDIFF(week,0,GETDATE())
SET @timeDateDiff = CASE DATEPART(WEEKDAY,GETDATE())
 WHEN 1 THEN @timeDateDiff -1
 ELSE @timeDateDiff END
SET @strSql='D:DataBaseBackDataMyDb_'  -- 备份目录及备份的文件头
 +CONVERT(CHAR(8),DATEADD(week, @timeDateDiff,0),112)  -- 完全备份日期
 +'_0100'    -- 完全备份时间
 +'完全备份' 
SET @strSqlCmd= @strSql+'.BAK'    --备份文件的扩展名 
BACKUP DATABASE [MyDb] 
 TO  DISK = @strSqlCmd WITH INIT 
 ,NOUNLOAD 
 ,NAME = N'MyDb 备份'
 ,NOSKIP 
 ,STATS = 10
 ,NOFORMAT
 
  操作如图一:

图一 建立作业对数据库进行完全备份
  然后开始执行对数据库的压缩,在步骤中再新建一个作业,步骤名为“压缩数据库”,然后在命令框中输入如下的SQL代码:
DECLARE @strSql   VARCHAR(1000)
 ,@strSqlCmd VARCHAR(1000)
 ,@timeDateDiff INT
 ,@strWeekDay VARCHAR(20) 
SET @timeDateDiff= DATEDIFF(week,0,GETDATE())
SET @timeDateDiff= CASE DATEPART(WEEKDAY,GETDATE())
 WHEN 1 THEN @timeDateDiff-1
 ELSE @timeDateDiff END
SET @strSql='D:DataBaseBackDataMyDb_'  -- 备份目录及备份的文件头
 +CONVERT(CHAR(8),DATEADD(week,@timeDateDiff,0),112)  -- 完全备份日期
 +'_0100'    -- 完全备份时间
 +'完全备份'
SET @strWeekDay= CASE DATEPART(WEEKDAY,GETDATE()) WHEN 1 THEN '星期天' 
  WHEN 2 THEN '星期一' 
  WHEN 3 THEN '星期二' 
  WHEN 4 THEN '星期三' 
  WHEN 5 THEN '星期四' 
  WHEN 6 THEN '星期五' 
  WHEN 7 THEN '星期六' END
SET @strSqlCmd= 'ECHO 压缩开始日期: '+CONVERT(VARCHAR(20),GETDATE(),120)+' '+@strWeekDay+'  >> D:DataBaseBackDataCompressDataBaseMyDb_'+CONVERT(CHAR(6),DATEADD(week,@timeDateDiff,0),112)+'.txt'
EXEC master.dbo.XP_CMDSHELL @strSqlCmd,NO_OUTPUT
SET @strSqlCmd= 'RAR.EXE A -R '+@strSql+'.RAR '+@strSql+'.BAK >> D:DataBaseBackDataCompressDataBaseMyDb__'+CONVERT(CHAR(6),DATEADD(week,@timeDateDiff,0),112)+'.txt'
PRINT LEN(@strSqlCmd)
PRINT (@strSqlCmd)
EXEC master.dbo.XP_CMDSHELL @strSqlCmd,NO_OUTPUT
SET @strSqlCmd= 'ECHO 压缩日期: '+CONVERT(VARCHAR(20),GETDATE(),120)+' '+@strWeekDay+'  >> D:DataBaseBackDataCompressDataBaseMyDb_'+CONVERT(CHAR(6),DATEADD(week,@timeDateDiff,0),112)+'.txt'
EXEC master.dbo.XP_CMDSHELL @strSqlCmd,NO_OUTPUT
 
| 我要申请本站:N点 | 黑客防线官网 | | 
| 专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |