我不懂直接加入日期,我现在用的一个方案是,如楼主样把数据库备份出来.bak,但是这个文件非常大,于是我再用rar做一次压缩备份后删除原.bak文件,rar可以加参数用当前日期命名该压缩文件,这样我就能得到每天的备份并且是以日期命名的,但是要注意rar是否有license问题:c:\>rar -ag[yyyymmdd]

解决方案 »

  1.   

    小强,你在用rar的时候是自动的还是手动来执行这个命令啊,要是手动的话,没太大的意义,大家还有没有更好的办法
      

  2.   

    自动啊,备份数据库和运行rar的命令都写在批处理文件里面,用agent运行也行,用windows的计划任务也行。
      

  3.   

    我用 Mainteinance Plan,全是自动加上时间戳记的,可以设定删除指定时间以前的备份。
      

  4.   

    楼主无论用什么方法都记得要先测试是否能正常完成备份任务,如我的方法,我会测试:
    压缩后的rar文件是否能正常打开;
    rar文件打开后是否包含原来的.bak文件;
    这个.bak文件是否能被正常解压缩;
    解压缩后的.bak文件日期是否正确;
    解压缩后的.bak文件是否能正常的恢复回去数据库中
    有人试过每天备份作业正常运作,但很久以后发现备份的东西根本不是需要的东西……备份对一个数据库来说是非常非常重要的,提个醒。
      

  5.   

    小强,我在作业中是这样写的
    BACKUP DATABASE Mobile2 
    TO DISK = 'd:\sn\mobile2.bak' 
    WITH INIT, NOSKIP, NOFORMAT
    我要把你说的c:\>rar -ag[yyyymmdd],这一句加什么地方啊,谢谢你刚才给我的提醒
      

  6.   

    Wonny() ,你说的Mainteinance Plan,具体怎么用啊,能不能说的详细些啊
      

  7.   

    Declare @fname varchar(100)
    Select @fname = 'd:\sa\mobile2-' + Convert(char(8),getdate(),112) + '.bak'Backup Database Mobile2 
    To Disk = @fname
    WITH INIT, NOSKIP, NOFORMAT上面的方法不知道可不可以解决。不过,还是建议你使用SQLServer企业管理器(SQlServer Enterprise Manager)里面的数据库维护计划(Database Maintenance Plan)向导,生成详细的数据库维护计划。
      

  8.   

    楼主应该是想在前台实现该操作吧,基本思路是先取得当前日期,然后动态的将这个日期加到备份文件名中,假定前台日期放在"thedata"里面,可以用 'BACKUP DATABASE xxx to disk="c:\'文件名+"+thedata+"'.bak" with init'方法,具体语法上你再看一下可能“+”号放得有问题
      

  9.   

    declare @tt varchar(50)
    set @tt=convert(varchar(20),getdate(),102)
    print @tt
    set @tt='d:\sa\mobile2-'+@tt+'.bak'
    print @ttBACKUP DATABASE wgs
    TO DISK = @tt
    WITH INIT, NOSKIP, NOFORMAT