现在我们要把一个数据库进行每天做一次备份,但是要求把备份的数据库一个星期内不能覆盖以前备份好的数据库。也就是说,要保留每星期的每一天的备份文件。怎么要怎么设置。

解决方案 »

  1.   

    差异备份 
    --------------------------------------------- 
    (1)基于完全备份。 
    (2)备份自最近一次完全备份以来的所有数据库改变。 
    (3)恢复时,只应用最近一次完全备份和最新的差异备份。 
    ----------------------------------------------- 
    backup database d2 to bak2 with init,name='d2_full' --差异备份,第一次备份时应做完全备份 
    create table b1(c1 int not null,c2 char(10) not null) 
    backup database d2 to bak2 with differential,name='d2_diff1' 
    insert b1 values(1,'a') 
    backup database d2 to bak2 with differential,name='d2_diff2' 
    insert b1 values(2,'b') 
    backup database d2 to bak2 with differential,name='d2_diff3' 
    insert b1 values(3,'c') 
    backup database d2 to bak2 with differential,name='d2_diff4' 
    restore headeronly from bak2 
    ---------------------------------------------------------------------- 
      

  2.   

    http://hi.baidu.com/84ww/blog/item/8ecfe83992c376fa3a87ce8d.html注意还原时的顺序!
      

  3.   

    看样子,楼主是只需要一周内的备份文件?上周的就应该删掉吧。那可以判断星期几,星期日用完整备份,其他用差异备份。文件名就用sunday.dat,重复的直接覆盖掉。
    如果不是按周删除,而是要保存7天的数据的话,就全用完整备份。
      

  4.   

    在企业管理器中->数据库维护计划->新建,然后一步一步走,到“指定备份磁盘目录”那个页面时,看下端那里有个“删除早于此时间的文件”的检查选项,勾选中此, 根据需要设置一个时段就行了。
      

  5.   

    如果要达到楼主所提问题要求,我有个好的方法,应用SQLSERVER代理,编写备份数据的语句,每天调度执行就可以啦,在执行备份数据语句之前可以用CONVERT(CHAR(10),GETDATE(),120)函数的值作为变量,将此变量作为备份文件名。
      

  6.   

    1 每星期1次完整备份
    2 每天1次差异备份
    优点 总数据量小
    缺点 数据冗余大(需要在完整备份基础上恢复)
    比如你星期天完整备份,星期六的时候出错了 你想恢复到星期五,只需要1个完整备份和1个星期五的备份
    一直不明白为啥sqlserver没有增强备份
    另外注意日志文件的备份