exec sp_addumpdevice 'disk','bak1','E:\Backup\bak1.bak'  -- 建立设备 bak1  use master
  backup database d1 to bak1 with init,name='d1_full'  --对数据库d1进行完全备份 with init覆盖 ¦noinit添加   create table d1..b1(c1 int not null,c2 char(10) not null)  -- 新建一张表 b1  use master
  backup database d1 to bak1 with differential name='d1_diff1'   -- 做第一次全备份  insert d1..b1 values(1,'a')             -- 向表b1中插入一条记录  use master
  backup database d1 to bak1 with differential, NOUNLOAD, name='d1_diff2'  -- 做第二次增量备份  insert d1..b1 values(2,'b')             -- 向表b1中插入一条记录
   
  restore headeronly from bak1            -- 查看设备中的备份文件  use master
  restore database d1 from bak1 WITH FILE  = 1, NORECOVERY     -- 恢复全备份
  --restore   diff   backup     
  restore database d1 from bak1 WITH FILE  = 2, RECOVERY       -- 恢复第一次增量备份 
    
  restore database d1 from bak1 WITH FILE  = 3, RECOVERY       -- 恢复第二次增量备份现在就是在恢复第二次增量备份的时候提示:
Server: Msg 4306, Level 16, State 1, Line 1
The preceding restore operation did not specify WITH NORECOVERY or WITH STANDBY. Restart the restore sequence, specifying WITH NORECOVERY or WITH STANDBY for all but the final step.
Server: Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.请问如何处理?

解决方案 »

  1.   

    di er ci hai shi yao NORECOVERY restore database d1 from bak1 WITH FILE  = 2, NORECOVERY -- 
      

  2.   

    差异备份和还原(转)
    作者:8LY8Apollo   (阿波罗)   差异备份只创建数据库中自上一次数据库备份之后修改过的所有页的复本。差异日志主要用于使用频繁的系统,一旦这类系统中的数据库发生故障,必须尽快使其重新联机。差异备份比完整数据库备份小,因此对正在运行的系统影响较小。   
        
      例如,某个站点在星期天晚上执行完整数据库备份。在白天每隔   4   小时制作一个事务日志备份集,并用当天的备份重写头一天的备份。每晚则进行差异备份。如果数据库的某个数据磁盘在星期四上午   9:12   出现故障,则该站点可以:     
        
      备份当前事务日志。   
        
        
      还原从星期天晚上开始的数据库备份。   
        
        
      还原从星期三晚上开始的差异备份,将数据库前滚到这一时刻。   
        
        
      还原从早上   4   点到   8   点的事务日志备份,以将数据库前滚到早上   8   点。   
        
        
      还原故障之后的日志备份。这将使数据库前滚到故障发生的那一刻。     
        
      如何创建差异数据库备份(企业管理器)   
      创建差异数据库备份     
        
      展开服务器组,然后展开服务器。   
        
        
      展开"数据库"文件夹,右击数据库,指向"所有任务"子菜单,再单击"备份数据库"命令。   
        
        
      在"名称"框内,输入备份集名称。在"描述"框中输入备份集的描述(可选)。   
        
        
      在"备份"框下选择"数据库   —   差异"。   
        
        
      在"目的"下,单击"磁带"或"磁盘",然后指定备份目的地。     
      如果没有出现目的地,单击"添加"以添加现有的备份设备或创建新的备份设备。   
        
      在"重写"下执行下列操作之一:     
      单击"追加到媒体",将备份追加到备份设备上任何现有的备份中。   
        
        
      单击"重写现有媒体",将重写备份设备中任何现有的备份。     
      选择"调度"复选框调度备份操作以后执行或定期执行。(可选)   
        
        
      单击"选项"选项卡,然后执行下列一项或多项操作:(可选)     
      选择"完成后验证备份"复选框,在备份时验证备份。   
        
        
      选择"备份后弹出磁带"复选框,在备份操作完成后弹出磁带。该选项只适用于磁带设备。   
        
        
      选择"检查媒体集名称和备份集到期时间"复选框,检查备份媒体以防意外重写。在"媒体集名称"框中,输入将用于备份操作的媒体的名称。如果仅指定备份集到期时间,则将其保留为空。     
      如果是第一次使用备份媒体,或者要更改现有的媒体标签,则在"媒体集标签"框下选择"初始化并标识媒体"复选框,然后输入媒体集名称和媒体集描述。只有在重写媒体时才能对其进行初始化和标识设置。     
      如何还原差异数据库备份(企业管理器)   
        
        
      说明     如果要还原差异数据库备份,而在   msdb   数据库中存储的备份历史记录中没有列出此差异数据库备份的任何备份集信息,例如在另一台服务器上创建的差异数据库备份,请参阅如何从备份设备还原备份。   
        
        
      还原差异数据库备份     
        
      展开服务器组,然后展开服务器。   
        
        
      展开"数据库"文件夹,右击数据库,指向"所有任务"子菜单,然后单击"还原数据库"命令。   
        
        
      在"还原为数据库"框中,如果要还原的数据库名称与显示的默认数据库名称不同,请在其中进行输入或选择。   
        
        
      单击"数据库"。   
        
        
      在"要还原的第一个备份"列表中,选择要还原的备份集。   
        
        
      在"还原"列表中,单击要还原的差异备份。   
        
        
      单击"选项"选项卡,然后执行下列操作之一:(可选)     
      单击"使数据库可以继续运行,但无法还原其它事务日志",如果没有其它要应用的事务日志备份。   
        
        
      单击"使数据库不再运行,但能还原其它事务日志",如果要应用其它事务日志备份。
      

  3.   

    相关SQL语句如下:restore database f1 from disk='E:\foo' with file=1, move 'foo_data' to 'D:\foo.mdf', move 'foo_log' to 'D:\foo.ldf', norecovery
    restore database f1 from disk='E:\foo' with file=4, recovery